Zum Inhalt springen
Warcon
Open Source, MIT Bun · SvelteKit · Postgres Docker Compose

RCON für WARDOGS, ohne das Passwort herauszugeben.

Warcon ist ein selbst gehostetes Panel für WARDOGS Dedicated Server. Verwalte deine Server an einem Ort, gib jedem Admin ein eigenes Login und eine eigene Rolle, und halte fest, was passiert. Das RCON-Passwort bleibt verschlüsselt auf dem Server, deine Admins müssen es also nie zu sehen bekommen.

Nutze es unter console.warcon.app oder betreibe deine eigene Kopie mit docker compose up. Es ist in beiden Fällen dasselbe quelloffene Panel.

Warcon-Serverübersicht mit Teampunkten, Kartendetails und Matchsteuerung eines WARDOGS-Servers

Aufgenommen auf dem eingebauten Demo-Server, die Zahlen sind also erfunden.

Das Problem

Die offizielle Webkonsole ruft den Spielserver direkt aus dem Browser über unverschlüsseltes HTTP auf. Deshalb lässt sie sich nicht über HTTPS ausliefern, und jeder Admin braucht das RCON-Passwort.

Was Warcon stattdessen macht

Warcon macht diese Aufrufe serverseitig. Das Passwort wird mit AES-GCM verschlüsselt gespeichert, Admins melden sich mit eigenen Konten an, und jede Aktion wird zuerst gegen ihre Rolle geprüft.

Und es schreibt alles mit

Ein Audit-Eintrag wird geschrieben, bevor die Antwort zurückgeht: wer was auf welchem Server gemacht hat, wen es betraf und ob das Spiel es angenommen hat.

Funktionen

Für Clans und Communities, mit einem Server oder mehreren.

01

Deine Server an einem Ort

Füge jeden WARDOGS-Server hinzu, den du betreibst, jeweils mit eigenem verschlüsseltem RCON-Passwort. Ein Worker-Prozess behält sie im Blick, und die Seiten aktualisieren sich live, solange du sie geöffnet hast.

02

Eigene Konten statt eines gemeinsamen Passworts

Jeder Clan und jede Community ist eine Organisation mit eigenen Servern und Mitgliedern. Über Einladungslinks melden sich Leute mit Discord oder Steam an, und Passkeys sowie Authenticator-Apps werden unterstützt. Rollen gelten pro Server, und du kannst sie bearbeiten oder eigene hinzufügen.

03

Ein Audit-Protokoll

Logins, Benutzer- und Serveränderungen sowie Spielbefehle, jeweils mit Urheber, Ziel, Ergebnis und Dauer. Filtern, als CSV oder JSON exportieren und daneben das eigene Log des Spielservers lesen.

04

Statistiken und Matchverlauf

Das Spiel speichert kaum Verlauf, also zeichnet der Worker ihn auf: Spieler online im Zeitverlauf, Verfügbarkeit, Zeit pro Karte, Stoßzeiten, Sitzungen und Spielzeit sowie jedes Match mit seinem Scoreboard. Bestenlisten lassen sich pro Server öffentlich machen.

05

Spielerverlauf und Notizen

Öffne einen Spieler, um seine Sitzungen, die Namen, die er benutzt hat, und die Aktionen zu sehen, die ihn auf deinen Servern betrafen, dazu gemeinsame Notizen und eine Watchlist. Der optionale Risikowert ist nur ein Hinweis: RCON liefert keine Daten zu Aim, Position oder Eingaben, Cheating lässt sich damit also nicht erkennen.

06

Automatisierung mit Testlauf

Willkommensnachrichten per Flüstern, geplante Broadcasts, ein Karten-Reset, wenn sich der Server leert, Kick-Regeln beim Verbinden und ein Namensfilter. Du kannst jede Regel an den letzten 24 Stunden testen, bevor du sie einschaltest, und alles, was sie tut, wird protokolliert.

07

Bans und reservierte Slots serverübergreifend

Führe eine Banliste und eine Liste reservierter Slots für die Organisation, mit Gründen und Ablaufdatum, und der Worker setzt sie auf jedem deiner Server um.

08

Discord

