Web panel (like txAdmin) on the game port: login/roles/users, players, kick/ban/op, bans, live console, world reset/backups/restore, settings editor, save ZIP upload/download, start/stop/restart; in-process restart loop; tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -120,6 +120,50 @@ Fehlende Einstellungen ergänzt der Server beim Start automatisch. Umgebungsvari
|
||||
`MSCO_NAME`, `MSCO_PORT`, `MSCO_MAX_PLAYERS`, `MSCO_PUBLIC`, `MSCO_REQUIRE_STEAM`, `MSCO_PUBLIC_ADDRESS`,
|
||||
`MSCO_STEAM_WEB_API_KEY`) überschreiben `server.json`.
|
||||
|
||||
## Web-Panel (wie txAdmin)
|
||||
|
||||
Der Server bringt ein Web-Panel mit – **auf demselben Port wie das Spiel** (Standard `7777`). Einfach im Browser
|
||||
`http://<server-ip>:7777/` öffnen; der Server erkennt selbst, ob ein Browser oder das Spiel verbindet. Es muss also
|
||||
kein weiterer Port freigegeben werden.
|
||||
|
||||
**Erstes Anmelden:** Beim Start ohne Panel-Konto steht im Log ein Einrichtungs-Code:
|
||||
|
||||
```bash
|
||||
docker logs msco-server | grep -A2 "WEB PANEL SETUP"
|
||||
```
|
||||
|
||||
Mit diesem Code legst du im Browser das **Owner**-Konto an (erneut anzeigen: `msco panel`).
|
||||
|
||||
| Bereich | Was geht |
|
||||
|---|---|
|
||||
| Dashboard | Spieler, Laufzeit, Weltzustand, Backups – **Start / Stop / Restart / Shut down** |
|
||||
| Players | Liste mit ID, Name, SteamID, IP · Kick, Ban, Admin geben/nehmen · Nachricht an alle |
|
||||
| Console | Live-Log (Chat, Beitritte, Admin-Aktionen) und Befehle eingeben (mit Verlauf ↑/↓) |
|
||||
| Bans | Gebannte ansehen, entbannen, SteamID auch offline bannen |
|
||||
| World & Backups | Welt zurücksetzen, Backup, Reset-Punkt, Backups wiederherstellen, **Spielstand als ZIP hoch-/herunterladen** |
|
||||
| Settings | `server.json` bearbeiten (Name, Spielerzahl, Sichtbarkeit, Ports, Panel, Schlüssel …) |
|
||||
| Panel Users | weitere Benutzer anlegen: **Moderator** (Spieler/Chat), **Admin** (alles am Server), **Owner** (+ Benutzer) |
|
||||
|
||||
- **Stop** nimmt nur das Spiel offline (Spieler raus, nicht gelistet) – das Panel läuft weiter, **Start** holt es
|
||||
zurück. **Restart** lädt Einstellungen, Lizenz und Spielstand neu (man bleibt angemeldet). **Shut down** beendet
|
||||
alles.
|
||||
- Passwörter werden nur als PBKDF2-Hash in `data/panel_users.json` gespeichert, Login mit Sperre nach
|
||||
Fehlversuchen, Sitzungs-Cookie (HttpOnly, SameSite=Strict), Schutz gegen CSRF.
|
||||
|
||||
### Hinter einem Reverse-Proxy (nginx, Traefik, Caddy, Nginx Proxy Manager …)
|
||||
|
||||
Den Proxy einfach auf `http://<server>:7777` zeigen lassen und in `server.json` setzen:
|
||||
|
||||
```json
|
||||
"PanelTrustProxy": true,
|
||||
"PanelBasePath": ""
|
||||
```
|
||||
|
||||
`PanelTrustProxy` übernimmt die echte Besucher-IP und HTTPS (`X-Forwarded-For` / `-Proto`), `PanelBasePath` (z.B.
|
||||
`"/panel"`) bzw. `X-Forwarded-Prefix` für einen Unterpfad. Lieber einen eigenen Port? `"PanelPort": 40120` (und im
|
||||
`docker-compose.yml` freigeben); mit `"PanelBindAddress": "127.0.0.1"` ist das Panel dann nur über den lokalen Proxy
|
||||
erreichbar. Ganz aus: `"PanelEnabled": false`.
|
||||
|
||||
## Konsolenbefehle
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
@@ -135,6 +179,9 @@ Fehlende Einstellungen ergänzt der Server beim Start automatisch. Umgebungsvari
|
||||
| `backup` | aktuellen Spielstand jetzt sichern |
|
||||
| `reset-world` | ganze Welt zurück auf den Reset-Punkt (den Spielstand, wie er dem Server gegeben wurde: Start, `--import-save`, `reload-save`) – alle verbinden neu |
|
||||
| `set-reset-point` | aktuellen Spielstand als neuen Reset-Punkt nehmen |
|
||||
| `stop-game` / `start-game` | Spiel offline nehmen (Spieler raus, Panel läuft weiter) / wieder starten |
|
||||
| `restart` | Server neu starten (Einstellungen, Lizenz, Spielstand neu laden) |
|
||||
| `panel` | Adresse des Web-Panels und ggf. den Einrichtungs-Code anzeigen |
|
||||
| `stop` | speichern und beenden |
|
||||
|
||||
Im Spiel öffnen Admins mit `/admin` (Chat, Taste T) oder `admin` (F7-Konsole) das Admin-Menü: Kick/Ban,
|
||||
|
||||
Reference in New Issue
Block a user