Skip to content

Configuration DE

Domekologe edited this page Jun 30, 2026 · 1 revision

Konfiguration

🌐 English · Deutsch

Die gesamte Konfiguration der Web-App läuft über Umgebungsvariablen, gelesen aus der .env im Projekt-Root (bei Entwicklung) bzw. aus der Prozessumgebung / einer systemd-EnvironmentFile= (in Produktion). Der BFF liest sie zur Laufzeit über SvelteKits $env/dynamic/private – sie erreichen den Browser also nie. Diese Seite dokumentiert jede Variable. Für die Ersteinrichtung zuerst Erste Schritte folgen.

Screenshot: .env-Datei im Editor geöffnet

Kernvariablen

Diese sind für den Betrieb erforderlich.

Variable Default Beschreibung
DISCORD_CLIENT_ID OAuth2-Client-ID aus dem Discord Developer Portal. Wird auch genutzt, um den „Lade mich ein"-Link der Landing-Page automatisch zu bauen (scope=bot+applications.commands&permissions=8), sofern kein invite_url-Branding-Override gesetzt ist.
DISCORD_CLIENT_SECRET OAuth2-Client-Secret. Nur serverseitig – nie im Browser.
DISCORD_REDIRECT_URI http://localhost:5173/auth/callback Muss exakt als Redirect im Portal hinterlegt sein. In Produktion https://deine-domain/auth/callback.
GATEWAY_URL http://127.0.0.1:6970 Adresse des RPC-Gateways des pdc_webdashboard-Cogs.
GATEWAY_TOKEN Geteiltes Geheimnis fürs Gateway. Im Bot mit [p]pdcdashboard token abrufen.
SESSION_SECRET Langes Zufalls-Secret zum Signieren der Session-Cookies (HMAC). Mit openssl rand -hex 32 erzeugen.

Produktionssicherheit: In Produktion prüft die App beim Start SESSION_SECRET und startet nicht, wenn es fehlt oder auf dem Default steht. Das ist Absicht – ein bekanntes Secret würde es erlauben, Session-Cookies zu fälschen.

Beispiel-.env

# Discord OAuth2 (https://discord.com/developers/applications)
DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRET=
DISCORD_REDIRECT_URI=http://localhost:5173/auth/callback

# RPC-Gateway des Companion-Cogs (pdc_webdashboard)
# Lokal (npm run dev):                http://127.0.0.1:6970
# In Docker, Bot läuft auf dem Host:  http://host.docker.internal:6970
GATEWAY_URL=http://127.0.0.1:6970
# Abrufen mit:  [p]pdcdashboard token
GATEWAY_TOKEN=

# Zufälliges, langes Secret für die signierte Session (z. B. `openssl rand -hex 32`)
SESSION_SECRET=

# Optional: Self-Update-Button auf /system aktivieren (nur Owner)
ENABLE_SELF_UPDATE=false

Self-Update

Variable Default Beschreibung
ENABLE_SELF_UPDATE false Auf true setzen, um den GitHub-Self-Update-Button auf /system zu zeigen (nur Bot-Owner). Führt deploy/update.sh aus (git fetch + hard reset, build, restart).

Der Neustart-Schritt braucht zusätzliche Betriebssystem-Rechte; siehe Self-Update für die empfohlene polkit-Regel. Ein nur lesender „Auf Updates prüfen"-Button (laufende Version vs. Git-Remote) ist auf /system immer für den Owner verfügbar, unabhängig von diesem Flag.

Branding- & SEO-Felder sind keine Env-Variablen. Die Markdown-Bot-Beschreibung, die Website-Beschreibung (short_desc, genutzt als <meta name="description"> und Open-Graph-Beschreibung), das Favicon (aus dem Avatar des Bots) und der optionale invite_url-Override werden alle im Dashboard unter /settings konfiguriert – siehe Web-UI.

Reverse-Proxy-Variablen

Läuft die App hinter einem HTTPS-Reverse-Proxy (nginx, Caddy, Cloudflare, …), muss adapter-node den öffentlichen Origin kennen und wissen, welche Header das echte Protokoll/den echten Host tragen. Ohne diese gibt es Fehler wie einen 403 beim Logout (CSRF-/Origin-Mismatch). In der .env setzen:

Variable Beispiel Beschreibung
ORIGIN https://deine-domain Der öffentliche Origin, den der Browser nutzt. Für korrekte CSRF-/Origin-Prüfung nötig.
PROTOCOL_HEADER x-forwarded-proto Header, den der Proxy mit dem echten Schema (http/https) setzt.
HOST_HEADER x-forwarded-host Header, den der Proxy mit dem echten Host setzt.
ORIGIN=https://deine-domain
PROTOCOL_HEADER=x-forwarded-proto
HOST_HEADER=x-forwarded-host

Das sind Standard-adapter-node-Variablen. Die passende nginx-Config steht auf Deployment.

Wie die Variablen geladen werden

Kontext Wie .env geladen wird
npm run dev (Vite) Automatisch von Vite geladen.
node build (Produktion) Nicht automatisch – adapter-node liest nur echte Umgebungsvariablen. node -r dotenv/config build, set -a; . ./.env; set +a oder systemd EnvironmentFile= nutzen.
systemd / Docker Über EnvironmentFile= bzw. compose env_file: / environment:.

Dieser „node build liest die .env nicht"-Stolperstein ist der häufigste Produktionsfehler – Details auf Deployment.

Verwandte Seiten

Clone this wiki locally