fix(compose): point the browser at a reachable API address in prod
NEXT_PUBLIC_API_URL is read by the browser, not by the web container, so http://api:3001 could never work outside Docker. The test server had been corrected by hand long ago; the fix never came back here, so the file we would ship to a customer was the broken one. Also adopts the server's TESSERA_FORCE_CHANGE default of true, so a fresh install requires the initial admin password to be changed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -56,3 +56,32 @@ erst ins Repository, sonst bricht Weg 1 oder 2 den laufenden Betrieb.
|
|||||||
|
|
||||||
Eine Sicherung der aktuellen Server-Datei liegt als
|
Eine Sicherung der aktuellen Server-Datei liegt als
|
||||||
`/opt/tessera/docker-compose.yml.bak.20260811` daneben.
|
`/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.
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ services:
|
|||||||
- "3000:3000"
|
- "3000:3000"
|
||||||
environment:
|
environment:
|
||||||
HOSTNAME: "0.0.0.0"
|
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"
|
API_INTERNAL_URL: "http://api:3001"
|
||||||
JWT_SECRET: ${JWT_SECRET}
|
JWT_SECRET: ${JWT_SECRET}
|
||||||
networks:
|
networks:
|
||||||
@@ -33,7 +36,7 @@ services:
|
|||||||
TESSERA_ADMIN_USER: ${TESSERA_ADMIN_USER:-admin}
|
TESSERA_ADMIN_USER: ${TESSERA_ADMIN_USER:-admin}
|
||||||
TESSERA_ADMIN_EMAIL: ${TESSERA_ADMIN_EMAIL}
|
TESSERA_ADMIN_EMAIL: ${TESSERA_ADMIN_EMAIL}
|
||||||
TESSERA_ADMIN_PASSWORD: ${TESSERA_ADMIN_PASSWORD}
|
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_HOST: ${TESSERA_SMTP_HOST:-}
|
||||||
TESSERA_SMTP_PORT: ${TESSERA_SMTP_PORT:-587}
|
TESSERA_SMTP_PORT: ${TESSERA_SMTP_PORT:-587}
|
||||||
TESSERA_SMTP_SECURE: ${TESSERA_SMTP_SECURE:-false}
|
TESSERA_SMTP_SECURE: ${TESSERA_SMTP_SECURE:-false}
|
||||||
|
|||||||
Reference in New Issue
Block a user