# 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= # Verbindung zur PostgreSQL-Datenbank (nur für den Betrieb OHNE Docker # Compose relevant, s. o.). DATABASE_URL=postgres://postgres:@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@ 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= # Optional: SSO-Login per OpenID Connect (z. B. gegen ein selbst # gehostetes Authentik). Ohne diese drei Werte bleibt der SSO-Button auf # der Anmeldeseite ausgeblendet, Passwort/Passkey funktionieren # unverändert. SSO-Login funktioniert NUR für bereits unter "Benutzer" # angelegte E-Mail-Adressen – es werden keine neuen Konten angelegt und # die Rolle (Admin/Kantinenmitarbeiter) bleibt ausschließlich dort # steuerbar. Beim Identity Provider als Redirect-URI eintragen: # /api/auth/oidc/callback OIDC_ISSUER= OIDC_CLIENT_ID= OIDC_CLIENT_SECRET=