Outils pour utilisateurs

Outils du site


kb:linux:generalites:installer_serveur_trackmania_avec_controleur

Installer serveur Trackmania avec contrôleur

L'objectif est de monter de façon stable, un serveur Trackmania avec son controleur. Je vais prendre exemple de deux contrôleurs, ManiaControl et Pyplanet. Il ne faut en choisir qu'un seul !

L'ensemble des manipulations sont faites sous Debian 10 Buster.

Pour info, il vous faut obligatoirement une édition CLUB pour avoir un serveur.

Installation du serveur Trackmania

Pour commencer, créez un dossier ou seront stockés toutes les données de serveur :

# mkdir -p /opt/server1/server

Allez dans le dossier et téléchargez la dernière version de serveur :

# wget http://files.v04.maniaplanet.com/server/TrackmaniaServer_Latest.zip

Décompressez l'archive et supprimez l'archive

# unzip TrackmaniaServer_Latest.zip && rm TrackmaniaServer_Latest.zip

Copiez le fichier suivant :

# cp UserData/Config/dedicated_cfg.default.txt UserData/Config/dedicated_cfg.txt

et il va falloir impérativement le modifier. Premièrement, dans la catégorie authorization_levels, il faut remplacer les trois valeurs password. Mettez un mot de passe aléatoire.

Ensuite, il va falloir lui fournir les identifiants de la plateforme de Nadeo. Connectez-vous sur https://players.trackmania.com/ puis allez dans Manage , Dedicated Servers et cliquez sur Create a new Dedicated Server Account. Entrez un nom de serveur, cliquez sur Submit. Il devrait vous retourner un mot de passe.

Ce nom de serveur et ce mot de passe, il va falloir les mettre respectivement comme login et password de la section masterserver_account.

Si vous avez plusieurs serveurs sur la même machine, il faudra changer les options server_port et xmlrpc_port

Pour le reste, je vous laisse jeter un œil aux options si il y a en a qui vous intéressent.

Ensuite, copiez la configuration des cartes :

# cp UserData/Maps/MatchSettings/example.txt UserData/Maps/MatchSettings/tracklist.txt

Puis modifiez-le. Par défaut, il vous configure les 5 premières maps de la saison actuelle mais les fichiers de maps ne sont pas présentes dans votre serveur.

Je vous invite donc à aller sur https://trackmania.exchange/ et de trouver une map qui vous plait, et de la télécharger sur le serveur, et donc d'ajuster la configuration de votre fichier tracklist.txt

Maintenant on va créer un service systemd permettant de lancer un ou plusieurs serveurs Trackmania. Pour cela il faut créer le fichier suivant :

/etc/systemd/system/trackmania@.service
[Unit]
Description=Trackmania 2020 %i Server
After=syslog.target
After=network.target
 
[Service]
Type=simple
 
WorkingDirectory=/opt/%i/server
SyslogIdentifier=tm2020-%i
ExecStart=/opt/%i/server/TrackmaniaServer /title=Trackmania /game_Settings=Matchsettings/tracklist.txt /dedicated_cfg=dedicated_cfg.txt /nodaemon
Restart=always
 
[Install]
WantedBy=multi-user.target

et pour lancer votre serveur, faite :

# systemctl start trackmania@server1

Si vous avez un firewall, il vous faudra autoriser uniquement le port server_port configuré en TCP et UDP. Il n'est pas recommandé d'ouvrir le port XMLRPC.

Et pour finir, il va falloir l'ajouter dans le jeu. Dans votre CLUB (créez en un si vous en avez pas), cliquez sur le + puis Salon puis Utilisez votre serveur. Mettez un nom, et sélectionnez dans la liste le login de serveur que vous venez d'utiliser.

Et voila, vous devriez pouvoir vous connecter a votre serveur.

Installation du contrôleur ManiaControl

On va commencer par installer les packets nécessaires :

# apt install mariadb-server php-cli php-mysql php-curl php-xmlrpc php-zip php-mbstring php-xml

Ensuite, il faut créer la base de données :

# mysql -e "CREATE DATABASE mc1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

puis créer l'utilisateur :

# mysql -e "GRANT ALL PRIVILEGES ON mc1.* TO 'mc1'@'localhost' IDENTIFIED BY 'password';"

