scopedvr-map-editor/docs/server-sektion.md
2026-10-31 00:08:06 +01:00

2.9 KiB
Raw Blame History

Server-Sektion (Tab „Server“)

Der Editor ist ein Client der Match-Server-Admin-API (docs/admin-api.md im Repo scopedvr-match-server). Damit verwaltet jeder seinen eigenen Server – ohne Konsole, ohne Tailscale, auf jedem Betriebssystem.

Einrichten

  1. Auf dem Server in der server.cfg [admin] enabled=true setzen und starten. Das Token steht danach in der state_file des Servers (Standard admin.cfg).
  2. Editor → Tab Server → ➕ Neu: Name, Adresse, Port (Standard 24580), Token. „🔌 Verbindung testen“ prüft Erreichbarkeit und Token.
  3. 🔌 Verbinden.

Sicher erreichen: Die Admin-API spricht Klartext-HTTP und hört standardmäßig nur auf localhost. Entweder SSH-Tunnel (ssh -L 24580:127.0.0.1:24580 benutzer@server, im Editor dann Adresse 127.0.0.1) oder ein Reverse-Proxy mit https (Haken „Sichere Verbindung“).

Funktionen

  • Mehrere Server speichern; Token verschlüsselt (Schlüssel aus Rechner-ID + Nutzerordner), nie im Klartext in Datei oder Log. Schutz gegen Zufallsleser, nicht gegen Schadsoftware auf deinem Benutzerkonto.
  • Übersicht: Name, Map, Modus, Phase, Spieler/Bots, Laufzeit, öffentlich/privat.
  • ⬆ Aktuelle Map hochladen: prüft und signiert die Map im Editor (wie Speichern), lädt sie hoch, der Server prüft noch einmal. Ungültige Maps werden gar nicht erst gesendet; 422-Fehler erscheinen als verständliche Liste mit Hilfetexten. Existiert der Name schon, fragt der Editor, ob ersetzt werden soll. Optional: direkt in die Rotation aufnehmen.
  • Einstellungen: Formular direkt aus der Server-Spec; gesendet werden nur geänderte Werte. Die Antwort zeigt je Wert: sofort / ab nächster Map / nach Neustart. „↩ Zurücksetzen“ verwirft Änderungen.
  • Spieler: Kick, Sperren (10 min … dauerhaft), Sperrliste mit „Aufheben“.
  • Match & Maps: Match neu starten, Map jetzt laden, Rotation per Häkchen, hochgeladene Maps löschen. Alles Zerstörerische fragt vorher nach.
  • ⏻ Server neu starten: fragt nach, trennt alle Spieler, zeigt „Server startet neu…“ und verbindet sich wieder, sobald der neue Prozess antwortet (bis 120 s). Der Server beendet sich dafür mit Exit-Code 75; neu starten muss ihn Docker (Restart-Policy), systemd oder tools/start_server.* (docs/admin-api.md im Server-Repo).
  • Bot-Anzahl geht bis 32, die Grenze kommt vom Server. Reicht die Teamgröße nicht (2 × Teamgröße = Platz für Bots), zeigt das Speichern eine Warnung mit der nötigen Größe.
  • Server-Log mit Filter.

Code

src/server/ (AdminClient, ServerStore, AdminTexte, MapPush), src/ui/panels/server_panel.gd, SvmapIO.to_signed_text.

Tests

tests/test_server_sektion.gd (Unit), tests/run_server_sektion_e2e.sh (echter Match-Server + echtes Panel: Verbinden, falsches Token, unerreichbar, Einstellungen, Push gültig/doppelt/ersetzen/lokal ungültig/422, Rotation, Map laden/löschen, Restart, Kick, Logs, 20 Bots, Server-Neustart).