====== VoxelLibre ====== {{ :admin:services:minetest:mineclone2-logo.png?400|}} [[https://git.minetest.land/MineClone2/MineClone2|Mineclone2]] est clone de Minecraft. Le jeu a changé de nom en mai 2024 : VoxeLibre. Cf. [[https://git.minetest.land/VoxeLibre/VoxeLibre/issues/4235]] C'est un jeu sous licence GPLv3, développé à partir du le moteur de jeu [[https://www.minetest.net/|Minetest]], sous licence LGPL 2.1. Avant d'installer cette instance, il est nécessaire d'installer [[admin:services:minetest|minetest]]. ====== Installation ====== ===== Configuration du service ===== * port TCP dédié : 30009 (on rejoint le serveur sur minetest.chapril.org:30009) * configuration systemd dans ''/etc/minetest/30009-mineclone2.conf'' (on utilise le service ''minetest-server@30009-mineclone.service'') * instance située dans ''/srv/minetest.chapril.org/instances/30009-mineclone2'' * 2 bases de données postgresql : ''minetest-users-mineclone2'' et ''minetest-world-mineclone2'' ===== Jeu ===== Le jeu est disponible sur [[https://content.luanti.org/packages/Wuzzy/mineclone2/|contentDB]]. On l'installe via git dans le répertoire ''/srv/minetest.chapril.org/home/.minetest/games/''. cd /srv/minetest.chapril.org/home/.minetest/games/ git clone https://git.minetest.land/MineClone2/MineClone2.git mv MineClone2 mineclone2 && cd mineclone2 git checkout -b chapril-ludo Modification de la route git suite au changement de nom : cd /srv/minetest.chapril.org/home/.minetest/games/mineclone2 git remote set-url "origin" https://git.minetest.land/VoxeLibre/VoxeLibre/ La création de la branche ''chapril-ludo'' servira pour la mise à jour du jeu, voir la section dédiée plus bas. ===== Mods ===== Un travail de recherche et de comparaison a été fait et est consultable sur https://wiki.april.org/w/Chapril:services:minetest:revue_mods ==== Pour la gestion du serveur ==== === eXtended Ban 2 === Ce mod étend les possibilités d'exclusions du serveur, facilite les actions de modération et enregistre les actions pour une meilleure communication entre les membres de la modération. Plus d'informations sur la page [[https://content.minetest.net/packages/kaeza/xban2/|contentDB]]. cd /srv/minetest.chapril.org/home/.minetest/mods git clone https://github.com/minetest-mods/xban2.git === Filter === Ce mod permet plusieurs actions automatiques en réponse à une tenue de propos injurieux sur le chat. Plus d'informations sur la page [[https://content.minetest.net/packages/sofar/filter/|contentDB]]. cd /srv/minetest.chapril.org/home/.minetest/mods git clone https://github.com/minetest-mods/filter.git On définit une liste des mots soumis à action automatique : Ce mod filtera automatique chaque message contenant ces mots. La politique est : - 3 avertissements - mute temporaire de 5 minutes (le joueur ou la joueuse ne peut plus poster de messages dans le chat) - 3 avertissements - mute temporaire de 1h L'équipe de modération ayant accès à l'historique des actions pourra prendre des mesures d'exclusion temporaire ou définitive du joueur ou de la joueuse si === Mod Antigrief === Le principe d'un mod antigrief est de permettre aux joueuses et joueurs de protéger leurs création contre un potentiel vendalisme. Le jeu Mineclone2 propose dans son installation le mod "ProtectorAera". ==== Pour le gameplay du serveur ==== Pour le moment, on se contente du jeu originel, on pourra ajouter des mods en fonction des demandes. ===== Configuration du monde ===== Il s'agit du fichier ''world.mt'' placé dans le répertoire de l'instance : gameid = mineclone2 backend = postgresql pgsql_connection = host=127.0.0.1 port=5432 user=minetest password=common-outrank-cruelly dbname=minetest-world-mineclone2 auth_backend = postgresql pgsql_auth_connection = host=127.0.0.1 port=5432 user=minetest password=common-outrank-cruelly dbname=minetest-auth player_backend = postgresql pgsql_player_connection = host=127.0.0.1 port=5432 user=minetest password=common-outrank-cruelly dbname=minetest-users-mineclone2 # Not supported yet, we have to wait for minetest 5.7.0 #mod_storage_backend = postgresql #pgsql_mod_storage_connection = host=127.0.0.1 port=5432 user=minetest password=common-outrank-cruelly dbname=minetest-mod-storage-mineclone2 mod_storage_backend = sqlite3 load_mod_xban2 = true load_mod_filter = true load_mod_whitelist = false On crée les bases de données postgres : su - postgres psql CREATE DATABASE "minetest-users-mineclone2" WITH OWNER minetest; CREATE DATABASE "minetest-world-mineclone2" WITH OWNER minetest; ===== Vérification par principe ===== chown -R Debian-minetest:minetest /srv/minetest.chapril.org/home/.minetest chown -R Debian-minetest:games /srv/minetest.chapril.org/instances/30009-mineclone2 ===== Démarrage du service ===== systemctl start minetest-server@30009-mineclone2.service ===== Création du rapport d'activité ===== Le script pour créer le rapport d'activité est situé dans : ''/srv/minetest.chapril.org/tools/rapport_activite/rapport_activite_mineclone2.sh''. Il est exécuté chaque mois par une tâche cron dont une copie se trouve dans le même répertoire. Les logs sont situés dans le répertoire ''/srv/minetest.chapril.org/exploitation''. Le script ''/srv/minetest.chapril.org/tools/rapport_activite/update_redmine_script.sh'' permet de nourrir le ticket "Tâche récurrente" n°6220 pour diffuser publiquement les statistiques de l'instance. ====== Maintenance ====== ===== Mise à jour du jeu ===== On suit les releases du jeu, à chaque release un tag est créé sur le dépôt git, on peut suivre ça sur la [[https://git.minetest.land/VoxeLibre/VoxeLibre/tags|forge de Minetest]]. Il peut arriver qu'une version plus récente de Mineclone2 exige également une mise à jour de Minetest. Puisque on utilise les paquets Debian, ce n'est pas toujours une chose possible, donc il faut prévoir la possibilité de revenir en arrière si besoin. Pour permettre cela, nous utilisons la branche //git// locale nommée ''chapril-ludo'' et on créé localement un //tag// sur la révision //git// actuelle avant chaque tentative de mise à jour. Le projet étant toujours en développement sur la branche //master//, on suit les releases via les tags. Quand une nouvelle release sort, on va sur le dépôt gitea pour récupérer le commit de la release. On s'en servira pour la mise à jour de notre instance. cd /srv/minetest.chapril.org/home/.minetest/games/mineclone2/ git tag chapril-ok-$(date +%F) # pour un éventuel retour en arrière git fetch --all git merge systemctl restart minetest-server@30009-mineclone2.service En cas de conflit pendant le merge, résoudre manuellement les différentes en se basant au maximum sur la release puis : git add git commit -m "fix merge with commit from 0.83.1 tag" On peut ensuite redémarrer le service. Il faut maintenant tester un minimum. Si jamais un bug bloquant survient, on peut revenir à la version précédente grâce au ''tag'' qu'on avait créé. La procédure décrite çi-après est "sale", mais elle fonctionne. Si quelqu'un connait une façon plus propre de procéder, ça m'intéresse :) cd /srv/minetest.chapril.org/home/.minetest/games/mineclone2/ # si jamais vous étiez parti ailleurs :) git tag | grep chapril # pour retrouver votre tag, par exemple "chapril-ok-2023-01-15" ici git checkout chapril-ok-2023-01-15 # on se retrouve alors dans un état temporaire "HEAD detached at chapril-ok-2023-01-15" git branch -m chapril-ludo chapril-ludo-broken # on met de côté l'ancienne branche git switch -c chapril-ludo # on recréé la branche git branch -D chapril-ludo-broken # on jette l'ancienne systemctl restart minetest-server@30009-mineclone2.service ===== Mise à jour des mods =====