Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
admin:services:ludo.chapril.org [2025/03/23 07:50] – ↷ Nom de la page changé de admin:services:luanti.chapril.org à admin:services:ludo.chapril.org duck | admin:services:ludo.chapril.org [2025/03/29 08:55] (Version actuelle) – [Service ludo.chapril.org] ortograf pitchum |
---|
====== Service luanti.chapril.org ====== | ====== Service ludo.chapril.org ====== |
| |
<note important>Le service est en cours de refonte et n'est plus accessible pour le moment. | <note important>Le service est en cours de refonte et n'est plus accessible pour le moment. |
La documentation est aussi en cours de remaniement.</note> | La documentation est aussi en cours de remaniement.</note> |
| |
Minetest, initialement basé sur le jeu non libre Minecraft, a évolué et permet non seuleument des modification mais de créer des jeux à part entière. Maintenant le moteur de jeu se nomme Luanti et le jeu Minetest a évolué dans plusieurs projets qui ont pris des directions différentes: Minetest/MTG qui est le jeu original mais ne recoit qu'une maintenance minimale, Mineclonia qui prend le relay et Voxelibre qui veut rester proche mais tout en s'autorisant des innovations. | Minetest, initialement inspiré par le jeu non libre Minecraft, a évolué et permet non seulement des modifications mais de créer des jeux à part entière. Le moteur de jeu est maintenant un projet séparé qui se nomme Luanti et les jeux font appel à Luanti pour fonctionner. Minetest à son tour a évolué dans plusieurs projets qui ont pris des directions différentes: |
| * Minetest/MTG qui est le jeu original mais ne reçoit qu'une maintenance minimale |
| * VoxeLibre qui veut rester proche de Minecraft mais tout en s'autorisant des innovations |
| * Mineclonia qui est un fork de VoxeLibre lorsqu'il s'appelait MineClone2 et se concentre sur la stabilité |
| |
Les instances existantes au sein du Chapril sont : | Les instances existantes au sein du Chapril sont : |
* [[admin:services:luanti.chapril.org:voxelibre|VoxeLibre]] - Un clone de l'univers de Minecraft | * [[admin:services:ludo.chapril.org:voxelibre|VoxeLibre]] - Un clone de l'univers de Minecraft |
* [[admin:services:luanti.chapril.org:asuna|Asuna]] - Monde beau et coloré | * [[admin:services:ludo.chapril.org:asuna|Asuna]] - Monde beau et coloré |
| |
| |
Créons l'espace pour les données des différents jeux (on utilise /srv au Chapril, ce qui simplifie les sauvegardes): | Créons l'espace pour les données des différents jeux (on utilise /srv au Chapril, ce qui simplifie les sauvegardes): |
<code bash> | <code bash> |
mkdir -p /srv/minetest.chapril.org/{instances,mods} | mkdir -p /srv/ludo.chapril.org/{instances,mods} |
</code> | </code> |
| |
Nous avons besoin de créer un utilisateur pour lancer le service: | Nous avons besoin de créer un utilisateur pour lancer le service: |
<code bash> | <code bash> |
adduser --disabled-password --system --home /srv/minetest.chapril.org/home --gecos "Minetest dedicated server" --ingroup games --force-badname Debian-minetest | adduser --disabled-password --system --home /srv/ludo.chapril.org/home --gecos "Minetest dedicated server" --ingroup games --force-badname Debian-minetest |
</code> | </code> |
| |
ProtectSystem=strict | ProtectSystem=strict |
PrivateDevices=yes | PrivateDevices=yes |
ReadWritePaths=/srv/minetest.chapril.org/instances/%i | ReadWritePaths=/srv/ludo.chapril.org/instances/%i |
Environment= | Environment= |
Environment=MINETEST_USER_PATH=/srv/minetest.chapril.org/instances/%i | Environment=MINETEST_USER_PATH=/srv/ludo.chapril.org/instances/%i |
Environment=MINETEST_MOD_PATH=/srv/minetest.chapril.org/mods | Environment=MINETEST_MOD_PATH=/srv/ludo.chapril.org/mods |
Environment=LUANTI_GAMEID=instancegame | Environment=LUANTI_GAMEID=instancegame |
</code> | </code> |
* un fichier de configuration ''/etc/luanti/<port>-<jeu>.conf'' | * un fichier de configuration ''/etc/luanti/<port>-<jeu>.conf'' |
* 3 bases de données Postgresql nommées ''luanti-world-<jeu>'', ''luanti-users-<jeu>'' et ''luanti-mods-<jeu>'' | * 3 bases de données Postgresql nommées ''luanti-world-<jeu>'', ''luanti-users-<jeu>'' et ''luanti-mods-<jeu>'' |
* un sous-dossier dédié pour les données du jeu qui ne sont pas dans les bases de données dans ''/srv/minetest.chapril.org/instances/<port>-<jeu>/'', qui contient a son tour: | * un sous-dossier dédié pour les données du jeu qui ne sont pas dans les bases de données dans ''/srv/ludo.chapril.org/instances/<port>-<jeu>/'', qui contient a son tour: |
* ''games/instancegame'' qui contient le code du jeu | * ''games/instancegame'' qui contient le code du jeu |
* ''mod_data'' qui est inutilisé car tout est dans la base de donnée ''luanti-mods-<jeu>'' mais le jeu recrée le répertoire malgré tout | * ''mod_data'' qui est inutilisé car tout est dans la base de donnée ''luanti-mods-<jeu>'' mais le jeu recrée le répertoire malgré tout |
On crée les répertoires pour l'instance et on donne les droits d'écriture au service dans certains répertoires: | On crée les répertoires pour l'instance et on donne les droits d'écriture au service dans certains répertoires: |
<code bash> | <code bash> |
mkdir -p /srv/minetest.chapril.org/instances/<port>-<jeu>/data/games | mkdir -p /srv/ludo.chapril.org/instances/<port>-<jeu>/data/games |
mkdir -p /srv/minetest.chapril.org/instances/<port>-<jeu>/data/worlds/world | mkdir -p /srv/ludo.chapril.org/instances/<port>-<jeu>/data/worlds/world |
chown Debian-minetest: /srv/minetest.chapril.org/instances/<port>-<jeu> | chown Debian-minetest: /srv/ludo.chapril.org/instances/<port>-<jeu> |
chown Debian-minetest: /srv/minetest.chapril.org/instances/<port>-<jeu>/data/worlds/world | chown Debian-minetest: /srv/ludo.chapril.org/instances/<port>-<jeu>/data/worlds/world |
</code> | </code> |
| |
On va sur le site [[https://content.luanti.org/packages/?type=game|ContentDB de Luanti]] qui contient la liste des jeux disponibles, on va sur la page de description du jeu, puis on clique sur le lien intitulé ''Source'' pour aller chercher le code du jeu. Sur le nouveau site il nous faut trouver le lien avec le dépôt git que l'on nommera //<git-url>//, puis on installera le jeu ainsi: | On va sur le site [[https://content.luanti.org/packages/?type=game|ContentDB de Luanti]] qui contient la liste des jeux disponibles, on va sur la page de description du jeu, puis on clique sur le lien intitulé ''Source'' pour aller chercher le code du jeu. Sur le nouveau site il nous faut trouver le lien avec le dépôt git que l'on nommera //<git-url>//, puis on installera le jeu ainsi: |
<code bash> | <code bash> |
cd /srv/minetest.chapril.org/instances/<port>-<jeu>/data/games | cd /srv/ludo.chapril.org/instances/<port>-<jeu>/data/games |
git clone <git-url> instancegame | git clone <git-url> instancegame |
cd instancegame | cd instancegame |
//<git-version>// est la version du jeu a installer. Vous pouvez lister les versions disponibles avec ''git tag -ln''. | //<git-version>// est la version du jeu a installer. Vous pouvez lister les versions disponibles avec ''git tag -ln''. |
| |
On va ensuite créer la configuration du monde ''/srv/minetest.chapril.org/instances/<port>-<jeu>/worlds/world/world.mt'' (en remplacant les valeurs, avec <db-password> le mot de passe pour la base de donnée que l'on trouvera dans le fichier ''/etc/luanti/secrets'' et <map-generator> qui est le nom du générateur de carte qui dépend des possibilités du jeu et du choix des animateurs): | On va ensuite créer la configuration du monde ''/srv/ludo.chapril.org/instances/<port>-<jeu>/worlds/world/world.mt'' (en remplacant les valeurs, avec <db-password> le mot de passe pour la base de donnée que l'on trouvera dans le fichier ''/etc/luanti/secrets'' et <map-generator> qui est le nom du générateur de carte qui dépend des possibilités du jeu et du choix des animateurs): |
<code ini> | <code ini> |
world_name = world | world_name = world |
On va sur le site [[https://content.luanti.org/packages/?type=mod|ContentDB de Luanti]] qui contient la liste des mods disponibles, on va sur la page de description du mod, on vérifie qu'il est compatible avec les jeux avec lesquels on aimerait l'utiliser, puis on clique sur le lien intitulé ''Source'' pour aller chercher le code du mod. Sur le nouveau site il nous faut trouver le lien avec le dépôt git que l'on nommera //<git-url>//, puis on installera le jeu ainsi: | On va sur le site [[https://content.luanti.org/packages/?type=mod|ContentDB de Luanti]] qui contient la liste des mods disponibles, on va sur la page de description du mod, on vérifie qu'il est compatible avec les jeux avec lesquels on aimerait l'utiliser, puis on clique sur le lien intitulé ''Source'' pour aller chercher le code du mod. Sur le nouveau site il nous faut trouver le lien avec le dépôt git que l'on nommera //<git-url>//, puis on installera le jeu ainsi: |
<code bash> | <code bash> |
cd /srv/minetest.chapril.org/instances/<port>-<jeu>/mods | cd /srv/ludo.chapril.org/instances/<port>-<jeu>/mods |
git clone <git-url> | git clone <git-url> |
</code> | </code> |
systemctl restart luanti-server@<port>-<jeu>.service | systemctl restart luanti-server@<port>-<jeu>.service |
</code> | </code> |
Puis on modifie le fichier ''/srv/minetest.chapril.org/instances/<port>-<jeu>/worlds/world/world.mt'' ou l'on trouvera des entrées du type ''load_mod_<mod-name> = false''; on changera ''false'' en ''true'' pour le mod et ses dépendances, puis on relance a nouveau le service pour prendre en compte l'activation: | Puis on modifie le fichier ''/srv/ludo.chapril.org/instances/<port>-<jeu>/worlds/world/world.mt'' ou l'on trouvera des entrées du type ''load_mod_<mod-name> = false''; on changera ''false'' en ''true'' pour le mod et ses dépendances, puis on relance a nouveau le service pour prendre en compte l'activation: |
<code bash> | <code bash> |
systemctl restart luanti-server@<port>-<jeu>.service | systemctl restart luanti-server@<port>-<jeu>.service |
* [[https://content.luanti.org/packages/rstcxk/filterpp/|filter]]: pour que les utilisateurs restent polis | * [[https://content.luanti.org/packages/rstcxk/filterpp/|filter]]: pour que les utilisateurs restent polis |
* [[https://content.luanti.org/packages/kaeza/xban2/|eXtended Ban 2]]: pour gérer les bannissement quand des utilisateurs ne respectent pas les CGU | * [[https://content.luanti.org/packages/kaeza/xban2/|eXtended Ban 2]]: pour gérer les bannissement quand des utilisateurs ne respectent pas les CGU |
* [[https://content.luanti.org/packages/ShadowNinja/areas/|Areas]] (avec le mod optionnel [[https://content.luanti.org/packages/Sokomine/markers/|Markers]]): pour permettre de protéger des zones d'utilisateurs malintentionnés | * [[https://content.luanti.org/packages/ShadowNinja/areas/|Areas]]: pour permettre de protéger des zones contre le vandalisme |
| * [[https://content.luanti.org/packages/Sokomine/markers/|Markers]]: utilise des marqueurs pour simplifier le définition de la zone et fourni un bloc spécial pour administrer sa zone, ce qui évite d'avoir à utiliser la console |
| * [[https://forge.april.org/Chapril/luanti_mod_markers_easy_recipes|markers_easy_recipes]]: simplifie la recette pour créer des marqueurs pour qu'il soit possible de protéger ses créations dès le début |
| |
<WRAP center round todo 60%> | <WRAP center round todo 60%> |
La liste des mots interdits pour le mod filter est vides. L'ancienne doc sur ce wiki faisait mention d'une lite de mots dans le fichier ''mod_storage/words.txt'' mais elle n'a pas été trouvée. Il faudra donc chercher une liste de mot et l'installer au bon format pour que le mod puisse l'utiliser. | La liste des mots interdits pour le mod filter est vides. L'ancienne doc sur ce wiki faisait mention d'une lite de mots dans le fichier ''mod_storage/words.txt'' mais elle n'a pas été trouvée. Il faudra donc chercher une liste de mot et l'installer au bon format pour que le mod puisse l'utiliser. |
</WRAP> | |
<WRAP center round todo 60%> | |
Le mod ''Areas'' n'a pas encore été testé mais semble prometteur. La configuration de la zone est un peu complexe en ligne de commande et c'est pour cela que le mod ''Markers'' a été ajouter pour simplifier la configuration de façon plus visuelle | |
</WRAP> | </WRAP> |
| |
* stopper le servive: ''systemctl stop luanti-server@<port>-<jeu>.service'' | * stopper le servive: ''systemctl stop luanti-server@<port>-<jeu>.service'' |
* supprimer les bases de données ''luanti-world-<jeu>'', ''luanti-users-<jeu>'' et ''luanti-mods-<jeu>'' | * supprimer les bases de données ''luanti-world-<jeu>'', ''luanti-users-<jeu>'' et ''luanti-mods-<jeu>'' |
* supprimer tous les fichiers dans ''/srv/minetest.chapril.org/instances/<port>-<jeu>/data/worlds/world'' **sauf** ''world.mt'' | * supprimer tous les fichiers dans ''/srv/ludo.chapril.org/instances/<port>-<jeu>/data/worlds/world'' **sauf** ''world.mt'' |
| |
===== Supervision ===== | ===== Supervision ===== |
Plusieurs sondes ont été mises en place pour surveiller le service Minetest. Les scripts personnalisés sont situés dans le répertoire ''/srv/minetest.chapril.org/tools/monitoring/'', un lien dans ''/usr/local/lib/nagios/plugins/'' permet de les rendre accessibles à nagios. | Plusieurs sondes ont été mises en place pour surveiller le service Minetest. Les scripts personnalisés sont situés dans le répertoire ''/srv/ludo.chapril.org/tools/monitoring/'', un lien dans ''/usr/local/lib/nagios/plugins/'' permet de les rendre accessibles à nagios. |
| |
* le script ''check_minetestchaprilorg_updateGames'' vérifie que les jeux installés soient à jour | * le script ''check_minetestchaprilorg_updateGames'' vérifie que les jeux installés soient à jour |
La sauvegarde globale des VMs permet de sauvegarder les données clés à savoir : | La sauvegarde globale des VMs permet de sauvegarder les données clés à savoir : |
* le contenu du répertoire ''/etc/'' | * le contenu du répertoire ''/etc/'' |
* le contenu du répertoire ''/srv/minetest.chapril.org/'' | * le contenu du répertoire ''/srv/ludo.chapril.org/'' |
* les bases de données postgresql | * les bases de données postgresql |
| |