-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration DE
🌐 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.
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_SECRETund 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.
# 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| 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 optionaleinvite_url-Override werden alle im Dashboard unter/settingskonfiguriert – siehe Web-UI.
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-hostDas sind Standard-adapter-node-Variablen. Die passende nginx-Config steht auf Deployment.
| 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.
- Erste Schritte – Schritt-für-Schritt-Setup
- Authentifizierung – was die OAuth2-/Session-Secrets schützen
- Deployment – Env-Laden in Produktion, Reverse-Proxy, Docker
-
Self-Update –
ENABLE_SELF_UPDATEim Detail
🇬🇧 English
Users
- Getting Started
- Configuration
- Authentication
- Web UI
- Feature Catalog
- Embed Builder
- Public Pages
- Cog Management
- Statistics
- Logs
- Custom Pages
- Deployment
- Self-Update
Developers
