# Kopieren nach .env und anpassen. Alle Werte sind optional, außer beim jeweiligen Serveradapter angegeben. # --- Webanwendung --- PORT=3000 # Öffentliche Adresse der Webseite, wird für Einladungslinks verwendet. # Entwicklung mit Vite: http://localhost:5173, Produktion: z. B. https://veto.example.de PUBLIC_URL=http://localhost:5173 DATABASE_FILE=data/cs2-mapveto.db MAP_POOL_FILE=server/config/map-pools.json # Wenn gesetzt, ist dieses Passwort zum Erstellen von Matches nötig. CREATE_MATCH_PASSWORD= # false (Standard): ein bereiter Spieler pro Team reicht. true: Teams müssen vollständig sein (2 bzw. 5 Spieler). REQUIRE_FULL_TEAMS=false # true, wenn die App hinter einem Reverse-Proxy läuft (für korrekte Client-IP beim Rate-Limit). TRUST_PROXY=false # --- Serververwaltung --- # demo = simuliert, startet KEINE echten Server (Standard) # docker = startet pro Match einen CS2-Container # static = nutzt vorhandene, selbst betriebene CS2-Server per RCON SERVER_ADAPTER=demo SERVER_IDLE_TIMEOUT_MINUTES=30 SERVER_MAX_LIFETIME_HOURS=8 SERVER_STATUS_POLL_SECONDS=5 SERVER_REAPER_INTERVAL_SECONDS=60 # --- Match-Einstellungen auf dem CS2-Server --- CS2_TV_ENABLE=true CS2_TV_DELAY=90 CS2_MAXROUNDS_COMPETITIVE=24 CS2_MAXROUNDS_WINGMAN=16 CS2_OVERTIME=true # Zusätzliche Konsolenbefehle nach dem Mapwechsel, durch ; getrennt CS2_EXTRA_COMMANDS= # --- Demo-Adapter --- DEMO_START_SECONDS=20 # true: erste Konfiguration schlägt absichtlich fehl (zum Testen von "Erneut versuchen") DEMO_FAIL_FIRST_CONFIGURE=false # --- Docker-Adapter (SERVER_ADAPTER=docker) --- # Game Server Login Token für App-ID 730 (https://steamcommunity.com/dev/managegameservers); leer = LAN-Modus (sv_lan 1) CS2_GSLT= # Pflicht: Adresse, unter der Spieler den Docker-Host erreichen (IP oder DNS-Name) CS2_PUBLIC_HOST= # Adresse, unter der das Backend die RCON-Ports der Container erreicht CS2_RCON_HOST=127.0.0.1 CS2_DOCKER_IMAGE=joedwards32/cs2:latest # Pro Match werden zwei Ports belegt (Spiel TCP+UDP, CSTV UDP) CS2_PORT_RANGE_START=27015 CS2_PORT_RANGE_END=27115 # Gemeinsames Volume für die Spieldateien (~60 GB), damit nicht jedes Match neu herunterlädt CS2_DOCKER_VOLUME=cs2-mapveto-gamefiles CS2_DOCKER_EXTRA_ARGS= # Optional: mehrere Docker-Hosts als JSON-Liste (eine Zeile). Leer = nur CS2_PUBLIC_HOST/DOCKER_HOST. # Einrichtung pro Host: bash deploy/docker-host-einrichten.sh # CS2_DOCKER_HOSTS=[{"name":"host1","dockerHost":"ssh://cs2@192.168.178.111","publicHost":"192.168.178.111","portStart":27100,"portEnd":27139}] CS2_START_TIMEOUT_MINUTES=20 # Spielports für den LAN-Reiter des Steam-Serverbrowsers (Steam sucht nur 27015–27020). Leer = aus. CS2_LAN_PORTS=27015-27020 # CSTV-Port = Spielport + dieser Abstand (z. B. 27015 -> 27115) CS2_TV_PORT_OFFSET=100 # Messer-Server für die Seitenwahl (im Admin-Bereich startbar) KNIFE_MAP=de_mirage KNIFE_WARMUP_SECONDS=90 KNIFE_MAX_SERVERS=4 # Anfang des Servernamens im Serverbrowser, danach folgen die Teamnamen CS2_SERVERNAME_PREFIX=MaxLAN DOCKER_BIN=docker # --- Static-Pool-Adapter (SERVER_ADAPTER=static) --- # host:port:rconPasswort[:tvPort], mehrere durch Komma getrennt CS2_STATIC_SERVERS= # --- Live-Ergebnisse --- # Adresse, unter der der CS2-Server dieses Backend erreicht (Standard: PUBLIC_URL), z. B. http://192.168.178.31:3000 LOG_RECEIVER_URL= # true: empfangene Logzeilen im Terminal ausgeben (Fehlersuche) LOG_DEBUG=false # Sekunden nach Map-Ende bis zur nächsten Map bzw. zum Abschluss der Serie; -1 = nur manuell SERIES_AUTO_ADVANCE_SECONDS=30 # Schlüssel für die Stream-Übersicht aller Matches (/stream?key=...); leer = offen STREAM_KEY= # Discord-Webhook für Meldungen (Veto, Match-Start, Map- und Serienende, Fehler). Leer = aus DISCORD_WEBHOOK_URL=