Commit Graph
39 Commits
Author SHA1 Message Date
Patrick Asmus 8b6a34e8d1 fix(xaseco): Neustart-Schleifen durch TS3-Plugin und Dedimania beheben
- tsstatus.php: ungefangene Exception bei fehlerhafter TS3-Query-Antwort
  beendete XAseco (auch unter PHP 7, live 58x im Log); jetzt leere Antwort
- XAsecoHealthcheck.sh: Webaccess-/Dedimania-Verbindungsfehler nicht mehr
  als XAseco-Fehler werten; das nicht erreichbare dedimania.net loeste
  sonst alle ~30 Minuten einen Neustart aus
2026-11-01 17:06:59 +01:00
Patrick Asmus 96798c2db6 fix(php8): AdminServ MatchSettings-Erstellung und Zeitlimit-Ueberlauf beheben
- folder.class.php: @array_slice(@stat()) brach unter PHP 8 mit TypeError
  ab, wenn Map-Dateinamen Sonderzeichen enthalten (MatchSettings erstellen
  -> HTTP 500)
- timedate.class.php: secToMillisec() auf int32 begrenzen; LapsTimeLimit
  wird in ms angezeigt und beim Speichern erneut mit 1000 multipliziert,
  der Server lehnte 2147483647000 ab (bestehender AdminServ-Bug)
