• v1.4.0 7578e72334

    v1.4.0 – PHP 8.4 (fehlerhaftes Image, bitte v1.4.1 nutzen)
    Build & Push Docker Image / build-and-push (push) Successful in 1m45s
    Pre-Release

    scriptos released this 2026-11-01 16:15:15 +00:00 | 1 commits to master since this release

    ❌ Bitte nicht verwenden: Das Image 1.4.0 wurde versehentlich für arm64 gebaut und startet auf amd64-Hosts nicht (exec format error). Nutze stattdessen v1.4.1 – inhaltlich identisch, nur korrekt für linux/amd64 gebaut.

    Umstieg auf PHP 8.4

    Ab dieser Version basiert das Image auf Debian 13 (Trixie) mit PHP 8.4.27. PHP 7.4 bekommt seit 2022 keine Sicherheitsupdates mehr und ist u. a. von PHP2Shell (CVE-2026-109618, CVE-2026-109619) betroffen.

    ⚠️ Bitte beachten

    AdminServ, RemoteCP und XAseco stammen aus PHP-5-Zeiten und werden beim Containerstart automatisch für PHP 8 gepatcht. Ich habe die gängigen Funktionen getestet, es kann aber noch zu Fehlern kommen. Bitte meldet Probleme als Issue – mit Beschreibung und der passenden Log-Meldung. Wer bei PHP 7.4 bleiben möchte, nutzt vorerst 1.3.3.

    Änderungen

    • Basis: debian:trixie-slim, PHP 8.4.27 (Archive-Repositories von Bullseye entfallen)
    • Php8Compat.php: ergänzt __construct() für PHP-4-Konstruktoren, stellt $str{0} auf $str[0] um und markiert statisch aufgerufene Methoden als static
    • XAseco: Webaccess-Antworten als Array initialisiert (behebt TypeErrors in Dedimania/ManiaKarma), mysqli_report(MYSQLI_REPORT_OFF) für den mysql-Shim, count()-Fix und Absturz-Fix im TeamSpeak3-Plugin
    • XAseco-Healthcheck: Verbindungsfehler externer Dienste (z. B. das nicht erreichbare dedimania.net) lösen keinen Neustart mehr aus
    • AdminServ: „MatchSettings erstellen“ bei Map-Dateinamen mit Sonderzeichen repariert, Überlauf beim Speichern von Zeitlimits (z. B. LapsTimeLimit) behoben
    • RemoteCP: PHP_DISPLAY_ERRORS wird respektiert, PHP-7.4-Deprecations behoben, weniger Log-Rauschen, remotecp/cache/*.log wird rotiert

    Update

    git pull
    docker compose pull
    docker compose up -d
    
    Downloads
  • v1.3.3 592f047274

    v1.3.3
    Build & Push Docker Image / build-and-push (push) Successful in 1m18s
    Stable

    scriptos released this 2026-10-31 10:54:49 +00:00 | 8 commits to master since this release

    Release Notes – Version 1.3.3

    Datum: 31. Oktober 2026
    Branch: master
    Docker Image: git.techniverse.net/scriptos/trackmania-server:1.3.3


    Änderungen in dieser Version

    Bugfixes

    • AdminServ Schreibrechte (#19): Das Log-Verzeichnis (./logs/) wird beim Containerstart nun automatisch auf 777 und Besitzer www-data:www-data gehalten, damit AdminServ nach Reboots oder Backups dauerhaft beschreibbar bleibt. (d550e81)
    • Docker Build (Debian Bullseye EOL): Die Paketquellen im Dockerfile wurden auf archive.debian.org umgestellt, um 404-Fehler beim Image-Build durch archivierte Bullseye-Security-Mirrors zu beheben. (592f047)

    Upgrades

    • IP-Watcher: Upgrade des Basis-Images von alpine:3.21 (EOL 01.11.2026) auf alpine:3.24. (9ac5c99)

    Release

    • Docker Image Tag in docker-compose.yml auf 1.3.3 aktualisiert. (d550e81)

    Alle Commits (seit 1.3.2)

    Hash Beschreibung
    592f047 fix(docker): Debian Bullseye Archive-Repositories fuer Paketinstallation nutzen
    d550e81 fix: AdminServ Schreibrechte fuer ./logs/ und Configs bei Containerstart sicherstellen (Fixes #19)
    9ac5c99 feat: Upgrade ip-watcher Image auf alpine:3.24 und Netzwerk-Ports aktualisiert
    Downloads
  • v1.3.2 22733ce651

    v1.3.2
    Build & Push Docker Image / build-and-push (push) Successful in 51s
    Stable

    scriptos released this 2026-03-26 22:08:55 +00:00 | 13 commits to master since this release

    Release Notes – Version 1.3.2

    Datum: 26. März 2026
    Branch: release-1.3.2
    Docker Image: git.techniverse.net/scriptos/trackmania-server:1.3.2


    Änderungen in dieser Version

    Bugfixes

    • IP-Watcher: Bei unveränderter öffentlicher IP-Adresse wird nun trotzdem eine Statusmeldung im Log ausgegeben, statt dass der Check kommentarlos bleibt. (e89ac15)
    • logrotate: Fehler durch unsichere Permissions am logs-Verzeichnis behoben – logrotate läuft nun zuverlässig ohne Berechtigungsprobleme. (44dde46)

    Dokumentation

    • Update-Anleitung hinzugefügt: Neue Seite docs/update.md beschreibt, wie der Container aktualisiert wird, inkl. Image-Tags, Config-Update-Mechanismus und häufige Fragen. Die .env.example wurde um fehlende XAseco-Healthcheck-Variablen ergänzt. (32a09ba)
    • README: IP-Watcher wurde in die Dokumentationsübersicht der Hauptdoku aufgenommen. (931c62e)

    Release

    • Docker Image Tag in docker-compose.yml und Versionsverweis in docs/update.md auf 1.3.2 aktualisiert. (2382546)

    Alle Commits (seit 1.3.1)

    Hash Beschreibung
    2382546 Release: Docker Image Version 1.3.2 gepusht
    e89ac15 fix(ip-watcher): IP-Prüfung bei unveränderter IP im Log ausgeben
    32a09ba docs: Update-Anleitung hinzugefügt, .env.example um fehlende XAseco-Healthcheck-Variablen ergänzt
    931c62e docs: IP-Watcher in Dokumentationsübersicht der README ergänzt
    44dde46 fix: logrotate-Fehler durch unsichere Permissions am logs-Verzeichnis beheben
    Downloads
  • v1.3.1 14c47bbdd7

    v1.3.1
    Build & Push Docker Image / build-and-push (push) Successful in 4m6s
    Stable

    scriptos released this 2026-03-26 20:27:44 +00:00 | 19 commits to master since this release

    Release Notes – v1.3.1

    Docker Image: git.techniverse.net/scriptos/trackmania-server:1.3.1


    Neuerungen

    IP-Watcher – Automatischer Neustart bei IP-Wechsel

    Dynamische öffentliche IP-Adressen führten bisher dazu, dass der Trackmania-Server nach einem ISP-seitigem IP-Wechsel unter der veralteten Adresse beim Nadeo-Masterserver registriert blieb und damit für Spieler nicht mehr erreichbar war.

    Mit diesem Release wird ein neuer Service tmserver-ip-watcher mitgeliefert, der die öffentliche IP des Hosts in regelmäßigen Abständen überwacht. Ändert sich die IP, wird der tmserver-Container automatisch neu gestartet, sodass er sich mit der neuen IP beim Masterserver neu registriert.

    Konfiguration:

    Variable Beschreibung Standard
    IP_WATCHER_INTERVAL Prüfintervall in Sekunden 300 (5 Minuten)

    Der Dienst lässt sich bei Bedarf in der docker-compose.yml auskommentieren.

    Hinweis: Der IP-Watcher benötigt Zugriff auf den Docker-Socket (/var/run/docker.sock). Weitere Informationen: docs/ip-watcher.md


    CI/CD – Gitea Action für automatischen Docker-Build und Registry-Push

    Das Repository enthält ab sofort eine Gitea-Action-Pipeline, die bei einem Push automatisch das Docker-Image baut und in die Container-Registry (git.techniverse.net) pusht. Manuelle Build- und Push-Schritte entfallen damit im regulären Release-Prozess.


    Commits in diesem Release

    Hash Typ Beschreibung
    5601b14 release Release: Docker Image Version 1.3.1 gepusht
    d779618 ci Gitea Action für automatischen Docker-Build und Registry-Push hinzugefügt
    7bf847d feat IP-Watcher – automatischer Neustart bei IP-Wechsel

    Upgrade-Hinweise

    • Die docker-compose.yml wurde auf das neue Image-Tag 1.3.1 aktualisiert.
    • Wer das vollständige Stack via docker compose betreibt, erhält den ip-watcher-Dienst automatisch mit. Kein weiteres Zutun notwendig.
    • Beim Upgrade eines bestehenden Setups ist kein Datenbankschema-Update erforderlich.
    Downloads
  • v1.3.0 af44a273fa

    v1.3.0 Stable

    scriptos released this 2026-03-23 22:16:48 +00:00 | 26 commits to master since this release

    Release Notes – Trackmania Server Docker v1.3.0

    Datum: 23. März 2026
    Docker Image: git.techniverse.net/scriptos/trackmania-server:1.3.0


    Neue Features

    • Map-Shuffle beim Containerstart – Über die neue Umgebungsvariable SHUFFLE_MAPLIST kann die Mapliste bei jedem Containerstart zufällig gemischt werden. (12a8e0f)
    • XAseco-Healthcheck – Automatische Überwachung von XAseco mit automatischem Neustart bei Absturz. (7710a03)
    • Log-Rotation – Log-Rotation für Apache-, PHP- und XAseco-Logs eingerichtet, damit Logdateien nicht unbegrenzt wachsen. (cbb918d)
    • Graceful Shutdown – Signal-Handler für sauberes Herunterfahren aller Dienste im Container implementiert. (7eb2b6f)
    • Startup-Zusammenfassung – Am Ende des Startscripts wird eine übersichtliche Zusammenfassung mit Servername und weiteren Details angezeigt. (d7be0b3, 6cb5f78, e453ab6)

    Bugfixes

    • TS3-Konfiguration – Die TeamSpeak3-Konfiguration wird bei einem Update nicht mehr überschrieben. (ca6c0fa)
    • Signal-Handler dash-kompatibel – Fix für die Signal-Behandlung (SIGTERM → TERM), damit der Handler auch unter dash korrekt funktioniert. (4ec6011)

    Sonstiges

    • Dokumentation – Sauber formatiert und überarbeitet. (8b61571)
    • Docker Image Version – Tag in docker-compose.yml und Dokumentation auf 1.3.0 aktualisiert. (e60cc08)

    Alle Commits

    Commit Beschreibung Datum
    e60cc08 Release: Docker Image Version 1.3.0 gepusht 23.03.2026
    e453ab6 Startup-Zusammenfassung: HOST_IP-Variable entfernt, Platzhalter beibehalten 23.03.2026
    6cb5f78 Startup-Zusammenfassung: Servername aus Config lesen, Host-IP ermitteln 23.03.2026
    4ec6011 Fix: Signal-Handler dash-kompatibel (SIGTERM → TERM) 23.03.2026
    8b61571 Doku sauber formatiert 23.03.2026
    d7be0b3 Startup-Zusammenfassung am Ende des Startscripts hinzugefügt 23.03.2026
    7eb2b6f Graceful Shutdown: Signal-Handler für sauberes Herunterfahren aller Dienste 23.03.2026
    cbb918d Log-Rotation für Apache-, PHP- und XAseco-Logs eingerichtet 23.03.2026
    7710a03 XAseco-Healthcheck: Automatische Überwachung und Neustart bei Absturz 23.03.2026
    12a8e0f feat: Map-Shuffle beim Containerstart (SHUFFLE_MAPLIST) 23.03.2026
    ca6c0fa fix: TS3-Konfiguration wird bei Update nicht mehr überschrieben 23.03.2026
    Downloads
  • v1.2.2 77ac9cc37a

    scriptos released this 2026-03-23 08:52:25 +00:00 | 38 commits to master since this release

    ⚠️ Sicherheitshinweis: AdminServ-Konfigurationspasswort

    Betroffene Versionen

    Alle Versionen vor diesem Release.

    Problem

    Die AdminServ-Konfigurationsseite (http://<host-ip>/config) war mit dem Standard-Passwort-Hash aus dem AdminServ-GitHub-Repository geschützt (0b28a5799a32c687dad2c5183718ceac). Dieser Hash ist öffentlich einsehbar und ermöglicht bei Servern, die über das Internet erreichbar sind, den Zugriff auf die /config-Seite. Dort können Server-Einträge hinzugefügt, geändert oder gelöscht werden.

    Die reguläre Server-Verwaltung (Login als SuperAdmin/Admin/User) ist davon nicht betroffen – diese Passwörter werden individuell über die .env-Datei gesetzt.

    Fix

    Ab diesem Release wird der Standard-Hash automatisch beim Container-Start durch einen zufällig generierten MD5-Hash ersetzt – sowohl bei neuen als auch bei bestehenden Installationen. Nach dem Update auf diese Version genügt ein Neustart des Containers:

    docker compose up -d
    

    Workaround (falls kein Update möglich)

    Falls du nicht sofort auf die neue Version aktualisieren kannst, ersetze den Hash manuell:

    Option 1 – Hash manuell ersetzen:

    # Zufälligen Hash generieren und einsetzen
    NEW_HASH=$(head -c 32 /dev/urandom | md5sum | cut -d' ' -f1)
    sed -i "s|const PASSWORD = '0b28a5799a32c687dad2c5183718ceac';|const PASSWORD = '${NEW_HASH}';|" ./data/controlpanel/config/adminserv.cfg.php
    

    Option 2 – Zugriff auf /config per .htaccess blockieren:

    cat > ./data/controlpanel/config/.htaccess <<'EOF'
    <Files "*.php">
        Require local
    </Files>
    EOF
    

    Empfehlung: Generell sollte die AdminServ-Oberfläche (Port 80) nicht ungeschützt im Internet erreichbar sein. Nutze nach Möglichkeit einen Reverse-Proxy mit Authentifizierung oder beschränke den Zugriff auf vertrauenswürdige IP-Adressen.

    Downloads
  • v1.2.1 59826b2e75

    v1.2.1 Stable

    scriptos released this 2026-03-22 22:42:45 +00:00 | 43 commits to master since this release

    Downloads
  • v1.2.0 bf3b7858ee

    v1.2.0 Stable

    scriptos released this 2026-03-22 20:50:36 +00:00 | 46 commits to master since this release

    Downloads
  • v1.1.1 b7a909392e

    v1.1.1 Stable

    scriptos released this 2026-03-22 11:27:44 +00:00 | 55 commits to master since this release

    Downloads
  • v1.1.0 5ccba54e84

    v1.1.0 Stable

    scriptos released this 2026-03-22 00:57:13 +00:00 | 59 commits to master since this release

    Downloads