React-Oberfläche mit Übersicht, Match-Erstellung, Beitritt über Team- und Zuschauercodes, Teamkarten, visuellem Map-Veto, Serie und Serverpanel. README beschreibt Einrichtung, Umgebungsvariablen, Rollen, Veto-Abläufe, Serveradapter und CSTV-Zuschauerzugang. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
61 lines
2.3 KiB
Bash
61 lines
2.3 KiB
Bash
# 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=
|
|
# true: Veto erst, wenn beide Teams vollständig (2 bzw. 5 Spieler) und bereit sind.
|
|
REQUIRE_FULL_TEAMS=true
|
|
# 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) ---
|
|
# Pflicht: Game Server Login Token für App-ID 730, https://steamcommunity.com/dev/managegameservers
|
|
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=cm2network/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=
|
|
CS2_START_TIMEOUT_MINUTES=20
|
|
DOCKER_BIN=docker
|
|
|
|
# --- Static-Pool-Adapter (SERVER_ADAPTER=static) ---
|
|
# host:port:rconPasswort[:tvPort], mehrere durch Komma getrennt
|
|
CS2_STATIC_SERVERS=
|