Poste ausgewählte Audit-Ereignisse in einen Kanal, lass dich benachrichtigen, wenn ein Spieler von der Watchlist beitritt, oder halte für jeden Server eine Live-Statuskarte, die in derselben Nachricht aktualisiert wird.

09

Die Funktionen der offiziellen Konsole

Status und Scoreboard, Kick, Ban, Kill, Flüstern, Teamwechsel, Broadcasts, Karten- und Matchsteuerung, Rotation bearbeiten, reservierte Slots, Score-Tick, Sponsorbild und ServerSettings.ini mit Prüfen und Anwenden.

So funktioniert es

Warcon sitzt zwischen deinen Admins und dem Spiel.

Die Web-App liefert die Seiten aus und hält die Sitzungen. Ein separater Worker-Prozess führt die Aufrufe an den RCON-Listener jedes Spielservers aus. Er fragt jeden Server alle ein bis zwei Sekunden ab, solange dort Betrieb ist, seltener, wenn er leer ist, und zeichnet auf, was das Spiel nicht speichert. Gespeichert wird in Postgres; mit TimescaleDB werden ältere Messwerte komprimiert.

Betreibe es neben dem Spielserver, auf einem VPS oder auf einem Container-Host. Es muss nur den RCON-Port erreichen: direkt, über ein privates Netzwerk oder über einen TLS-Proxy auf dem Spielhost.

Browser
Admins melden sich an
HTTPS ▸
Warcon
Web · Worker · Audit
HTTP ▸
Spielserver
:7776 WDRCON
Postgres
Benutzer · Server · Audit · Messwerte · Matches

Das Protokoll wurde aus der offiziellen Konsole rekonstruiert und ist im Repository dokumentiert. Ein Spielupdate kann es ändern, dann funktioniert eventuell etwas nicht, bis Warcon nachgezogen hat.

Selbst hosten

Docker Compose und eine Datei zum Anpassen.

Docker Compose startet die Web-App, den Worker und eine TimescaleDB-Datenbank und führt vorher die Migrationen aus. Öffne die URL, lege das Owner-Konto an, füge einen Server hinzu und schick deinen Admins einen Einladungslink. Mit dem eingebauten Demo-Server kannst du dich umsehen, bevor du ein echtes Passwort eingibst.

  1. 1Eine Maschine mit Docker: ein günstiger VPS, ein alter PC oder der Spielserver selbst.
  2. 2Host, RCON-Port (meist 7776) und RCON-Passwort deines Servers.
  3. 3Optional: Caddy, nginx, Traefik oder ein Cloudflare Tunnel davor für HTTPS.
Terminal
git clone https://github.com/warcon-app/warcon.git warcon && cd warcon
cp .env.example .env
# BETTER_AUTH_SECRET, ENCRYPTION_KEY und RELAY_SECRET auf Werte aus `openssl rand -base64 32` setzen,
# POSTGRES_PASSWORD und ORIGIN auf die URL, die die Leute öffnen werden
docker compose up -d
Rollen

Gib jedem Admin das, was er braucht.

Rollen gelten pro Server, ein Mitglied kann also auf einem Server admin und auf einem anderen viewer sein. Jede Organisation startet mit den drei Rollen unten. Ihre Owner können ändern, was jede davon erlaubt, oder eigene hinzufügen, etwa eine Trial-Rolle, die kicken, aber nicht bannen darf.

Aktionenvieweroperatoradminorg owner
Status, Spieler, Kills, Rotation, Bans und reservierte Slots, Statistiken, Bestenlisten, Spielerstatistiken✓✓✓✓
Broadcast, Flüstern, Kick, Kill, Teamwechsel, Match- und Kartensteuerung, Live-Änderungen an der Rotation, Spielernotizen und die Watchlist·✓✓✓
Bans, reservierte Slots, die Ban- und Slot-Listen der Organisation, Rotation speichern, Konfiguration und Einstellungen, Automatisierung, das Audit-Protokoll aller Mitglieder und das Server-Log, rohe RCON-Aufrufe··✓✓
Server, Mitglieder, Rollen, Einladungslinks und Discord-Webhooks; das Audit-Protokoll der Organisation···✓