45 lines
2.4 KiB
Markdown
45 lines
2.4 KiB
Markdown
# 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-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).
|