Drei Tabellen: die Einstellung je Benutzer, angemeldete Push-Geraete und ein Nachweis je verschickter Meldung. Der Nachweis ist das Gedaechtnis gegen Wiederholungen — ohne ihn kaeme dieselbe Sache bei jedem Durchlauf erneut. Kalenderkonten bekommen einen Zaehler fuer Fehlversuche in Folge, damit ein Abgleichfehler erst nach mehreren Versuchen gemeldet wird. VAPID- und SMTP-Werte sind freiwillig: fehlen sie, laeuft der Planer ohne den jeweiligen Weg weiter und sagt es in den Einstellungen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
107 lines
3.9 KiB
Bash
107 lines
3.9 KiB
Bash
# ---------------------------------------------------------------------------
|
||
# Planer – Beispielkonfiguration
|
||
# Kopieren nach .env und ausfuellen. .env gehoert NIE ins Git.
|
||
# ---------------------------------------------------------------------------
|
||
|
||
# Welche Instanz laeuft hier? Steuert Provider, Integrationen und Routen.
|
||
# Erlaubt: firma | daheim
|
||
INSTANZ=daheim
|
||
|
||
# Oeffentliche Adresse der Anwendung, ohne abschliessenden Schraegstrich.
|
||
APP_URL=http://localhost:3000
|
||
|
||
# --- Datenbank -------------------------------------------------------------
|
||
# Muss zu den POSTGRES_*-Werten unten passen, wenn Docker Compose benutzt wird.
|
||
DATABASE_URL=postgresql://planer:bitte-aendern@localhost:5432/planer?schema=public
|
||
|
||
# Nur fuer docker compose: Zugangsdaten des Postgres-Containers.
|
||
POSTGRES_USER=planer
|
||
POSTGRES_PASSWORD=bitte-aendern
|
||
POSTGRES_DB=planer
|
||
|
||
# Nach aussen veroeffentlichte Ports. Aendern, wenn 5432 oder 3000 auf dem
|
||
# Rechner schon belegt sind; DATABASE_URL muss dann denselben Port nennen.
|
||
POSTGRES_PORT=5432
|
||
APP_PORT=3000
|
||
|
||
# --- Anmeldung -------------------------------------------------------------
|
||
# Signiert Sitzungen und Tokens. Erzeugen mit:
|
||
# openssl rand -base64 32
|
||
AUTH_SECRET=
|
||
|
||
# Hinter einem Reverse Proxy auf true setzen, damit Auth.js dem Host vertraut.
|
||
AUTH_TRUST_HOST=true
|
||
|
||
# Anmeldung per E-Mail und Passwort erlauben. In der Firma ueblicherweise
|
||
# false, damit nur ueber OIDC angemeldet wird.
|
||
ANMELDUNG_PASSWORT=true
|
||
|
||
# Erstes Verwaltungskonto, wird vom Seed angelegt. Ohne ADMIN_PASSWORT
|
||
# entsteht ein Konto ohne Passwort, das sich nur per OIDC oder Passkey
|
||
# anmelden kann. Nach der Einrichtung dürfen beide Werte wieder raus.
|
||
ADMIN_EMAIL=
|
||
ADMIN_PASSWORT=
|
||
|
||
# --- OIDC ------------------------------------------------------------------
|
||
# firma = Entra ID, daheim = authentik. Leer lassen schaltet OIDC ab.
|
||
# Der Rueckleit-URI beim Anbieter lautet:
|
||
# <APP_URL>/api/auth/callback/oidc
|
||
OIDC_NAME=
|
||
OIDC_ISSUER=
|
||
OIDC_CLIENT_ID=
|
||
OIDC_CLIENT_SECRET=
|
||
|
||
# --- Passkeys (WebAuthn) ---------------------------------------------------
|
||
# RP_ID ist die nackte Domain ohne Schema und Port, z. B. planer.example.de.
|
||
# Lokal ist "localhost" richtig.
|
||
WEBAUTHN_RP_ID=localhost
|
||
WEBAUTHN_RP_NAME=Planer
|
||
# Muss exakt der Herkunft im Browser entsprechen, inklusive Port.
|
||
WEBAUTHN_ORIGIN=http://localhost:3000
|
||
|
||
# --- Kalenderanbieter ------------------------------------------------------
|
||
# Graph gibt es in beiden Instanzen, Google nur daheim. Ein Anbieter erscheint
|
||
# erst, wenn Kennung UND Geheimnis gesetzt sind.
|
||
# Einrichtung siehe README, Abschnitt "Kalenderanbieter einrichten".
|
||
# Rueckleit-URIs:
|
||
# <APP_URL>/api/kalender/rueckleitung/graph
|
||
# <APP_URL>/api/kalender/rueckleitung/google
|
||
GRAPH_CLIENT_ID=
|
||
GRAPH_CLIENT_SECRET=
|
||
# Tenant-ID, oder "organizations" fuer jeden Arbeitsplatz-Tenant.
|
||
GRAPH_TENANT_ID=organizations
|
||
|
||
GOOGLE_CLIENT_ID=
|
||
GOOGLE_CLIENT_SECRET=
|
||
|
||
# --- Benachrichtigungen ----------------------------------------------------
|
||
# Beides ist freiwillig. Fehlt es, laeuft der Planer ohne Benachrichtigungen
|
||
# weiter und sagt es in den Einstellungen.
|
||
|
||
# Web-Push. Schluesselpaar einmalig erzeugen mit:
|
||
# npx web-push generate-vapid-keys
|
||
# Der oeffentliche Schluessel geht an den Browser, der private bleibt hier.
|
||
# Wird das Paar getauscht, muessen sich alle Geraete neu anmelden.
|
||
VAPID_OEFFENTLICH=
|
||
VAPID_PRIVAT=
|
||
# Kontakt fuer den Push-Dienst, als mailto: oder https:-Adresse.
|
||
VAPID_KONTAKT=
|
||
|
||
# E-Mail. Push braucht SMTP nicht und umgekehrt.
|
||
SMTP_HOST=
|
||
SMTP_PORT=587
|
||
SMTP_BENUTZER=
|
||
SMTP_PASSWORT=
|
||
# Absender, z. B. "Planer <planer@example.de>".
|
||
SMTP_ABSENDER=
|
||
# true bei Port 465 (SMTPS), false bei 587 mit STARTTLS.
|
||
SMTP_TLS=false
|
||
|
||
# --- Sonstiges -------------------------------------------------------------
|
||
# Zeitzone fuer Anzeigen und Tagesgrenzen.
|
||
TZ=Europe/Berlin
|
||
|
||
# Nur fuer die Screenshot-Instanz. Schaltet den Demo-Kalenderprovider frei
|
||
# und darf in echten Umgebungen niemals true sein.
|
||
DEMO_MODUS=false
|