diff --git a/.env.example b/.env.example index 03c94b3..da4d952 100644 --- a/.env.example +++ b/.env.example @@ -9,8 +9,8 @@ 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 +# 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 diff --git a/README.md b/README.md index 0bdfdf3..fa4844a 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Die Tests decken Veto-Engine und Ablaufvalidierung, RCON-Protokoll (gegen einen Diese Codes gelten nur für die Webseite. Der CS2-Serverzugang wird getrennt bereitgestellt (Schritt 6). Der Organisator kann jeden Code jederzeit neu erzeugen; der alte Link wird damit ungültig. 4. **Spieler treten bei:** Über den Teamlink gibt ein Spieler seinen Namen ein (optional die SteamID64) und landet in genau diesem Team. Pro Team sind maximal 2 bzw. 5 Spieler erlaubt. - Der erste Spieler eines Teams wird Captain. Organisator oder Captain können den Captain wechseln. - - Jeder Spieler setzt sich auf „bereit“. Ein Team ist bereit, wenn es vollständig ist (abschaltbar mit `REQUIRE_FULL_TEAMS=false`), einen Captain hat und alle bereit sind. + - Jeder Spieler setzt sich auf „bereit“. Ein Team ist bereit, sobald mindestens ein Spieler beigetreten ist, es einen Captain hat und alle beigetretenen Spieler bereit sind. Mit `REQUIRE_FULL_TEAMS=true` muss das Team zusätzlich vollständig sein (2 bzw. 5 Spieler). 5. **Map-Veto:** Sind beide Teams bereit, startet der Organisator das Veto. Die Captains bannen und wählen abwechselnd nach dem festen Ablauf (siehe unten). Die Seite zeigt jederzeit: - welches Team am Zug ist - welche Aktion ansteht @@ -272,7 +272,7 @@ Alle Variablen mit Standardwerten stehen in [`.env.example`](.env.example). Die | `PUBLIC_URL` | `http://localhost:5173` | Basis für Einladungslinks | | `DATABASE_FILE` | `data/cs2-mapveto.db` | SQLite-Datei | | `CREATE_MATCH_PASSWORD` | leer | Passwort zum Erstellen von Matches | -| `REQUIRE_FULL_TEAMS` | `true` | Veto nur mit vollständigen Teams | +| `REQUIRE_FULL_TEAMS` | `false` | `true`: Veto nur mit vollständigen Teams | | `SERVER_ADAPTER` | `demo` | `demo`, `docker` oder `static` | | `SERVER_IDLE_TIMEOUT_MINUTES` | `30` | Frist bis zum automatischen Herunterfahren | | `SERVER_MAX_LIFETIME_HOURS` | `8` | harte Obergrenze pro Server | diff --git a/server/src/config.js b/server/src/config.js index 35a9e6e..9b0d781 100644 --- a/server/src/config.js +++ b/server/src/config.js @@ -34,7 +34,7 @@ export function loadConfig(overrides = {}) { databaseFile: path.resolve(REPO_ROOT, str('DATABASE_FILE', 'data/cs2-mapveto.db')), mapPoolFile: path.resolve(REPO_ROOT, str('MAP_POOL_FILE', 'server/config/map-pools.json')), createMatchPassword: str('CREATE_MATCH_PASSWORD'), - requireFullTeams: bool('REQUIRE_FULL_TEAMS', true), + requireFullTeams: bool('REQUIRE_FULL_TEAMS', false), trustProxy: bool('TRUST_PROXY', false), serverAdapter: str('SERVER_ADAPTER', 'demo'),