CS2_DOCKER_HOSTS nimmt eine Liste von Docker-Hosts. Jedes Match läuft auf dem Host mit den meisten freien Ports und merkt sich seinen Host, damit Status, Konfiguration und Stopp dort landen. Ohne die Variable bleibt alles beim bisherigen einzelnen Host. deploy/docker-host-einrichten.sh richtet einen Host per SSH ein.
76 lines
3.2 KiB
Bash
76 lines
3.2 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=
|
|
# 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 <ssh-ziel>
|
|
# 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
|
|
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=
|