Un serveur Framinetest / Framinetest Édu en local : c'est bien sûr possible !


#1

Bonjour à toutes et tous,

Le titre est un brin racoleur. Il s’agit simplement de vous proposer une solution toute prête pour faire tourner en local un serveur Minetest sous Windows avec les mêmes réglages que ceux mis en place sur les 2 serveurs Framinetest.
Et quand je dis “simplement”, c’est qu’il suffit des étapes suivantes pour que ça fonctionne :

  • je télécharge
  • je décompresse
  • je double clique sur le lanceur

Dans le détail.
Je télécharge : Répliques serveurs Framinetest
Je décompresse (avec 7zip )
Je double clique sur le lanceur :

Framinetest_Edu_Replica permet de lancer une réplique (même réglages, mêmes mods, même pack de textures) de Framinetest Edu.
Framinetest_Replica permet de lancer une réplique de … Framinetest.
MinetestPortable permet de lancer le client.

Attention, réplique ne veut pas dire clône !
Les mondes seront créés en local sur votre serveur. Ils seront donc complètement différents de ceux accessibles sur framinetest.org. Mais ils seront générés avec les mêmes réglages et les mêmes mods/packs de texture.

Euh, mais quel est l’intérêt ?
Pour quelqu’un qui a accès à framinetest.org : aucun
Pour quelqu’un qui a déjà appris à paramétrer un serveur Minetest, installer des mods, etc : aucun
Pour quelqu’un qui veut mettre en place rapidement un serveur comparable à framinetest.org en local : gagner du temps
Pour quelqu’un qui veut voir (et donc apprendre) comment un serveur est paramétré : gagner du temps en se basant sur un exemple fonctionnel.

En gros, c’est comme un plat préparé qu’on passe chercher chez le traiteur : on peut faire la même chose soi-même mais c’est plus long. Et là, en prime, vous avez la liste des ingrédients et la façon dont on les utilise.


Comment je m’en sers ?
Ben, en double cliquant sur le lanceur voulu. Exemple avec le lanceur de Framinetest_Replica :


C’est lui qui va se charger de lancer Minetest en mode serveur - et oui, même la version Windows dispose d’un “presque” vrai mode serveur - et de vous fournir cette horrible fenêtre qui fait peur avec tous ses hiéroglyphes.
Les deux lignes sous le logo Minetest nous indiquent que c’est bien le monde Framinetest_replica qui a été lancé et que notre serveur écoute sur le port 30000 (30001 pour Framinetest_Edu).

Et voilà, c’est fait, votre serveur local tout bien paramétré fonctionne.
Pour le vérifier, vous pouvez lancer MinetestPortable et choisir le serveur favori localhost:30000


Et c’est tout ?
Ah ben non, quand même pas ! C’est pas parce que vous êtes passé récupérer un plat préparé chez le traiteur qu’il ne faut pas mettre la table et les couverts.
Autrement dit, il vous faut encore récupérer l’adresse IP du PC sur lequel vous venez de lancer le serveur pour la donner aux personnes qui voudront s’y connecter
Plusieurs méthodes pour cela :

Voilà, avec un peu de chance, le pare-feu Windows n’est pas activé (cas dans mon académie) ou vous avez eu un message vous permettant de le débloquer. Sinon ça se complique et chaque cas sera différent.


#2

Un peu de technique
Quelques explications sur le fonctionnement du “serveur” Windows décrit plus haut.
Il est basé sur les 2 versions portables de Minetest (32 et 64 bits) et lance la version la plus adéquate pour le système.
L’application Minetest, en elle-même, est dans le dossier App\Minetest. Seuls les fichiers de configuration sont séparés dans Data\settings.
Tout le reste c’est la glue utilisée par le projet Framakey pour portabiliser des applications.
Les autres différences par rapport au Minetest d’origine : les touches du clavier sont préconfigurées pour un clavier AZERTY et la police DroidSansFallbackFull qui pose des problèmes d’accents est remplacée par Liberation Sans.


Les lanceurs :
Framinetest_Replica => lance Minetest avec l’option --server (sans interface graphique), le fichier de configuration framinetest_replica.conf et le monde Framinetest_Replica.
Framinetest_Edu_Replica => idem avec le fichier de configuration framinetest_edu_replica.conf et le monde Framinetest_Edu_Replica
MinetestPortable => lance Minetest de manière classique avec l’interface graphique pour utilisation en mode client / serveur solo / serveur multijoueur (c’est le mode décrit là)


