Proxy-Netzwerk in die compose.yaml aufnehmen
Der app-Service haengt jetzt zusaetzlich im Netzwerk des Reverse Proxy, damit dieser ihn erreicht. Das stand bisher nur in der lokalen Fassung auf dem Server und musste nach jedem Pull von Hand nachgezogen werden. Der Name ist ueber PROXY_NETWORK einstellbar und faellt auf nginx_default zurueck, wie es Nginx Proxy Manager anlegt. Wer ohne Proxy in Docker arbeitet, entfernt den Block - der Kommentar sagt, was dann noetig ist. Dazu ein Hinweis auf eine unauffaellige Falle: Docker Compose deutet ein $ im Wert als Variable und ersetzt es durch nichts. Ein Passwort mit $ kommt dadurch gekuerzt an, ohne dass etwas fehlschlaegt.
This commit is contained in:
@@ -72,6 +72,24 @@ Der App-Port wird bewusst **nicht** nach außen gemappt. Davor gehört ein Rever
|
||||
(Nginx Proxy Manager, Traefik oder Caddy), der HTTPS terminiert und intern auf `app:3000`
|
||||
weiterleitet. So ist nur Port 443 offen und die Zertifikate laufen über Let's Encrypt.
|
||||
|
||||
Damit der Proxy die App erreicht, hängt der `app`-Service zusätzlich im Netzwerk des Proxys.
|
||||
Die `compose.yaml` erwartet es unter dem Namen `nginx_default` — so heißt es bei Nginx Proxy
|
||||
Manager. Heißt es bei dir anders, setz `PROXY_NETWORK` in der `.env`:
|
||||
|
||||
```
|
||||
PROXY_NETWORK=mein-proxy-netz
|
||||
```
|
||||
|
||||
Das Netzwerk muss existieren, bevor der Stack startet; angelegt wird es vom Proxy. Betreibst du
|
||||
gar keinen Proxy in Docker, entferne den `networks`-Block am Ende der `compose.yaml` samt der
|
||||
`networks`-Liste beim `app`-Service und mappe stattdessen einen Port — dann aber bitte HTTPS
|
||||
anderweitig davorsetzen.
|
||||
|
||||
> **Zu `$` in der `.env`:** Docker Compose deutet `$name` als Variable und ersetzt es durch
|
||||
> nichts, wenn es die Variable nicht gibt. Ein Passwort mit `$` kommt dadurch gekürzt in der App
|
||||
> an — ohne Fehler, nur mit einer leicht zu übersehenden Warnung. Entweder `$` vermeiden oder
|
||||
> als `$$` schreiben.
|
||||
|
||||
Läuft die App hinter einem Proxy, muss `TRUST_PROXY=true` gesetzt bleiben — sonst landen im
|
||||
Audit-Log die Proxy-IPs statt der echten. In Produktion werden Cookies automatisch auf `Secure`
|
||||
gesetzt; nur zum Testen ohne TLS lässt sich das über `COOKIE_SECURE=false` abschalten.
|
||||
|
||||
Reference in New Issue
Block a user