diff --git a/.planning/todos/pending/2026-08-11-compose-datei-auf-server-driftet.md b/.planning/todos/pending/2026-08-11-compose-datei-auf-server-driftet.md index 8609c79..b79a3af 100644 --- a/.planning/todos/pending/2026-08-11-compose-datei-auf-server-driftet.md +++ b/.planning/todos/pending/2026-08-11-compose-datei-auf-server-driftet.md @@ -56,3 +56,32 @@ erst ins Repository, sonst bricht Weg 1 oder 2 den laufenden Betrieb. Eine Sicherung der aktuellen Server-Datei liegt als `/opt/tessera/docker-compose.yml.bak.20260811` daneben. + +## Zwischenstand 2026-08-11: Drift abgeglichen, Mechanik weiter offen + +Die beiden Dateien sind jetzt identisch. Verglichen wurden sie erst an diesem +Tag zum ersten Mal — es gab genau drei Unterschiede: + +| Einstellung | Server | Repository | Uebernommen | +|---|---|---|---| +| `NEXT_PUBLIC_API_URL` | `${APP_URL}` | `http://api:3001` | Server-Fassung ins Repository | +| `TESSERA_FORCE_CHANGE` | Standard `true` | Standard `false` | Server-Fassung ins Repository | +| `TESSERA_ENCRYPTION_KEY` | kein Abbruch | `:?`-Abbruch | Repository-Fassung auf den Server | + +Der erste Punkt war der ernste: `http://api:3001` existiert nur im +Compose-Netz. Der Browser eines Kunden sitzt ausserhalb und haette die API nie +erreicht — die Repository-Fassung war fuer eine echte Installation unbrauchbar, +und niemand haette es vor dem ersten Kundentermin gemerkt. Die Korrektur lebte +seit unbekannter Zeit nur auf alpha. + +Ablauf: Sicherung als `/opt/tessera/docker-compose.yml.bak.20260811-1530`, +danach die Repository-Fassung auf den Server kopiert und mit +`docker compose config` geprueft (gueltig, alle Variablen aufloesbar). Das +Neuerzeugen der Container bleibt Sache des Users. + +**Was den Zettel offen haelt:** abgeglichen ist ein Zustand, keine Loesung. Die +naechste Aenderung an `docker-compose.prod.yml` driftet genauso, weil +`/opt/tessera` weiterhin keine Arbeitskopie ist und der Deploy weiterhin nur +Images holt. Die Entscheidung zwischen den drei Wegen oben steht also +unveraendert an — die Frage nach host-eigenen Anpassungen ist inzwischen +beantwortet: es gab keine, nur zwei Korrekturen, die ins Repository gehoerten. diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 27457ff..a089d71 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -6,7 +6,10 @@ services: - "3000:3000" environment: HOSTNAME: "0.0.0.0" - NEXT_PUBLIC_API_URL: http://api:3001 + # Read by the browser, not by the web container, so it must be an address + # that resolves outside Docker. http://api:3001 only exists on the compose + # network and leaves the UI unable to reach the API. + NEXT_PUBLIC_API_URL: ${APP_URL:-http://localhost:3001} API_INTERNAL_URL: "http://api:3001" JWT_SECRET: ${JWT_SECRET} networks: @@ -33,7 +36,7 @@ services: TESSERA_ADMIN_USER: ${TESSERA_ADMIN_USER:-admin} TESSERA_ADMIN_EMAIL: ${TESSERA_ADMIN_EMAIL} TESSERA_ADMIN_PASSWORD: ${TESSERA_ADMIN_PASSWORD} - TESSERA_FORCE_CHANGE: ${TESSERA_FORCE_CHANGE:-false} + TESSERA_FORCE_CHANGE: ${TESSERA_FORCE_CHANGE:-true} TESSERA_SMTP_HOST: ${TESSERA_SMTP_HOST:-} TESSERA_SMTP_PORT: ${TESSERA_SMTP_PORT:-587} TESSERA_SMTP_SECURE: ${TESSERA_SMTP_SECURE:-false}