====== 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. Les instances existantes au sein du Chapril sont : * [[admin:services:minetest:test|Test]] - l'instance pour tester les mods, configurations, etc. * [[admin:services:minetest:mineclone2|Mineclone2]] - un jeu basé sur Minetest moddé pour être très proche du jeu Minecraft. ===== Installation façon Chapril ===== ==== VM ==== Création de la VM [[admin:machines_virtuelles:ludo]] avec la procédure [[admin:procedures:creation_machine_virtuelle|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 [[https://content.minetest.net/packages/?type=game|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) * un fichier de configuration du monde ''world.mt'' situé dans le répertoire de l'instance 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 ===== 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. * le script ''check_minetestchaprilorg_updateGames'' vérifie que les jeux installés soient à jour * le script ''check_minetestchaprilorg_updateMods'' vérifie que les mods installés soient à jour * le script ''check_minetestchaprilorg_services'' vérifie que les services des instances soient UP et que les ports UDP correspondant soient en écoute * on vérifie que le service ''postgresql@13-main.service'' soit actif ===== Sauvegarde ===== 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 ''/srv/minetest.chapril.org/'' * les bases de données postgresql ===== 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 ''minetest-world-xxx'' (données du monde) * supprimer la base de données ''minetest-users-xxx'''(données des joueurs) * (quand minetest-server 5.7 sera dans les dépôts) supprimer la base de données ''minetest-mods-xxx''' (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) * supprimer le fichier instance_xxx/awards.txt (les hauts-faits des joueuses et joueurs) * supprimer le fichier instance_xxx/doc.mt (??) * supprimer le fichier instance_xxx/settlements.txt (??) Plus d'informations : https://wiki.minetest.net/Worlds ==== Installer un mod ==== - Récupérer le lien de téléchargement de l'archive du mod - Télécharger l'archive avec wget et l'extraire dans ''/srv/minetest.chapril.org/home/.minetest/mods'' - Renommer le répertoire avec le nom technique du mod (voir la page contentdb pour trouver le nom technique) - Activer le mod dans le fichier ''world.mt'' avec la directive ''load_mod_ = true'' - Changer la propriété des fichiers ajoutés pour Debian-minetest:minetest Plus d'informations : https://wiki.minetest.net/Installing_Mods/fr ===== Procédures de modération ===== ==== Gestion des privilèges ==== Pour comprendre les privilèges : https://wiki.minetest.net/Privileges/fr Pour comprendre les commandes serveur : https://wiki.minetest.net/Server_commands/fr Donner un privilège /grant Révoquer un privilège /revoke Exclure un compte (ie le déconnecter du serveur, la personne peut revenir) /kick [reason] ==== Bannissement ==== La documentation est disponible ici : https://content.minetest.net/packages/kaeza/xban2/ Bannir un compte définitivement /xban Bannir un compte temporairement : /xtempban Le temps peut être exprimé en secondes, minutes, heures, jours, semaines, mois, années et les valeurs sont combinables, par exemple "//1Y3M3D7h//" pour bannir 1 an, 3 mois, 3 jours et 7 heures. Lister l'historique de bannissement pour un compte /xban_record Dé-bannir un compte /xunban ==== Filtre automatique du chat ==== La documentation est disponible ici : https://github.com/minetest-mods/filter Active le filtre automatique /filtre enable Ajouter un mot interdit /filtre add Lister les mots interdits /filtre list Les mots interdits sont stockés dans le "//mod_storage//", actuellement un simple fichier. Le mod est implémenté avec sa propre politique à savoir : * 1ère occurrence : avertissement * 2e et 3e occurrences : mis en muet pendant 1 minute * au-delà, expulsion du compte du serveur Modifier le code pour correspondre à la politique envisagée et pour changer les messages en français. ==== Antigrief ==== La documentation est disponible ici : https://notabug.org/tenplus1/protector Le mod permet aux joueuses et joueurs de créer des blocs servant à protéger des zones. Les comptes ayant les droits admins sur le serveur peuvent passer outre ces protections. Le mod est configurable. Tester le mod et : * voir s'il faut ajuster la configuration * voir s'il faut activer ou désactiver des options spécifiques à ce mod * décrire la configuration en vigueur.