2026-11-01 14:07:01 +01:00
Patrick Asmus 9f8f0f00d6 fix(php8): RemoteCP-Log-Rauschen reduzieren und errors.log rotieren
Unter PHP 8 sind viele fruehere Notices (Undefined array key, Attempt to
read property ...) Warnings. Der RemoteCP-Errorhandler ignoriert diese
ohne Debug-Modus wie bisher unter PHP 7; im Test wuchs errors.log sonst
um rund 500 KB in 15 Minuten. Zusaetzlich rotiere ich remotecp/cache/*.log
per logrotate (10 MB, 5 Dateien).
2026-11-01 13:51:55 +01:00
Patrick Asmus 1ecb6c93b3 fix(php8): statische Aufrufe, XAseco-Webaccess und TS3-count() fuer PHP 8 anpassen
- Php8Compat.php: nicht-statische Methoden, die als Klasse::methode()
  aufgerufen werden und kein $this nutzen, als static markieren
  (RemoteCP Core/Plugins, AdminServ Zip)
- web_access.inc.php: Response als array() statt '' initialisieren
  (behebt Illegal string offset in web_access, xmlrpc_db, mania_karma)
- plugin.teamspeak3.php: count() auf null entschaerft
2026-11-01 13:25:23 +01:00
Patrick Asmus b13b524ad5 feat(php8): Umstieg auf Debian Trixie mit PHP 8.4 (WIP)
PHP 7.4 ist seit 2022 EOL und bekommt keine Fixes mehr (u. a. PHP2Shell,
CVE-2026-109618/109619). Ich stelle das Image deshalb auf debian:trixie-slim
mit PHP 8.4.27 um.

- Php8Compat.php: ergaenzt __construct() fuer PHP-4-Konstruktoren und stellt
  String-Offsets $str{0} auf $str[0] um (AdminServ, RemoteCP, XAseco)
- RunTrackmaniaServer.sh: Patcher bei jedem Start auf die Volumes anwenden,
  mysqli_report(MYSQLI_REPORT_OFF) fuer den mysql_*-Shim von XAseco
- Bullseye-Archive-Repositories entfernt
2026-11-01 13:16:00 +01:00
Patrick Asmus 5ca2f1587f fix(remotecp): PHP-7.4-Deprecations beheben und PHP_DISPLAY_ERRORS respektieren
RemoteCP 4.0.3.5 hat nach jedem Neustart Deprecation-Meldungen oben auf der
Seite ausgegeben, obwohl PHP_DISPLAY_ERRORS=false gesetzt war.

Ich patche RemoteCP jetzt bei jedem Containerstart idempotent (greift auch
bei bestehenden Volumes):
- rcp_textparser.class.php: $hex{n} -> $hex[n], TMFColorParser-Konstruktor
  auf __construct() umgestellt
- GbxRemote.inc.php: $f_v{n} -> $f_v[n]
- core.functions.php: display_errors/display_startup_errors an
  PHP_DISPLAY_ERRORS gekoppelt statt hart auf 1; PHP-Warnings werden ohne
  Debug-Modus nur noch in cache/errors.log geschrieben
2026-11-01 12:47:14 +01:00
Patrick Asmus d550e814e2 fix: AdminServ Schreibrechte fuer ./logs/ und Configs bei Containerstart sicherstellen (Fixes #19)
Build & Push Docker Image / build-and-push (push) Failing after 20s
AdminServ erfordert zwingend Schreibrechte auf ./logs/ (777) und die Konfigurationsdateien (666). Das fruehere automatische Zuruecksetzen auf 755 fuehrte nach Reboots oder Wiederherstellung von Backups zum Fehler 'path was not required rights: ./logs/'. Bei jedem Start werden nun 777 und www-data Ownership fuer ./logs/ sichergestellt.
2026-10-31 11:27:30 +01:00
scriptos e89ac156ce fix(ip-watcher): IP-Prüfung bei unveränderter IP im Log ausgeben 2026-03-26 23:03:09 +01:00
scriptos 44dde46067 fix: logrotate-Fehler durch unsichere Permissions am logs-Verzeichnis beheben 2026-03-26 22:52:21 +01:00
scriptos 7bf847d31c feat: IP-Watcher – automatischer Neustart bei IP-Wechsel 2026-03-26 21:09:23 +01:00
scriptos e453ab6dbd Startup-Zusammenfassung: HOST_IP-Variable entfernt, Platzhalter beibehalten 2026-03-23 23:01:02 +01:00
scriptos 6cb5f783bf Startup-Zusammenfassung: Servername aus Config lesen, Host-IP ermitteln 2026-03-23 22:55:17 +01:00
scriptos 4ec60113f7 Fix: Signal-Handler dash-kompatibel (SIGTERM -> TERM) 2026-03-23 22:49:01 +01:00
scriptos d7be0b37ef Startup-Zusammenfassung am Ende des Startscripts hinzugefuegt 2026-03-23 22:28:13 +01:00
scriptos 7eb2b6ff0b Graceful Shutdown: Signal-Handler für sauberes Herunterfahren aller Dienste 2026-03-23 22:20:05 +01:00
scriptos cbb918d6b2 Log-Rotation fuer Apache-, PHP- und XAseco-Logs eingerichtet 2026-03-23 22:14:38 +01:00
scriptos 7710a032d9 XAseco-Healthcheck: Automatische Überwachung und Neustart bei Absturz 2026-03-23 22:06:58 +01:00
scriptos 12a8e0f778 feat: Map-Shuffle beim Containerstart (SHUFFLE_MAPLIST) 2026-03-23 21:55:27 +01:00
scriptos ca6c0faaa0 fix: TS3-Konfiguration wird bei Update nicht mehr überschrieben 2026-03-23 21:47:22 +01:00
scriptos daaace417b fix(security): AdminServ-Konfigurationspasswort durch zufälligen Hash ersetzen 2026-03-23 09:43:28 +01:00
scriptos f7d3a9ce83 docs: Doku an Code anpassen, AdminServ-Konfigurationspasswort automatisch absichern 2026-03-23 09:25:48 +01:00
scriptos 344029c551 feat: TeamSpeak3-Plugin mit eigenem Gateway reaktivieren 2026-03-22 23:35:11 +01:00
scriptos ed5b3d22fb fix: PHP-Warnungen im RemoteCP Mods-Plugin behoben (foreach auf leere Umgebungen) 2026-03-22 21:27:03 +01:00
scriptos 3fb1dac5ba feat: Forced Mods (Skins) per Umgebungsvariable beim Containerstart setzen 2026-03-22 20:58:46 +01:00
scriptos 61deb93273 feat: Automatische MatchSettings-Erkennung & AdminServ-Bugfixes 2026-03-22 17:05:25 +01:00
scriptos 75ae777f1e feat: Auto-Import von AdminServ ServerOptions beim Containerstart 2026-03-22 15:23:44 +01:00
scriptos 0717088eb4 fix: RemoteCP settings.xml-Erstellung entfernt (verursacht Folgefehler bei fehlenden Defaults) 2026-03-22 12:06:16 +01:00
scriptos b672f84f55 fix: RemoteCP-Benutzerregistrierung standardmäßig deaktivieren 2026-03-22 01:21:07 +01:00
scriptos 5891429c83 fix: RemoteCP CustomPoints PHP-Warnungen behoben (undefined constants)
Bare-constant-Zugriffe (pt_custom, pt_points, ...) in CustomPoints/index.php
durch defined()-Prüfungen ersetzt, um PHP 7.2+ Warnungen zu vermeiden.
Zusätzlich werden im Produktivmodus (PHP_DISPLAY_ERRORS=false) Warnungen
und Notices in der PHP error_reporting unterdrückt.

- Gepatchte index.php als assets/config/remotecp/plugins/CustomPoints/index.php
- Dockerfile: COPY der gepatchten Datei statt fragiler sed-Patches
- RunTrackmaniaServer.sh: Auto-Patch für bestehende Volumes beim Container-Start
- error_reporting im Produktivmodus um ~E_WARNING & ~E_NOTICE ergänzt

Closes #4
2026-03-22 01:09:37 +01:00
scriptos ffdc11a02b feat: Warmup deaktivieren & als ENV-Variable steuerbar machen
- Default von allwarmupduration in custom_game_settings.txt auf 0 gesetzt
- Neue Umgebungsvariable ALLWARMUPDURATION (Default: 0)
- Startup-Script wendet ENV auf MatchSettings an (inkl. FORCE_CONFIG_UPDATE)
- Dokumentation ergänzt (umgebungsvariablen.md)

Closes #2
2026-03-22 00:29:12 +01:00
scriptos e05de1fbe2 feat: SERVER_LADDER_LIMIT_MAX als ENV-Variable hinzugefügt (Closes #3) 2026-03-22 00:22:15 +01:00
scriptos 495a5a2663 fix: Berechtigungen bei Volume-Kopie korrigiert (cp -a statt cp -r)
Closes #5
2026-03-22 00:09:35 +01:00
scriptos bef71bd924 xaseco implementiert + Doku erweitert + Lizenz erweitert. 2026-03-20 23:11:15 +01:00
scriptos 5d626a7c9d Kosmetische Änderungen. 2026-03-20 19:21:09 +01:00
scriptos 65568e9f59 RemoteCP hinzugefügt. 2026-03-20 18:51:49 +01:00
scriptos c1c8ce5b3d Einige Anpassungen und Verbesserungen 2026-03-19 22:04:43 +01:00
scriptos 67b0fafeea PHP debug. 2026-03-18 22:36:34 +01:00
scriptos 3774e46924 Internet Mode neu konfiguriert. Neues BaseImage gewählt. 2026-03-18 21:54:28 +01:00
scriptos f57da6009d Files verschoben und Docker-Compose erstellt. 2026-03-18 12:49:22 +01:00