From 6cb5f783bf83e25cbdd05b36849414d7f653c62a Mon Sep 17 00:00:00 2001 From: "Patrick Asmus (scriptos)" Date: Mon, 23 Mar 2026 22:55:17 +0100 Subject: [PATCH] Startup-Zusammenfassung: Servername aus Config lesen, Host-IP ermitteln --- assets/bin/RunTrackmaniaServer.sh | 34 ++++++++++++++-- docs/konfiguration.md | 68 ++++++++++++++++--------------- 2 files changed, 66 insertions(+), 36 deletions(-) diff --git a/assets/bin/RunTrackmaniaServer.sh b/assets/bin/RunTrackmaniaServer.sh index c12b57f..b87a2ed 100644 --- a/assets/bin/RunTrackmaniaServer.sh +++ b/assets/bin/RunTrackmaniaServer.sh @@ -1282,6 +1282,27 @@ print_startup_summary() { _PHP_DEBUG="Deaktiviert" fi + # Servername aus dedicated_cfg.txt lesen (nicht aus Env-Variable, da diese + # nach AdminServ-Aenderungen oder manuellen Edits veraltet sein kann) + _SERVER_NAME="" + if [ -f "$CONFIG" ]; then + # Nur innerhalb von lesen (nicht aus ) + _SERVER_NAME=$(php -r ' + $cfg = file_get_contents($argv[1]); + if (preg_match("/.*?([^<]*)<\/name>/s", $cfg, $m)) { + echo trim($m[1]); + } + ' "$CONFIG" 2>/dev/null) + fi + _SERVER_NAME=${_SERVER_NAME:-${SERVER_NAME:-Trackmania Server}} + + # Ladder-Modus aus dedicated_cfg.txt lesen + _LADDER_MODE="" + if [ -f "$CONFIG" ]; then + _LADDER_MODE=$(grep -oP '(?<=)[^<]+' "$CONFIG" 2>/dev/null | head -1) + fi + _LADDER_MODE=${_LADDER_MODE:-${SERVER_LADDER_MODE:-forced}} + # Max-Players und Max-Spectators aus Config lesen (falls verfuegbar) _MAX_PLAYERS="" _MAX_SPECS="" @@ -1292,12 +1313,17 @@ print_startup_summary() { _MAX_PLAYERS=${_MAX_PLAYERS:-${SERVER_MAX_PLAYERS:-32}} _MAX_SPECS=${_MAX_SPECS:-${SERVER_MAX_SPECTATORS:-32}} + # Host-IP ermitteln (IP des Default-Route-Interface) + _HOST_IP=$(ip route get 1.1.1.1 2>/dev/null | grep -oP 'src \K[0-9.]+' | head -1) + _HOST_IP=${_HOST_IP:-$(hostname -i 2>/dev/null | awk '{print $1}')} + _HOST_IP=${_HOST_IP:-""} + # --- Zeilen in Temp-Datei schreiben ('---' = Trennlinie) --- cat > "$_SUMMARY_TMP" </ -RemoteCP: http:///remotecp/ +AdminServ: http://${_HOST_IP}/ +RemoteCP: http://${_HOST_IP}/remotecp/ --- Log-Rotation: Aktiv (stuendlich, max. 10 MB) PHP-Debug: ${_PHP_DEBUG} diff --git a/docs/konfiguration.md b/docs/konfiguration.md index 99df2a1..5cb8611 100644 --- a/docs/konfiguration.md +++ b/docs/konfiguration.md @@ -157,48 +157,52 @@ Die logrotate-Konfiguration liegt im Image unter `/etc/logrotate.d/tmserver` (Qu Nach Abschluss des gesamten Startprozesses wird automatisch eine übersichtliche Zusammenfassung aller wichtigen Server-Informationen als formatierte Box in der Konsole ausgegeben. Die Box-Breite passt sich dynamisch an den längsten Inhalt an. +Alle angezeigten Werte (Servername, Spielerzahl, Ladder-Modus etc.) werden direkt aus der `dedicated_cfg.txt` gelesen – nicht aus den Umgebungsvariablen. So werden auch nachträgliche Änderungen (z.B. über AdminServ oder manuelles Editieren) korrekt angezeigt. Die Host-IP wird automatisch über das Default-Route-Interface des Containers ermittelt. + **Angezeigte Informationen:** -| Bereich | Details | -|---------|---------| -| **Server** | Servername, Modus (Internet/LAN), Ladder, Spieler-/Zuschauerlimit | -| **Netzwerk** | Server-Port, P2P-Port, XMLRPC-Port | -| **Maps** | Aktive MatchSettings-Datei, Anzahl geladener Maps, Shuffle-Status | -| **Dienste** | XAseco-Status (mit PID), Healthcheck, Forced Mods | -| **Web-Interfaces** | AdminServ- und RemoteCP-URLs | -| **System** | Log-Rotation, PHP-Debug-Modus, TM-Server-PID | +| Bereich | Details | Quelle | +|---------|---------|--------| +| **Server** | Servername, Modus (Internet/LAN), Ladder, Spieler-/Zuschauerlimit | `dedicated_cfg.txt` | +| **Netzwerk** | Server-Port, P2P-Port, XMLRPC-Port | Umgebungsvariablen | +| **Maps** | Aktive MatchSettings-Datei, Anzahl geladener Maps, Shuffle-Status | MatchSettings-XML | +| **Dienste** | XAseco-Status (mit PID), Healthcheck, Forced Mods | Laufzeit-PIDs | +| **Web-Interfaces** | AdminServ- und RemoteCP-URLs (mit ermittelter Host-IP) | Container-Netzwerk | +| **System** | Log-Rotation, PHP-Debug-Modus, TM-Server-PID | Laufzeit | **Beispielausgabe:** ``` -╔════════════════════════════════════════════════════════════════╗ -║ TrackMania Nations Forever - Server gestartet ║ -╠════════════════════════════════════════════════════════════════╣ -║ Servername: Mein Trackmania Server ║ -║ Modus: Internet (Ladder: forced) ║ -║ Spieler: max. 32 Spieler / 32 Zuschauer ║ -║ Server-Port: 2350 (TCP/UDP) | P2P: 3450 (TCP) ║ -║ XMLRPC-Port: 5000 ║ -╠════════════════════════════════════════════════════════════════╣ -║ MatchSettings: custom_game_settings.txt ║ -║ Maps: 24 Maps geladen ║ -║ Map-Shuffle: Deaktiviert ║ -╠════════════════════════════════════════════════════════════════╣ -║ XAseco: Aktiv (PID 1234) ║ -║ Healthcheck: Aktiv (PID 5678) ║ -║ Forced Mods: Keine ║ -╠════════════════════════════════════════════════════════════════╣ -║ AdminServ: http:/// ║ -║ RemoteCP: http:///remotecp/ ║ -╠════════════════════════════════════════════════════════════════╣ -║ Log-Rotation: Aktiv (stuendlich, max. 10 MB) ║ -║ PHP-Debug: Deaktiviert ║ -║ TM-Server: PID 42 ║ -╚════════════════════════════════════════════════════════════════╝ +╔════════════════════════════════════════════════════════════════════╗ +║ TrackMania Nations Forever - Server gestartet ║ +╠════════════════════════════════════════════════════════════════════╣ +║ Servername: Mein Trackmania Server ║ +║ Modus: Internet (Ladder: forced) ║ +║ Spieler: max. 32 Spieler / 32 Zuschauer ║ +║ Server-Port: 2350 (TCP/UDP) | P2P: 3450 (TCP) ║ +║ XMLRPC-Port: 5000 ║ +╠════════════════════════════════════════════════════════════════════╣ +║ MatchSettings: custom_game_settings.txt ║ +║ Maps: 24 Maps geladen ║ +║ Map-Shuffle: Deaktiviert ║ +╠════════════════════════════════════════════════════════════════════╣ +║ XAseco: Aktiv (PID 1234) ║ +║ Healthcheck: Aktiv (PID 5678) ║ +║ Forced Mods: Keine ║ +╠════════════════════════════════════════════════════════════════════╣ +║ AdminServ: http://172.20.60.10/ ║ +║ RemoteCP: http://172.20.60.10/remotecp/ ║ +╠════════════════════════════════════════════════════════════════════╣ +║ Log-Rotation: Aktiv (stuendlich, max. 10 MB) ║ +║ PHP-Debug: Deaktiviert ║ +║ TM-Server: PID 42 ║ +╚════════════════════════════════════════════════════════════════════╝ ``` Die Zusammenfassung kann jederzeit mit `docker logs tmserver` erneut eingesehen werden. +> **Hinweis:** Die angezeigte IP ist die Container-interne IP. Wenn der Server über Port-Forwarding erreichbar ist, muss die tatsächliche Host-IP oder Domain verwendet werden. + > **Hinweis:** Die Startup-Zusammenfassung ist nach einem Image-Update automatisch aktiv – auch bei bestehenden Installationen. Es sind keine manuellen Schritte nötig. ## AdminServ ServerOptions-Import