Minetest-serveur...

... Créer, adapter et gérer un serveur !

Préambule : techniquement, pourquoi lui et pas MineC*** ?

Pour résumé, Minetest se distingue de son compère par :

--> Fiche mémo « comparaison Minetest - Minecraft ».

Concrètement, il faut savoir :

Ces quelques généralités vous permettent plus aisément de comprendre mon choix quant à cette plateforme plus qu'à d'autres plus connues.

--> Fiche mémo « Les données privées enregistrées par un serveur Minetest ».

L'hébergement du serveur, une question sensible...

La question de l'hébergement est sans aucun doute celle sur laquelle il est intéressant de s'attarder.

Solution n°1 : si comme moi vous souhaitez avoir une main complète sur votre serveur et que vous accordez une importance cruciale au respect de votre vie privée, alors oubliez toute forme d'hébergement externe. Aucun est sûr car vous n'avez pas la machine physiquement sous les yeux. Ceci est une évidence, mais tout le monde l'oubli ! Mais problème : il faut une expertise technique et de l'expérience... bref, une solution ultime réservée aux rares initiés.

Solution n°2 : acheter un serveur en ligne chez un hébergeur. Un peu coûteuse, cette solution est plus confortable techniquement.

Solution n°3 : votre DSI s'en occupe pour vous !

Précision sur l'ouverture des ports : le port dédié à Minetest habituellement est le port 30000 en udp (mais vous pouvez choisir un autre port comme 30001)

--> Fiche mémo « créer un serveur local en 4 clics ! ».

Passons au concret : choisir la configuration matérielle !

Nul besoin d'une très grosse configuration pour un serveur Minetest dédié uniquement à cette fonction pour moins de 5 joueurs, mais un minimum est tout de même nécessaire ! Si officiellement 512 Mo de Ram suffisent, mon expérience tend à me démontrer qu'1 Go est vivement recommandé pour tous ceux qui souhaitent jouer avec une classe ou des amis !

D'un point de vue performance, voici deux exemples concrets parmi mes configurations serveurs :

Configuration n°1 : base d'un RaspberryPi-4

Configuration n°2 : un serveur pour plusieurs classes

Sachez que par défaut, le facteur limitant sera la rapidité de votre disque dur (d'où l'intérêt du SSD), suivi du CPU dont la charge peut monter rapidement si un grand nombre de joueurs sont connectés. Pensez donc à monitorer votre serveur pour en surveiller l'état de ses performances (j'y reviendrai plus bas). Enfin, il faut avoir dans un coin de votre tête qu'un joueur utilisera environ 150Mo de RAM.

Quel Système d'exploitation pour le serveur ?

Pour l'essentiel des administrateurs réseaux, « serveur » rime avec « Gnu/Linux ». Et avis pris auprès des développeurs de Minetest, cet adage est confirmé !

Pour information : rappelons aux néophytes que 90% des serveurs mondiaux fonctionnent sur ce système qui a fait ses preuves.

D'expérience (et sans doute est-ce un défaut de formation), je vous recommande de fuir les autres solutions, à minima pour des raisons de sécurité.Les experts réseaux me comprendrons !

Parmi les innombrables distributions Gnu/Linux, lorsqu'il s'agit de monter un serveur, deux sortent du lot : Debian et RedHat. Personnellement, j'ai une faiblesse pour la première (et ses dérivés) pour sa stabilité incomparable, sa sécurité et sa flexibilité. Par conséquent, je peux recommandé 2 distributions pour les avoir utilisé pour des serveurs Minetest :

L'installation et la première mise en route de Minetest :

Debian Buster :

Une installation de base est suffisante (via apt-get) sachant que vous aurez par la suite une main complète pour configurer la bête :

~ # apt-get install minetest

Par défaut, à l'heure où j'écris ces quelques lignes, c'est la version 0.4.17.1 qui est installée. En passant par les backports (via modification de votre /etc/apt/sources.list), on passe à la version 5.1.0 (indispensable car les clients sont désormais uniquement disponibles en v5.1.0 et ne sont pas rétrocompatibles vers 0.4.17.1).

Lorsque l'installation est terminée, je vous recommande vivement de prendre le temps d'explorer la logique de l'arborescence du dossier ".minetest" se trouvant dans /home du serveur. Par défaut ce dossier est assez vide, mais vous pouvez le compléter et le personnaliser avec des mods, textures, worlds... en respectant l'organisation suivante :

Pour résumé à l'extrême, concrètement :

De manière à mieux isoler l’application, nous allons créer un utilisateur dédié à Minetest, du même nom que le logiciel :

Cette commande crée l’utilisateur minetest ainsi qu’un groupe du même nom. Il lui assigne comme répertoire personnel /home/minetest, que minetest utilisera pour stocker ses données (monde, mods, textures, données utilisateurs…).
Nous allons aussi créer quelques dossiers qui nous serviront par la suite pour installer les mods et les textures :

Voici un exemple de fichier minetest.conf : cliquez pour le lire.

Une fois l'installation et la personnalisation finalisée, pour démarrer le serveur une première fois et vérifier les erreurs éventuelles, il suffit d'appliquer la commande suivante :

Une fois votre configuration validée, c'est justement dans le fichier minetest.service de systemd /etc/systemd/system/minetest.service qu'on détermine le lien vers le fichier minetest.conf à utiliser.

Exemple de contenu de fichier minetest.service :

Je ne détaille pas ici le contenu de ce fichier car si vous lisez ces lignes, vous connaissez normalement déjà (et puis il s'agit d'expressions suffisamment explicites).

Vous l'aurez compris, c'est dans le dossier ./mods qu'on dépose les mods à activer dans le jeu. Mais attention, plus vous ajouter de mods, plus le serveur nécessitera de ressources.

Pour des raisons triviales de sécurité, un logiciel à destination des utilisateurs ne doit jamais être démarré et utilisé en mode "root" (càd administrateur). S'il s'agit d'une précaution élémentaire chez les linuxiens, il en va tout autre dans le monde Windows... (Ok, TROLL !!! LOL)
Bref, ici un utilisateur dédié au service à lancer, avec des privilèges réduits au maximum est absolument nécessaire.

Fedora Server 31

sur les grands principes, la démarche est la même aux détails suivants :

Pour en savoir plus, je vous recommande d'aller jeter un oeil au Wiki dédié.

Quelques conseils élémentaires pour la configuration :

Qui dit serveur, dit sécurité ! Par conséquent, les principes élémentaires de sécurité ci-dessous devront être respectés à la lettre :

Avec mon fichier minetest.conf, je publie automatiquement (et uniquement lorsqu'il est démarré) sur la liste des serveurs publics mon serveur personnel. Ce qui donne, du point de vue de l'utilisateur :


Copie d'écran du client utilisé par les élèves :
le serveur apparaît dans la liste des serveurs publics

Et le client, je le trouve où ?

Pour l'installation du client, il est nécessaire de distinguer deux cas selon le système d'exploitation :

Vous pouvez également consulter la page dédiée que je donne aux élèves afin qu'ils puissent télécharger et démarrer le jeu :