DEPLOYMENT.md: Fehlerbehebung für "password authentication failed"

Beim Ausrollen auf einem echten Server aufgetreten: PostgreSQL setzt
sein Passwort nur beim allerersten Start auf leerem Datenverzeichnis –
lief "docker compose up" vorher schon einmal ohne "--env-file
.env.local" (oder wurde LOCAL_PG_PASSWORD nachträglich geändert),
bleibt im Volume ein anderes Passwort stehen als die App danach
verwendet.

Neue Fehlerbehebung-Sektion mit der konkreten Fehlermeldung und zwei
Fixes (Volume neu anlegen bei frischem Deployment, sonst Passwort im
laufenden Container angleichen). Warnhinweis in Schritt 3 ergänzt.

.env.example: Hinweis, dass LOCAL_PG_PASSWORD nur aus Buchstaben/
Zahlen bestehen sollte (#, $, Leerzeichen, Anführungszeichen können
beim .env-Parsing zu stillen Fehlern führen).
This commit is contained in:
2026-07-18 14:20:01 +02:00
parent 3b8f7de5e4
commit 536f51d516
2 changed files with 55 additions and 1 deletions
+16
View File
@@ -7,6 +7,22 @@
# zusammen – die Zeile unten wird beim Betrieb per Docker Compose
# NICHT verwendet, nur bei manuellem "npm run dev"/"npm run start"
# gegen eine selbst betriebene PostgreSQL-Instanz.
#
# Nur Buchstaben/Zahlen verwenden (z. B. mit "openssl rand -hex 24"
# erzeugen) – Zeichen wie #, $, Leerzeichen oder Anführungszeichen
# werden von Docker Compose beim Einlesen von .env-Dateien speziell
# behandelt (# beginnt z. B. einen Kommentar) und können das Passwort
# unbemerkt verstümmeln.
#
# WICHTIG: PostgreSQL setzt dieses Passwort nur EINMALIG beim allerersten
# Start auf einem leeren Datenverzeichnis. Wird der Wert hier später
# geändert (oder "docker compose up" auch nur einmal ohne
# "--env-file .env.local" ausgeführt, bevor er gesetzt war), bleibt im
# bereits angelegten Docker-Volume das alte Passwort stehen – die App
# bekommt dann "password authentication failed for user postgres". Fix:
# "docker compose down && docker volume rm canteen-menu_pgdata", dann
# neu starten (nur unbedenklich, solange noch keine echten Daten drin
# sind – siehe DEPLOYMENT.md).
LOCAL_PG_PASSWORD=<beliebiges-sicheres-passwort>
# Verbindung zur PostgreSQL-Datenbank (nur für den Betrieb OHNE Docker