Les fichiers de configuration :
Data\settings\minetest.conf
C’est le fichier de configuration classique du client/serveur version interface graphique. Il est entièrement commenté et les valeurs modifiées se trouvent à la fin du fichier.
Data\settings\framinetest_replica.conf
C’est le fichier de configuration du serveur réplique de Framinetest. Il ne contient que la configuration du serveur.
Data\settings\framinetest_edu_replica.conf
Idem mais pour la version Framinetest Edu.
PortableHistory.ini
N’a rien à voir avec Minetest. c’est un fichier utilisé par la “glue” Framakey pour mettre à jour les fichiers de configuration en fonction de l’emplacement de l’application. Ah oui, j’ai peut-être oublié de vous dire que le tout est portable : je lance sur un poste à partir de ma clé USB (m’enfin vaut mieux un disque externe) avec la lettre E puis je l’arrête, je vais sur un autre poste où ma clé est en F => pas de souci les lanceurs vont s’occuper des modifs à faire dans les fichiers.


Les mods et textures :
Sont respectivement dans App\Minetest\mods et App\Minetest\textures.
Par défaut les mods ajoutés ne sont pas activés => http://wiki.minetest.net/Installing_Mods/fr


Les “mondes” :
Chacun est dans son dossier, bien au chaud.
On retrouve la liste des joueurs dans le sous-dossier player.
Les autorisations et mots de passe sont stockés dans le fichier auth.txt.
Les options du monde (dont les mods activés) sont dans world.mt.
Les options de génération de la carte sont dans map_meta.txt.
Et la carte (le fichier qui grossit le plus) est stockée dans le fichier map.sqlite.


Serveur, vous avez dit “serveur” ?
Petit aparté sur la notion de serveur.
L’interface graphique de Minetest permet de lancer un serveur (solo ou multijoueur) mais tous les mondes auront les mêmes paramètres (notamment au niveau des privs accordés par défaut) donc si vous voulez avoir des mondes avec des paramètres différents, il vous faudra changer ceux-ci à chaque fois. En gros, ça va bien pour une utilisation basique mais pas plus.
Minetest lancé avec le paramètre --server permet de distinguer les fichiers de configuration de plusieurs “mondes” et peut même être lancé plusieurs fois (instances multiples). C’est mieux que l’interface graphique mais reste toujours le même problème : si on ferme la session de l’utilisateur, on arrête le ou les serveurs.
Et enfin, il y a le vrai serveur qui tourne en arrière-plan, qui est capable de se relancer seul en cas de plantage, etc …
Il est théoriquement possible de faire tourner un tel truc sous Windows en définissant un service qui lance le mode serveur. Mais, soyons honnête, ça reste bancal.
Mais rassurez-vous, une fois que vous aurez fait vos première armes avec le plat préparé indiqué ci-dessus, vous pourrez passer à l’installation d’un vrai serveur sous GNU/Linux avec un ou plusieurs vrais serveurs lancés via des daemons. Plus d’infos là => http://framacloud.org/cultiver-son-jardin/installation-de-minetest/


#3

Super travail (qui confirme que je n’avais pas compris ta demande initiale !) qui sera très utile aux collègues :sunglasses:

@bientôt
Sangokuss


#4

Bonjour,
Super je commence à comprendre … par contre je dezip je n’ai pas la version edu ? est ce normal ?

Merci d’avance


#5

Oui, puisque l’on a fait le choix de ne conserver que la version “classique” sur framinetest.org à la rentrée, le paquet “serveur” a suivi la même démarche.


#6

En m’appuyant sur les informations de culture de Framinetest, j’ai amorcé un projet pour créer des containers #Docker prêt à l’emploie : https://framagit.org/guyou/framinetest-docker

Suivant les goûts, on pourra activer un container sur une base #Ubuntu ou #Debian. Je suis aussi en train de travailler sur une base alpine mais ça accroche un peu.

Je suis aussi à la recherche du projet qui contient les données Framinetest à plat / en clair. J’ai trouvé au moins un bug que je fixe à la volée dans les Dockerfile. Si ça n’existe pas, on peut peut-être créer un framinetest-data ?