Outils pour utilisateurs

Outils du site


admin:services:minetest.chapril.org

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin:services:minetest.chapril.org [2025/02/25 14:17] – [Service de base Luanti] duckadmin:services:minetest.chapril.org [2025/03/13 10:03] (Version actuelle) fhenry2
Ligne 1: Ligne 1:
-/!\ Le service est en court de refonte et n'est plus accessible pour le moment; la documentation est aussi en cours de remaniements+<note important>Le service est en court de refonte et n'est plus accessible pour le moment
 +La documentation est aussi en cours de remaniements.</note>
  
 ====== Service minetest.chapril.org ====== ====== Service minetest.chapril.org ======
Ligne 80: Ligne 81:
 ==== Organisation des sous-services ==== ==== 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 à sablesans //mobs// ni aucune règle quelconquepermettant essentiellement de tester le moteur de jeu+Chaque jeu est en fait un sous-service indépendant mais ils partagent quelques éléments en commun: 
-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]].+  * la base de donnée des utilisateurs crée précédemmentqui sert a leur authentification 
 +  * des extensions au jeudes `mods`, mais chaque jeu utilise uniquement une sélection parmi les mods disponibles
  
-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 :+Pour chaque jeu nous avons décidé de l'organisation suivante (avec //<port>// le numéro de port réseau et //<jeu>// le nom du jeu en minuscule, à remplacer par les bonnes valeurs) : 
 +  * un port UDP dédié (chaque jeu écoute sur un port séparé) 
 +  * un port TCP dédié (chaque jeu fourni des métriques d'activités sur un port séparé), pour simplifier on utilise le même numéro que le port UDP 
 +  * 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>'' 
 +  * 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: 
 +    * ''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 
 +    * ''worlds/world/'' qui contient les données du monde qui ne sont pas dans les bases de données ainsi que le fichier de configuration du monde ''world.mt''
  
-  * un port TCP dédié (on n'a pas le choix, chaque jeu doit écouter sur un port séparé) +On crée le fichier de configuration ''/etc/luanti/<port>-<jeu>.conf'' (en remplacant les valeurs, et avec <jeu-desc> le nom du jeu avec sa capitalisation usuelle): 
-  * un fichier de configuration systemd dont le nom commence par le numéro de port +<code ini> 
-  * un sous-dossier dédié pour le code du jeu, dans ''/srv/minetest.chapril.org/instances/'' (paramètre ''map-dir'' dans la configuration systemd+server_name = Chapril <jeu-desc> 
-  * 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) +server_description = Instance Luanti / <jeu-desc> du Chapril 
-  * un fichier de configuration du monde ''world.mt'' situé dans le répertoire de l'instance+motd = Bienvenu à tous !
  
-<note tip>On a créé le fichier ''/etc/minetest/minetest.conf.template'' pour servir de base à l'installation d'une nouvelle instance+server_url = https://www.chapril.org/cgu.html 
-Le fichier ''/etc/minetest/minetest.conf.example'' reprend les configurations possibles en les expliquant</note>+server_announce = false 
 +ipv6_server = false 
 +port = <port> 
 +prometheus_listener_address = 127.0.0.1:<port>
  
-===== Supervision ===== +# superadmin 
-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.+name Duck 
 +</code>
  
-  * le script ''check_minetestchaprilorg_updateGames'' vérifie que les jeux installés soient à jour +On crée les bases de données: 
-  * le script ''check_minetestchaprilorg_updateMods'' vérifie que les mods installés soient à jour +<code bash> 
-  * le script ''check_minetestchaprilorg_services'' vérifie que les services des instances soient UP et que les ports UDP correspondant soient en écoute +su - postgres 
-  * on vérifie que le service ''postgresql@13-main.service'' soit actif+createdb -O minetest luanti-world-<jeu> 
 +createdb -O minetest luanti-users-<jeu> 
 +createdb -O minetest luanti-mods-<jeu> 
 +</code>
  
-===== Sauvegarde ===== +On crée les répertoires pour l'instance et on donne les droits d'écriture au service dans certains répertoires: 
-La sauvegarde globale des VMs permet de sauvegarder les données clés à savoir : +<code bash> 
-  * le contenu du répertoire ''/etc/'' +mkdir -p /srv/minetest.chapril.org/instances/<port>-<jeu>/data/games 
-  * le contenu du répertoire ''/srv/minetest.chapril.org/'' +mkdir -p /srv/minetest.chapril.org/instances/<port>-<jeu>/data/worlds/world 
-  * les bases de données postgresql+chown Debian-minetest: /srv/minetest.chapril.org/instances/<port>-<jeu> 
 +chown Debian-minetest: /srv/minetest.chapril.org/instances/<port>-<jeu>/data/worlds/world 
 +</code>
  
-===== Procédures diverses ===== +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: 
-==== Effacer un monde ==== +<code bash> 
-L'idée est de supprimer toutes les données pour recommencer une partie de zéroOu nettoyer un serveur de test :)+cd /srv/minetest.chapril.org/instances/<port>-<jeu>/data/games 
 +git clone <git-url> instancegame 
 +cd instancegame 
 +git checkout <git-version> 
 +git submodule init 
 +git submodule update 
 +</code> 
 +//<git-version>// est la version du jeu a installer. Vous pouvez lister les versions disponibles avec ''git tag -ln''.
  
-  * supprimer la base de données ''minetest-world-xxx'' (données du monde+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): 
-  * supprimer la base de données ''minetest-users-xxx'''(données des joueurs) +<code ini> 
-  * (quand minetest-server 5.7 sera dans les dépôts) supprimer la base de données ''minetest-mods-xxx''' (données des mods) +world_name = world 
-  * supprimer le fichier instance_xxx/env_meta.txt (reset temps, localisation des joueureuses...) +gameid = instancegame
-  * 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+backend = postgresql 
 +pgsql_connection = host=127.0.0.1 port=5432 user=minetest password=<db-password> dbname=luanti-world-<jeu>
  
-==== Installer un mod ====+player_backend postgresql 
 +pgsql_player_connection host=127.0.0.1 port=5432 user=minetest password=<db-password> dbname=luanti-users-<jeu>
  
-  - Récupérer le lien de téléchargement de l'archive du mod +mod_storage_backend = postgresql 
-  - Télécharger l'archive avec wget et l'extraire dans ''/srv/minetest.chapril.org/home/.minetest/mods'' +pgsql_mod_storage_connection = host=127.0.0.1 port=5432 user=minetest password=<db-passworddbname=luanti-mods-<jeu>
-  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_<nom technique> = true'' +
-  Changer la propriété des fichiers ajoutés pour Debian-minetest:minetest+
  
-Plus d'informations : https://wiki.minetest.net/Installing_Mods/fr+auth_backend = postgresql 
 +pgsql_auth_connection = host=127.0.0.1 port=5432 user=minetest password=<db-password> dbname=luanti-shared-auth
  
-===== Procédures de modération ===== +mg_name <map-generator> 
-==== Gestion des privilèges ==== +creative_mode false 
-Pour comprendre les privilèges : https://wiki.minetest.net/Privileges/fr+enable_damage true 
 +enable_pvp false 
 +disable_fire false 
 +enable_tnt true
  
-Pour comprendre les commandes serveur : https://wiki.minetest.net/Server_commands/fr+load_mod_lib_chatcmdbuilder = true 
 +load_mod_whitelist = true 
 +load_mod_xban2 = true 
 +load_mod_filterpp_lib = true 
 +load_mod_warn = true 
 +load_mod_filterpp = true 
 +</code> 
 +Certains mods sont activé par défaut car utiles à la bonne gestion du serveur et leur utilité et installation est expliqué plus loin sur cette page. 
 + 
 +La configuration générale du jeu, celle du monde, ainsi que la liste des mods pourront donner lieu à des ajustements selon les jeux, les désirs des joueurs et les décisions des animateurs. 
 + 
 +On lance finalement le service: 
 +<code bash> 
 +systemctl start luanti-server@<port>-<jeu>.service 
 +</code> 
 + 
 +==== Installation des mods ==== 
 + 
 +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> 
 +cd /srv/minetest.chapril.org/instances/<port>-<jeu>/mods 
 +git clone <git-url> 
 +</code> 
 +Souvent les mods n'ont pas de version définie mais si c'est le cas on peut vérifier la liste des version (''git tag -ln'') puis la sélectionner (''git checkout <git-version>''). 
 + 
 +Attention, un mod peux avoir des dépendances listée sur sa page de description et dans ce cas il est nécessaire d'installer ces dépendances de la même facon. 
 + 
 +Ensuite il est nécessaire d'activer le mod et ses dépendances. Le nom d'un mod ne correspond pas forcément au nom du répertoire de l'installation. Le plus simple est tout simplement de relancer le service, ce qui va ajouter les bonnes entrée dans la configuration qu'il nous suffira d'activer. 
 + 
 +On relance le services: 
 +<code bash> 
 +systemctl restart luanti-server@<port>-<jeu>.service 
 +</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: 
 +<code bash> 
 +systemctl restart luanti-server@<port>-<jeu>.service 
 +</code> 
 + 
 +==== Mods installés par défaut ==== 
 + 
 +Certains mods seront installés et activés pour tous les jeux car ils sont importants pour la bonne gestion du services: 
 +  * [[https://content.luanti.org/packages/Zughy/whitelist/|Whitelist]]: pour limiter les utilisateurs autorisés à se connecter 
 +  * [[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/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 
 + 
 +<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. 
 +</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> 
 + 
 +===== Procédures diverses ===== 
 + 
 +==== Gestion administrateur générale ==== 
 + 
 +Pour comprendre les privilèges : https://docs.luanti.org/for-players/privileges/ 
 + 
 +Pour comprendre les commandes serveur : https://docs.luanti.org/for-players/server-commands/
  
 Donner un privilège Donner un privilège
Ligne 179: Ligne 263:
 </code> </code>
  
 +==== Effacer un monde ====
  
-==== Filtre automatique du chat ==== +L'idée est de supprimer toutes les données pour recommencer une partie de zéro. Ou nettoyer un serveur de test :)
-La documentation est disponible ici https://github.com/minetest-mods/filter+
  
-Active le filtre automatique +  * stopper le servive: ''systemctl stop luanti-server@<port>-<jeu>.service'' 
-<code bash+  * supprimer les bases de données ''luanti-world-<jeu>'', ''luanti-users-<jeu>'' et ''luanti-mods-<jeu>'' 
-/filtre enable +  * supprimer tous les fichiers dans ''/srv/minetest.chapril.org/instances/<port>-<jeu>/data/worlds/world'' **sauf** ''world.mt''
-</code>+
  
-Ajouter un mot interdit +===== Supervision ===== 
-<code bash> +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.
-/filtre add <insult> +
-</code>+
  
-Lister les mots interdits +  * le script ''check_minetestchaprilorg_updateGames'' vérifie que les jeux installés soient à jour 
-<code bash> +  * le script ''check_minetestchaprilorg_updateMods'' vérifie que les mods installés soient à jour 
-/filtre list +  * le script ''check_minetestchaprilorg_services'' vérifie que les services des instances soient UP et que les ports UDP correspondant soient en écoute 
-</code>+  * on vérifie que le service ''postgresql@13-main.service'' soit actif
  
-Les mots interdits sont stockés dans le "//mod_storage//", actuellement un simple fichier.+===== 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
  
-<WRAP center round info 60%> 
-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 
-</WRAP> 
- 
-<WRAP center round todo 60%> 
-Modifier le code pour correspondre à la politique envisagée et pour changer les messages en français. 
-</WRAP> 
- 
-==== 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. 
- 
-<WRAP center round todo 60%> 
-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. 
-</WRAP> 
admin/services/minetest.chapril.org.1740493040.txt.gz · Dernière modification : 2025/02/25 14:17 de duck