This docker image of XASECO is using Remi Collet's PHP 5.6.40 source with security backports from newer PHP versions. Additionally it contains several PHP patches that, among some other small fixes and adjustments, also allows the compilation with OpenSSL 3.0 and above. Of course, the whole image is also based on the Alpine docker base image to reduce the attack surface and container size.
To do the same with docker compose
:
services:
trackmania:
image: evoesports/trackmaniaforever:latest
restart: unless-stopped
ports:
- 2350:2350/udp
- 2350:2350/tcp
- 3450:3450/udp
- 3450:3450/tcp
environment:
TMF_SERVER_NAME: "Yet another server"
TMF_MASTERSERVER_LOGIN: "YOUR_MASTERSERVER_LOGIN"
TMF_MASTERSERVER_PASSWORD: "YOUR_MASTERSERVER_PASSWORD"
TMF_SYSTEM_XMLRPC_ALLOWREMOTE: "True"
TMF_SYSTEM_PACKMASK: "united"
TMF_SYSTEM_FORCE_IP_ADDRESS: "YOUR_EXTERNAL_IPV4:PORT"
volumes:
- "trackmania:/server/GameData"
xaseco:
image: evoesports/xaseco:latest
restart: unless-stopped
depends_on:
trackmania:
condition: service_healthy
restart: true
environment:
XASECO_TMSERVER_LOGIN: "SuperAdmin"
XASECO_TMSERVER_PASSWORD: "SuperAdmin"
XASECO_TMSERVER_IP: "trackmania"
XASECO_TMSERVER_PORT: "5000"
XASECO_MYSQL_SERVER: "YOUR_MYSQL_ADDRESS"
XASECO_MYSQL_LOGIN: "xaseco"
XASECO_MYSQL_PASSWORD: "YOUR_MYSQL_PASSWORD"
XASECO_MYSQL_DATABASE: "xaseco"
XASECO_DEDIMANIA_LOGIN: "YOUR_MASTERSERVER_LOGIN"
XASECO_DEDIMANIA_PASSWORD: "YOUR_MASTERSERVER_PASSWORD"
XASECO_DEDIMANIA_NATION: "OTH" # remember to set this to the actual country
XASECO_MASTERADMINS: "login1,login2,login3"
volumes:
- "xaseco:/xaseco"
- "trackmania:/server/GameData"
volumes:
xaseco: null
trackmania: null
Since XASECO is saving it's config files in the root directory, the whole XASECO directory needs to be exposed as volume, which means the whole installation of XASECO is stored in the volume, not just the config files. Every time the container gets restarted, the entrypoint extracts XASECO fresh into the volume, but leaves config files and plugins untouched. That also means that all files that are not plugins or config files get overwritten on every container restart, which also means that deleting and/or modifying crucial XASECO files have no effect.
Environment Variable | Description | Default Value | Required |
---|---|---|---|
XASECO_MODE |
The game version the server is running. Can be TMF or TMN. | TMF | ✔ |
XASECO_TMSERVER_LOGIN |
The SuperAdmin user configured in the TM server. | SuperAdmin | ✔ |
XASECO_TMSERVER_PASSWORD |
The SuperAdmin password configured in the TM server. | SuperAdmin | ✔ |
XASECO_TMSERVER_IP |
The IP address of the TM server. | ✔ | |
XASECO_TMSERVER_PORT |
The port of the TM server XMLRPC. | ✔ | |
XASECO_MYSQL_SERVER |
The mysql server IP address. | ✔ | |
XASECO_MYSQL_PASSWORD |
The mysql server password. | ✔ | |
XASECO_MYSQL_DATABASE |
The mysql database name. | ✔ | |
XASECO_DEDIMANIA_LOGIN |
The Nadeo masterserver login also used on the server. | ✔ | |
XASECO_DEDIMANIA_PASSWORD |
The Nadeo masterserver password also used on the server. Communitycode is not working anymore. | ✔ | |
XASECO_DEDIMANIA_NATION |
The ISO 3166-1 alpha-3 code of the country the server is listed under. (e.g. DEU) The default value stands for "Other countries". | OTH | ✔ |
XASECO_MASTERADMINS |
Comma seperated list of masteradmins. (e.g. login1,login2,login3) | ✔ |
If you have any questions, issues, bugs or suggestions, don't hesitate and open an Issue! You can also join our Discord for questions.
You may also help with development by creating a pull request.