/ nginx / dev / default.conf
default.conf
  1  server {
  2      listen 80;
  3  
  4      # Redirect root to Flame dashboard
  5      location = / {
  6          return 302 /flame/;
  7      }
  8  
  9      # Proxy for Flame Dashboard
 10      location /flame/ {
 11          proxy_pass http://flame_dashboard_dev:5005/;
 12          proxy_set_header Host $host;
 13          proxy_set_header X-Real-IP $remote_addr;
 14          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 15          proxy_set_header X-Forwarded-Proto $scheme;
 16  
 17          # Prevent caching
 18          proxy_set_header Accept-Encoding "";
 19          proxy_hide_header Cache-Control;
 20          add_header Cache-Control "no-store";
 21  
 22          # Rewrite URLs in responses
 23          sub_filter_once off;
 24          sub_filter_types text/css application/javascript;
 25          sub_filter 'href="/' 'href="/flame/';
 26          sub_filter 'src="/' 'src="/flame/';
 27          sub_filter 'content="/' 'content="/flame/';
 28          sub_filter 'url(/' 'url(/flame/';
 29          sub_filter '"/flame/flame/' '"/flame/';
 30      }
 31  
 32      # Proxy for Ghost
 33      location /ghost/ {
 34          proxy_pass http://ghost_dev:2368/;
 35          proxy_set_header Host $host;
 36          proxy_set_header X-Real-IP $remote_addr;
 37          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 38          proxy_set_header X-Forwarded-Proto $scheme;
 39  
 40          # Prevent caching
 41          proxy_set_header Accept-Encoding "";
 42          proxy_hide_header Cache-Control;
 43          add_header Cache-Control "no-store";
 44  
 45          # Rewrite URLs in responses
 46          sub_filter_once off;
 47          sub_filter_types text/css application/javascript;
 48          sub_filter 'href="/' 'href="/ghost/';
 49          sub_filter 'src="/' 'src="/ghost/';
 50          sub_filter 'content="/' 'content="/ghost/';
 51          sub_filter 'url(/' 'url(/ghost/';
 52          sub_filter '"/ghost/ghost/' '"/ghost/';
 53      }
 54  
 55      # Proxy for Forgejo
 56      location /forgejo/ {
 57          proxy_pass http://forgejo_dev:3000/;
 58          proxy_set_header Host $host;
 59          proxy_set_header X-Real-IP $remote_addr;
 60          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 61          proxy_set_header X-Forwarded-Proto $scheme;
 62  
 63          # Prevent caching
 64          proxy_set_header Accept-Encoding "";
 65          proxy_hide_header Cache-Control;
 66          add_header Cache-Control "no-store";
 67  
 68          # Rewrite URLs in responses
 69          sub_filter_once off;
 70          sub_filter_types text/css application/javascript;
 71          sub_filter 'href="/' 'href="/forgejo/';
 72          sub_filter 'src="/' 'src="/forgejo/';
 73          sub_filter 'content="/' 'content="/forgejo/';
 74          sub_filter 'url(/' 'url(/forgejo/';
 75          sub_filter '"/forgejo/forgejo/' '"/forgejo/';
 76      }
 77  
 78      # Proxy for Trilium
 79      location /trilium/ {
 80          proxy_pass http://trilium_dev:8080/;
 81          proxy_set_header Host $host;
 82          proxy_set_header X-Real-IP $remote_addr;
 83          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 84          proxy_set_header X-Forwarded-Proto $scheme;
 85  
 86          # Prevent caching
 87          proxy_set_header Accept-Encoding "";
 88          proxy_hide_header Cache-Control;
 89          add_header Cache-Control "no-store";
 90  
 91          # Rewrite URLs in responses
 92          sub_filter_once off;
 93          sub_filter_types text/css application/javascript;
 94          sub_filter 'href="/' 'href="/trilium/';
 95          sub_filter 'src="/' 'src="/trilium/';
 96          sub_filter 'content="/' 'content="/trilium/';
 97          sub_filter 'url(/' 'url(/trilium/';
 98          sub_filter '"/trilium/trilium/' '"/trilium/';
 99      }
100  
101      # Proxy for HedgeDoc
102      location /hedgedoc/ {
103          proxy_pass http://hedgedoc_dev:3000/;
104          proxy_set_header Host $host;
105          proxy_set_header X-Real-IP $remote_addr;
106          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
107          proxy_set_header X-Forwarded-Proto $scheme;
108  
109          # Prevent caching
110          proxy_set_header Accept-Encoding "";
111          proxy_hide_header Cache-Control;
112          add_header Cache-Control "no-store";
113  
114          # Rewrite URLs in responses
115          sub_filter_once off;
116          sub_filter_types text/css application/javascript;
117          sub_filter 'href="/' 'href="/hedgedoc/';
118          sub_filter 'src="/' 'src="/hedgedoc/';
119          sub_filter 'content="/' 'content="/hedgedoc/';
120          sub_filter 'url(/' 'url(/hedgedoc/';
121          sub_filter '"/hedgedoc/hedgedoc/' '"/hedgedoc/';
122      }
123  
124      # Proxy for Nextcloud
125      location /nextcloud/ {
126          proxy_pass http://nextcloud_dev:80/;
127          proxy_set_header Host $host;
128          proxy_set_header X-Real-IP $remote_addr;
129          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
130          proxy_set_header X-Forwarded-Proto $scheme;
131  
132          # Prevent caching
133          proxy_set_header Accept-Encoding "";
134          proxy_hide_header Cache-Control;
135          add_header Cache-Control "no-store";
136  
137          # Rewrite URLs in responses
138          sub_filter_once off;
139          sub_filter_types text/css application/javascript;
140          sub_filter 'href="/' 'href="/nextcloud/';
141          sub_filter 'src="/' 'src="/nextcloud/';
142          sub_filter 'content="/' 'content="/nextcloud/';
143          sub_filter 'url(/' 'url(/nextcloud/';
144          sub_filter '"/nextcloud/nextcloud/' '"/nextcloud/';
145      }
146  }