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).
51 lines
2.5 KiB
Bash
51 lines
2.5 KiB
Bash
# Vorlage für .env.local (Entwicklung) bzw. die Umgebungsvariablen
|
||
# beim Hoster (Live-Betrieb). Echte Werte niemals committen!
|
||
|
||
# Nur für Docker Compose relevant: Passwort für den mitgelieferten
|
||
# PostgreSQL-Container (Dienst "db" in docker-compose.yml). Daraus baut
|
||
# docker-compose.yml die DATABASE_URL für die App-Container selbst
|
||
# 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
|
||
# Compose relevant, s. o.).
|
||
DATABASE_URL=postgres://postgres:<passwort>@localhost:5432/canteen_menu
|
||
|
||
# Öffentliche URL, unter der die App erreichbar ist (Schema + Domain).
|
||
# Wird für den CSRF-Origin-Check hinter Reverse-Proxies genutzt und ist
|
||
# zugleich die Passkey-Domain (RP-ID/Origin werden direkt daraus
|
||
# abgeleitet, kein separater Konfigurationsschritt nötig).
|
||
APP_URL=http://localhost:3000
|
||
|
||
# Titel im Browser-Tab und Überschrift, solange kein Logo hochgeladen ist.
|
||
SITE_TITLE=Canteen Menu
|
||
|
||
# Optional: E-Mail-Adresse für den automatisch angelegten Admin-Erstnutzer
|
||
# (nur relevant, solange die users-Tabelle noch leer ist). Ohne Angabe
|
||
# wird admin@<Hostname aus APP_URL> verwendet.
|
||
ADMIN_EMAIL=
|
||
|
||
# Optional: DeepL-API-Key für automatische Übersetzung von Gerichten nach
|
||
# Englisch/Polnisch (kostenloser Free-Tier unter deepl.com/de/pro-api,
|
||
# Free-Keys enden auf ":fx"). Ohne Key bleibt "Automatisch übersetzen"
|
||
# inaktiv; Englisch/Polnisch lassen sich weiterhin manuell eintragen.
|
||
DEEPL_API_KEY=
|