mirror of
https://git.techniverse.net/scriptos/tmserver-docker.git
synced 2026-05-08 07:05:47 +00:00
Startup-Zusammenfassung: Servername aus Config lesen, Host-IP ermitteln
This commit is contained in:
@@ -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 <name> innerhalb von <server_options> lesen (nicht aus <authorization_levels>)
|
||||
_SERVER_NAME=$(php -r '
|
||||
$cfg = file_get_contents($argv[1]);
|
||||
if (preg_match("/<server_options>.*?<name>([^<]*)<\/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 '(?<=<ladder_mode>)[^<]+' "$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:-"<host-ip>"}
|
||||
|
||||
# --- Zeilen in Temp-Datei schreiben ('---' = Trennlinie) ---
|
||||
cat > "$_SUMMARY_TMP" <<EOSUMMARY
|
||||
TrackMania Nations Forever - Server gestartet
|
||||
---
|
||||
Servername: ${SERVER_NAME:-Trackmania Server}
|
||||
Modus: ${_MODE_DISPLAY} (Ladder: ${SERVER_LADDER_MODE:-forced})
|
||||
Servername: ${_SERVER_NAME}
|
||||
Modus: ${_MODE_DISPLAY} (Ladder: ${_LADDER_MODE})
|
||||
Spieler: max. ${_MAX_PLAYERS} Spieler / ${_MAX_SPECS} Zuschauer
|
||||
Server-Port: ${SERVER_PORT:-2350} (TCP/UDP) | P2P: ${SERVER_P2P_PORT:-3450} (TCP)
|
||||
XMLRPC-Port: ${SERVER_XMLRPC_PORT:-5000}
|
||||
@@ -1310,8 +1336,8 @@ XAseco: ${_XASECO_STATUS}
|
||||
Healthcheck: ${_HC_STATUS}
|
||||
Forced Mods: ${_MODS_STATUS}
|
||||
---
|
||||
AdminServ: http://<host-ip>/
|
||||
RemoteCP: http://<host-ip>/remotecp/
|
||||
AdminServ: http://${_HOST_IP}/
|
||||
RemoteCP: http://${_HOST_IP}/remotecp/
|
||||
---
|
||||
Log-Rotation: Aktiv (stuendlich, max. 10 MB)
|
||||
PHP-Debug: ${_PHP_DEBUG}
|
||||
|
||||
+36
-32
@@ -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://<host-ip>/ ║
|
||||
║ RemoteCP: http://<host-ip>/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
|
||||
|
||||
Reference in New Issue
Block a user