# Vorlage — nach .env kopieren und Werte eintragen (NIEMALS .env committen!) # Discord Developer Portal → deine App → Bot → "Reset Token" DISCORD_TOKEN= # Discord Developer Portal → deine App → General Information → "Application ID" DISCORD_CLIENT_ID= # Rechtsklick auf deinen Discord-Server → "Server-ID kopieren" (Entwicklermodus nötig) # Optional: wenn gesetzt, sind Slash-Commands sofort verfügbar statt nach bis zu 1h DISCORD_GUILD_ID= # --- Devlog-Archiv (Feature 3) --- # Rechtsklick auf den Devlog-Kanal (dort postet der Bot die Devlogs) → "Kanal-ID kopieren" DEVLOG_CHANNEL_ID= # Secret für den Devlog-Endpoint — generieren mit: # node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" # Im EcoGame-Repo in tools/.devlog_webhook eintragen: # https://bot.d4rkst3r.de/webhooks/devlog/ DEVLOG_POST_SECRET= # --- Commit-Feed (Feature 2) --- # Rechtsklick auf den Commit-Kanal → "Kanal-ID kopieren" COMMIT_CHANNEL_ID= # Shared Secret für die Webhook-Signatur — generieren mit: # node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" # Denselben Wert im Gitea-Webhook als "Secret" eintragen! GITEA_WEBHOOK_SECRET= # --- Webinterface (Feature 4) --- # Discord Developer Portal → deine App → OAuth2 → "Client Secret" (ggf. Reset Secret) DISCORD_CLIENT_SECRET= # Zufälliger String zum Signieren der Session-Cookies — generieren mit: # node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" SESSION_SECRET= # Deine Discord-User-ID (Rechtsklick auf deinen Namen → "Benutzer-ID kopieren") # Nur dieser Account sieht die Commit-Seite ADMIN_DISCORD_ID= # Öffentliche Basis-URL für den OAuth2-Redirect # Lokal zum Testen: http://localhost:3080 (auch im Developer Portal eintragen!) PUBLIC_URL=https://bot.d4rkst3r.de # --- Bug-Reports (/bug → Gitea-Issue) --- # Gitea → Einstellungen → Anwendungen → Token erzeugen (Scope: write:issue) # Ohne Token ist /bug deaktiviert (Bot läuft trotzdem) GITEA_API_TOKEN= # Optional: Gitea-Basis-URL (Default: https://git.d4rkst3r.de) # GITEA_URL=https://git.d4rkst3r.de # Optional: HTTP-Port des Webservers (Default: 3080) # HTTP_PORT=3080 # Optional: Pfad zur SQLite-Datei (Default: ./data/ecobot.db) # DB_PATH=./data/ecobot.db # Optional: Pfade zu ffmpeg und yt-dlp fuers Radio (Default: im PATH suchen). # Beide stecken im Docker-Abbild und muessen dort nicht gesetzt werden. Lokal # ohne Docker ist das der Ort, an dem man sie bekannt macht. # # Zum Pruefen der Fehlerwege taugt ein Pfad, der nicht abspielt: # YTDLP_PATH=/bin/false laesst die Radiosender weiterlaufen und muss im Panel # als "yt-dlp fehlt" erscheinen -- nicht als Stille im Sprachkanal. # FFMPEG_PATH=ffmpeg # YTDLP_PATH=yt-dlp # --------------------------------------------------------------------------- # ZUGANG ZUM ADMINPANEL (fuer /whitelist) # --------------------------------------------------------------------------- # # WOZU: der Bot fragt, WER die Whitelist verwalten darf. Die Antwort steht in # der Rechtematrix - derselben, die Adminmenue und Panel benutzen. Wuerde der # Bot stattdessen Discord-Berechtigungen pruefen, waere das eine zweite # Rechteverwaltung, die von einer Aenderung in der Matrix nie erfaehrt. # # WARUM UEBER DAS PANEL UND NICHT DIREKT ZUM SPIELSERVER: sonst haetten ZWEI # Dienste den Schluessel zu allem - Rechtematrix, Spielerliste, Protokoll, # Schreibweg. Der Bot bekommt stattdessen einen eigenen, der genau eine Tuer # oeffnet. # # OHNE DIESE ZWEI WERTE TUT /whitelist NICHTS und sagt es. Ein Bot, der bei # fehlender Konfiguration durchwinkt, waere schlimmer als einer, der schweigt. # ACP_URL=https://acp.d4rkst3r.de # # Derselbe Wert wie BOT_TOKEN im Adminpanel. NICHT dessen D4RK_WEB_TOKEN - # das ist der Schluessel zum Spielserver und geht den Bot nichts an. # ACP_BOT_TOKEN= # # Die Rolle, die den Zutritt oeffnet. Sie MUSS dieselbe sein, die der # Spielserver prueft (Convar d4rk_discord:role) - stimmen sie nicht ueberein, # zeigt /whitelist "hat die Rolle" fuer eine Rolle, die gar nichts oeffnet. # WHITELIST_ROLE_ID=