Files
tmserver-docker/docs/xaseco.md

4.7 KiB

XAseco

XAseco ist ein Server-Controller für TrackMania Nations Forever. Er verwaltet lokale Rekorde, Dedimania-Weltrekorde, Karma/Votes, eine Track-Jukebox und vieles mehr direkt im Spielchat.

Im Container wird die modifizierte Version XAseco 1.16 verwendet, die für PHP 7.x angepasst wurde (Patches von Bueddel, Xymph, undef.de und reaby).

Funktionsweise

XAseco verbindet sich über XML-RPC mit dem TrackMania-Server und reagiert auf Spielereignisse (neue Rekorde, Spieler-Connects, Chat-Befehle usw.). Die Daten werden in einer eigenen MySQL-Datenbank gespeichert.

Konfiguration

Die Konfiguration erfolgt ausschließlich über Umgebungsvariablen in der .env-Datei. Beim ersten Start (leeres XAseco-Volume) werden die Werte automatisch in die XML-Konfigurationsdateien eingetragen.

Erforderliche Variablen

Variable Beschreibung Standard
XASECO_MASTERADMIN_LOGIN Dein Spieler-Login (MasterAdmin mit allen Rechten) (muss gesetzt werden)
XASECO_DB_PASSWORD Passwort für die XAseco-Datenbank (muss gesetzt werden)

Optionale Variablen

Variable Beschreibung Standard
XASECO_ENABLED XAseco aktivieren/deaktivieren true
XASECO_DB_HOST Hostname des Datenbankservers mariadb
XASECO_DB_NAME Name der XAseco-Datenbank xaseco
XASECO_DB_USER Datenbank-Benutzername xaseco
XASECO_DEDIMANIA_NATION Dedimania-Nation (IOC-Code, z.B. DEU, AUT, CHE) DEU

Automatisch übernommene Variablen

Diese Werte werden aus der bestehenden Server-Konfiguration übernommen und müssen nicht separat gesetzt werden:

Quelle Verwendung in XAseco
SERVER_SA_PASSWORD SuperAdmin-Passwort für die XML-RPC-Verbindung
SERVER_XMLRPC_PORT XML-RPC-Port für die Verbindung zum TM-Server
SERVER_LOGIN Dedimania Server-Login
SERVER_LOGIN_PASSWORD Dedimania Server-Passwort

Datenbank

XAseco verwendet eine eigene Datenbank im selben MariaDB-Container. Die Datenbank und der Benutzer werden beim ersten Start des MariaDB-Containers automatisch erstellt (über ein Init-Script).

Das Datenbankschema (drei Tabellen-Dateien) wird beim ersten Start des tmserver-Containers automatisch importiert.

Manueller Zugriff

Falls nötig, kann die XAseco-Datenbank über den MariaDB-Root-Zugang administriert werden:

docker exec -it tmserver-mariadb mysql -u root -p

Nachträgliche Installation (bestehende MariaDB)

Das Init-Script (assets/db/init-xaseco-db.sh) wird von MariaDB nur beim allerersten Start (leeres data/mariadb/-Volume) ausgeführt. Wenn der MariaDB-Container bereits Daten enthält (z.B. weil er zuvor ohne XAseco lief), muss die Datenbank einmalig manuell erstellt werden:

docker exec -it tmserver-mariadb mysql -u root -p -e "
  CREATE DATABASE IF NOT EXISTS xaseco CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  CREATE USER IF NOT EXISTS 'xaseco'@'%' IDENTIFIED BY 'DEIN_XASECO_DB_PASSWORT';
  GRANT ALL PRIVILEGES ON xaseco.* TO 'xaseco'@'%';
  FLUSH PRIVILEGES;"

Ersetze DEIN_XASECO_DB_PASSWORT durch den Wert von XASECO_DB_PASSWORD aus der .env-Datei. Das Tabellen-Schema wird anschließend beim nächsten Container-Start automatisch importiert, sofern das XAseco-Volume noch leer ist.

Admin-System

XAseco kennt drei Berechtigungsstufen:

Stufe Beschreibung
MasterAdmin Volle Kontrolle (wird über XASECO_MASTERADMIN_LOGIN gesetzt)
Admin Erweiterte Befehle (ebenfalls über XASECO_MASTERADMIN_LOGIN gesetzt)
Operator Eingeschränkte Moderationsbefehle

Weitere Admins/Operatoren können nach dem ersten Start manuell in data/xaseco/adminops.xml eingetragen werden.

Persistente Daten

Alle XAseco-Daten werden im Volume ./data/xaseco/ gespeichert:

  • Konfigurationsdateien (config.xml, localdatabase.xml, dedimania.xml, ...)
  • Log-Datei (aseco.log)
  • Admin-/Operator-Listen (adminops.xml)

Deaktivieren

XAseco kann über die .env-Datei deaktiviert werden:

XASECO_ENABLED=false

Der TrackMania-Server läuft dann ohne Server-Controller.

Logs

Die XAseco-Logdatei befindet sich unter:

./data/xaseco/aseco.log

Bei Problemen ist dies die erste Anlaufstelle für die Fehlersuche.

Wichtige Chat-Befehle

Befehl Beschreibung
/helpadmin Admin-Befehle anzeigen
/recs Lokale Rekorde anzeigen
/dedirecs Dedimania-Rekorde anzeigen
/jukebox Track-Jukebox öffnen
/stats Spieler-Statistiken anzeigen
/admin help Alle Admin-Befehle