Files
planer/.env.example
T
Florian WildeandClaude Opus 5 24f613d372 feat: Datenmodell und Umgebung fuer Benachrichtigungen
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>
2026-09-11 08:58:59 +02:00

107 lines
3.9 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ---------------------------------------------------------------------------
# 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