Outils pour utilisateurs

Outils du site


admin:services:minetest

Ceci est une ancienne révision du document !


Service minetest.chapril.org

Minetest n'est pas vraiment un jeu en soi, même s'il y a déjà de quoi s'amuser de base, mais plutôt un moteur de jeux.

L'un de ces jeux est un clone de Minecraft et s'appelle Mineclone2.

Installation façon Chapril

VM

Création de la VM ludo avec la procédure Création d'une machine virtuelle « bling ».

Service de base minetest

Nous installons minetest à partir des dépôts Debian stable, et parfois si on a besoin d'une version plus récente de Minetest on passe sur les dépôts Debian backports ou carrément sur les dépôts Debian testing.

apt install minetest-server

Pour des raisons qui sont propres au Chapril, nous préférons modifier le dossier home du compte Debian-minetest. Par défaut ce dossier est /var/games/minetest-server, mais nous l'avons modifié pour qu'il soit dans /srv/minetest.chapril.org/home.

systemctl stop minetest-server.service
usermod -m -d /srv/minetest.chapril.org/home
systemctl start minetest-server.service

Organisation des sous-services

Dès lors, minetest est déjà joignable sur le port 30000. Mais il ne s'agit là que d'un simple bac à sable, sans mobs ni aucune règle quelconque, permettant essentiellement de tester le moteur de jeu. Mais ce serveur peut maintenant faire tourner un ou plusieurs autres jeux disponibles par exemple sur Minetest ContentDB.

En prévision des futurs jeux que nous aurions envie déployer sur ce serveur, nous avons décidé de l'organisation suivante. Pour chaque jeu :

  • un port TCP dédié (on n'a pas le choix, chaque jeu doit écouter sur un port séparé)
  • un fichier de configuration systemd dont le nom commence par le numéro de port
  • un sous-dossier dédié pour le code du jeu, dans /srv/minetest.chapril.org/instances/ (paramètre map-dir dans la configuration systemd)
  • 2 bases de données Postgresql nommées minetest-users-xxx et minetest-world-xxx (une troisième base nommée minetest-auth est créée une seule fois et est utilisée pour tous les jeux)

Par exemple, le jeu Mineclone2 est déployé ainsi :

  • port TCP dédié : 30009 (donc joignable sur minetest.chapril.org:30009)
  • configuration systemd dans /etc/minetest/30009-mineclone2.conf (le service s'appelle alors automatiquement minetest-server@30009-mineclone2.service)
  • le code de Mineclone2 est copié dans /srv/minetest.chapril.org/instances/30009-mineclone2
  • 2 bases de données postgresql : minetest-users-mineclone2 et minetest-world-mineclone2
On a créé le fichier /etc/minetest/minetest.conf.template pour servir de base à l'installation d'une nouvelle instance.

Le fichier /etc/minetest/minetest.conf.example reprend les configurations possibles en les expliquant

Instance de tests

Cette instance ne servira qu'à tester des mods ou des configuration de serveurs. On utilise le service par défaut de minetest créé lors de l'installation.

  • port TCP dédié : 30000
  • configuration systemd dans /etc/minetest.conf (on utilise le service minetest-server.service)
  • instance située dans /srv/minetest.chapril.org/instances/30000-test
  • 2 bases de données postgresql : minetest-users-test et minetest-world-test

Le mod whitelist a été installé et activé pour cette instance. Afin d'y accéder, il faut demander à un administrateur de l'instance d'être ajouté en indiquant son nom de joueur ou joueuse. En retour, vous recevrez le mot de passe à utiliser initialement. Une fois connecté-e, modifiez votre mot de passe via le menu de jeu (accessible avec la touche échap du clavier).

Cette instance ne doit être active que pendant les phases de travail sur minetest.

Procédures diverses

Effacer un monde

L'idée est de supprimer toutes les données pour recommencer une partie de zéro. Ou nettoyer un serveur de test :)

  • supprimer la base de données pour pgsql_connection (données du monde)
  • supprimer la DB pour pgsql_player_connection (données des joueurs)
  • (quand minetest-server 5.7 sera dans les dépôts) supprimer la DB pour pgsql_mod_storage_connection (données des mods)
  • supprimer le fichier instance_xxx/env_meta.txt (reset temps, localisation des joueureuses…)
  • supprimer le fichier instance_xxx/map_meta.txt (pour génération d'une nouvelle seed et création d'une nouvelle map et en cas de changement de mode de génération de map)

Plus d'informations : https://wiki.minetest.net/Worlds

Installer un mod

Ressource : https://wiki.minetest.net/Installing_Mods/fr

  1. Récupérer le lien de téléchargement de l'archive du mod
  2. Télécharger l'archive avec wget et l'extraire dans /srv/minetest.chapril.org/home/.minetest/mods
  3. Renommer le répertoire avec le nom technique du mod (voir la page contentdb pour trouver le nom technique)
  4. Activer le mod dans le fichier world.mt avec la directive load_mod_<nom technique> = true
  5. Changer la propriété des fichiers ajoutés pour Debian-minetest:minetest
admin/services/minetest.1688300822.txt.gz · Dernière modification : 2023/07/02 12:27 de obitanz