docs: close the compose drift note - server is a working copy now
Tessera CI/CD / Lint & Type Check (push) Successful in 45s
Tessera CI/CD / Tests (push) Successful in 53s
Tessera CI/CD / Build & Publish Images (push) Successful in 6s

/opt/tessera keeps its directory (compose derives the project name from it,
and a rename would have orphaned tessera_pgdata) and now tracks main.
COMPOSE_FILE pins it to the production file so the checkout does not switch
the server onto the dev defaults.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-11 15:38:39 +02:00
parent 9ca71ae92f
commit 1fb96dd455
@@ -79,9 +79,35 @@ danach die Repository-Fassung auf den Server kopiert und mit
`docker compose config` geprueft (gueltig, alle Variablen aufloesbar). Das `docker compose config` geprueft (gueltig, alle Variablen aufloesbar). Das
Neuerzeugen der Container bleibt Sache des Users. Neuerzeugen der Container bleibt Sache des Users.
**Was den Zettel offen haelt:** abgeglichen ist ein Zustand, keine Loesung. Die **Was den Zettel offen hielt:** abgeglichen ist ein Zustand, keine Loesung. Die
naechste Aenderung an `docker-compose.prod.yml` driftet genauso, weil naechste Aenderung an `docker-compose.prod.yml` driftet genauso, weil
`/opt/tessera` weiterhin keine Arbeitskopie ist und der Deploy weiterhin nur `/opt/tessera` weiterhin keine Arbeitskopie ist und der Deploy weiterhin nur
Images holt. Die Entscheidung zwischen den drei Wegen oben steht also Images holt. Die Frage nach host-eigenen Anpassungen ist inzwischen
unveraendert an — die Frage nach host-eigenen Anpassungen ist inzwischen
beantwortet: es gab keine, nur zwei Korrekturen, die ins Repository gehoerten. beantwortet: es gab keine, nur zwei Korrekturen, die ins Repository gehoerten.
## Resolution 2026-08-11: Weg 1 umgesetzt
`/opt/tessera` ist jetzt eine Arbeitskopie des Repositorys (`git init` +
`fetch --depth 1` + `checkout` im bestehenden Verzeichnis, nicht neu geklont).
Ein `git pull` bringt die Compose-Datei kuenftig mit.
Das Verzeichnis wurde bewusst behalten statt woanders hin geklont: Compose
leitet den Projektnamen aus dem Verzeichnisnamen ab, und ein anderer Name
haette `tessera_pgdata` verwaist und die Datenbank leer wirken lassen. Vorher
und nachher geprueft — Name `tessera`, Volume `tessera_pgdata`, beides
unveraendert.
`COMPOSE_FILE=docker-compose.prod.yml` steht jetzt in `/opt/tessera/.env`.
Ohne diesen Eintrag haette der Checkout den Server auf die
Entwicklungs-Fassung (`docker-compose.yml`, `localhost:3001`) umgestellt —
die Falle bei diesem Weg, weil das Repository beide Dateien fuehrt. `.env`
selbst steht in `.gitignore` und hat den Checkout unveraendert ueberlebt.
Geprueft: `docker compose config` gueltig, `NEXT_PUBLIC_API_URL` loest auf
`https://alpha.tessera.ctl.de` auf. Container neu erzeugen bleibt Sache des
Users.
**Offen, bewusst nicht entschieden:** Das Repository-Token steht jetzt in
`/opt/tessera/.git/config` (nur fuer root lesbar). Der Server braucht es fuer
`git pull`. Wenn das nicht bleiben soll, waere ein eigener Lese-Zugang fuer
den Server die Alternative.