Prisma-Schema in vier Schichten: Konten und Zugang, gemeinsamer Katalog (über die TMDB-ID dedupliziert), persönliches Tracking je Nutzer sowie Universen mit mehreren Reihenfolgen. Dazu Benachrichtigungskanäle und Protokoll der Hintergrundläufe. Prisma 7 verlangt einen Treiber-Adapter statt der URL im Schema; die Konfiguration liegt deshalb in prisma.config.mjs — bewusst als .mjs, damit die CLI auch im schlanken Produktionsimage ohne TypeScript-Loader läuft.
79 lines
3.0 KiB
Bash
79 lines
3.0 KiB
Bash
# =============================================================================
|
|
# Flimmer — Beispielkonfiguration
|
|
#
|
|
# cp .env.example .env
|
|
#
|
|
# Alles, was Flimmer über die Außenwelt wissen muss, steht hier. Die Datei .env
|
|
# gehört NICHT ins Repository (siehe .gitignore).
|
|
# =============================================================================
|
|
|
|
# --- Datenbank ---------------------------------------------------------------
|
|
# Im Docker-Compose-Betrieb zeigt der Host auf den Dienst "db".
|
|
POSTGRES_USER=flimmer
|
|
POSTGRES_PASSWORD=bitte-aendern
|
|
POSTGRES_DB=flimmer
|
|
DATABASE_URL=postgresql://flimmer:bitte-aendern@db:5432/flimmer?schema=public
|
|
|
|
# --- Grundeinstellungen ------------------------------------------------------
|
|
# Öffentlich erreichbare Adresse der Instanz (ohne abschließenden Schrägstrich).
|
|
# Wird für Links in Benachrichtigungen und für OIDC-Rücksprünge gebraucht.
|
|
APP_URL=http://localhost:3000
|
|
APP_NAME=Flimmer
|
|
|
|
# Zufälliger Wert, mindestens 32 Zeichen. Erzeugen z. B. mit:
|
|
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
AUTH_SECRET=bitte-durch-zufallswert-ersetzen
|
|
|
|
# Ablage für Bild-Cache und sonstige Laufzeitdaten.
|
|
DATA_DIR=/app/data
|
|
|
|
# Zeitzone für Kalender, Statistiken und geplante Läufe
|
|
TZ=Europe/Berlin
|
|
|
|
# --- Registrierung -----------------------------------------------------------
|
|
# Der erste registrierte Nutzer wird automatisch Admin. Danach lässt sich die
|
|
# Registrierung im Adminbereich abschalten; dieser Wert ist nur die Vorgabe
|
|
# für die allererste Inbetriebnahme.
|
|
ALLOW_REGISTRATION=true
|
|
|
|
# --- TMDB --------------------------------------------------------------------
|
|
# Kostenloser Schlüssel: https://www.themoviedb.org/settings/api
|
|
# Entweder der klassische API-Key (v3) …
|
|
TMDB_API_KEY=
|
|
# … oder das Bearer-Token (v4). Eines von beidem genügt.
|
|
TMDB_ACCESS_TOKEN=
|
|
# Sprache der Metadaten und Region für die Streaming-Verfügbarkeit
|
|
TMDB_LANGUAGE=de-DE
|
|
TMDB_REGION=DE
|
|
|
|
# --- Hintergrundläufe --------------------------------------------------------
|
|
# Eingebauter Scheduler (prüft laufende Serien auf neue Episoden, räumt den
|
|
# Papierkorb, verschickt Benachrichtigungen). Bei mehreren App-Instanzen nur
|
|
# in einer aktivieren.
|
|
ENABLE_SCHEDULER=true
|
|
# Uhrzeit des täglichen Laufs (24-Stunden-Format)
|
|
SYNC_HOUR=4
|
|
# Alternativ von außen anstoßen: curl -H "Authorization: Bearer $CRON_SECRET" \
|
|
# https://flimmer.example/api/cron/sync
|
|
CRON_SECRET=
|
|
|
|
# --- E-Mail (optional) -------------------------------------------------------
|
|
SMTP_HOST=
|
|
SMTP_PORT=587
|
|
SMTP_USER=
|
|
SMTP_PASSWORD=
|
|
SMTP_SECURE=false
|
|
SMTP_FROM=Flimmer <flimmer@example.com>
|
|
|
|
# --- OIDC / SSO (optional) ---------------------------------------------------
|
|
# Anbindung an Authelia, Keycloak, Authentik … Leer lassen = deaktiviert.
|
|
# Redirect-URI beim Anbieter eintragen: <APP_URL>/api/auth/oidc/callback
|
|
OIDC_ISSUER=
|
|
OIDC_CLIENT_ID=
|
|
OIDC_CLIENT_SECRET=
|
|
OIDC_SCOPES=openid profile email
|
|
# Beschriftung des Login-Knopfes
|
|
OIDC_BUTTON_LABEL=Mit SSO anmelden
|
|
# Neue Nutzer per OIDC automatisch anlegen
|
|
OIDC_AUTO_REGISTER=true
|