Ensuite on va créer le dossier ManiaControl pour le serveur 1 :

# mkdir /opt/server1/controller

Il faut ensuite télécharger la dernière version de Maniacontrol et l'extraire. Rendez-vous sur https://www.maniacontrol.com/download et récupérez le lien pour télécharger la dernière version beta. Entrez dans le dossier précédemment créé et tapez la commande suivante avec le bon lien et nom de fichier :

wget https://download.maniacontrol.com/beta/ManiaControl_beta_0-256.zip && unzip  ManiaControl_beta_0-256.zip && rm ManiaControl_beta_0-256.zip

Ensuite copiez le fichier de configuration d'exemple :

# cp configs/server.default.xml configs/server.xml

Ensuite, il faut modifier la configuration du contrôleur dans le fichier pyplanet/settings/base.py.

Parmi les options, il faut :

  • Dans la section server, remplacer le port par celui du XMLRPC
  • Dans la section server, remplacer le pass par le mot de passe du compte SuperAdmin
  • Dans la section database, remplacer les valeurs par celle que vous avez créé plus tot
  • Dans la section masteradmins, remplacer la valeur par celle de votre ID UPLAY. Il est affiché dans les logs du serveur quand vous vous y connectez.

Ensuite, on va créer le service systemd pour Maniacontrol :

/etc/systemd/system/maniacontrol@.service
[Unit]
Description=Maniacontrol %i Controller
After=syslog.target
After=network.target
After=trackmania@%i.service
 
[Service]
Type=simple
 
WorkingDirectory=/opt/%i/controller
SyslogIdentifier=mc-%i
ExecStart=php /opt/%i/controller/ManiaControl.php
Restart=always
 
[Install]
WantedBy=multi-user.target

Et pour finir, lancez Maniacontrol :

# systemctl start maniacontrol@mc1

Installation du contrôleur Pyplanet

Pour commencer on va installer les packets necessaires :

# apt install mariadb-server virtualenv python3-pip

Ensuite, il faut créer la base de données :

# mysql -e "CREATE DATABASE pyplanet1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

puis créer l'utilisateur :

# mysql -e "GRANT ALL PRIVILEGES ON pyplanet1.* TO 'pyplanet1'@'localhost' IDENTIFIED BY 'password';"

Ensuite on va créer le dossier de pyplanet pour le serveur 1 :

# mkdir /opt/server1/controller

Ensuite il faut aller dans ce dossier, et créer l'environnement dédié :

# virtualenv --python python3.7 ./env

Ensuite, et à chaque fois que vous voudrez modifier cet environnement, il faudra le charger en tapant :

# source ./env/bin/activate

Ensuite, il faut installer pyplanet :

(env) # pip install pyplanet --upgrade

Ensuite on crée le contrôleur :

(env) # pyplanet init_project pyp

Ensuite, il faut modifier la configuration du controleur dans le fichier controller/settings/base.py.

Parmi les options, il faut :

  • OWNERS : remplacer la valeur par celle de votre ID UPLAY. Il est affiché dans les logs du serveur quand vous vous y connectez.
  • DATABASES : Il faudra remplacer le NAME par le nom de la database, et dans les OPTIONS le nom d'utilisateur et le mot de passe.
  • DEDICATED : Ajuster le port pour le XMLRPC et le mot de passe du compte SuperAdmin
  • MAP_MATCHSETTINGS : y mettre la valeur tracklist.txt

Ensuite, on va créer le service systemd pour pyplanet :

/etc/systemd/system/pyplanet@.service
[Unit]
Description=PyPlanet %i Controller
After=syslog.target
After=network.target
After=trackmania@%i.service
 
 
[Service]
Type=simple
 
WorkingDirectory=/opt/%i/controller
SyslogIdentifier=pyplanet-%i
ExecStart=/opt/%i/controller/env/bin/python /opt/%i/controller/pyp/manage.py start
Restart=always
 
[Install]
WantedBy=multi-user.target

Et pour finir, lancer pyplanet :

# systemctl start pyplanet@server1
kb/linux/generalites/installer_serveur_trackmania_avec_controleur.txt · Dernière modification: 2020/12/15 20:59 de beu