admin:services:minetest.chapril.org
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
admin:services:minetest.chapril.org [2025/02/19 23:14] – [Service de base minetest] duck | admin: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> |
+ | La documentation est aussi en cours de remaniements.</ | ||
====== Service minetest.chapril.org ====== | ====== Service minetest.chapril.org ====== | ||
Ligne 16: | Ligne 17: | ||
- | ==== Service de base minetest | + | ==== Service de base Luanti |
- | Luanti a été packagé | + | Luanti a été empaqueté |
Si on clique sur le CI et dans l' | Si on clique sur le CI et dans l' | ||
Malheureusement le jeu minetest originel est une dépendance forte pour le moment et doit être installé même si nous n' | Malheureusement le jeu minetest originel est une dépendance forte pour le moment et doit être installé même si nous n' | ||
https:// | https:// | ||
- | On peut ensuite installer les paquets nécessaires, | + | On peut ensuite installer les paquets nécessaires, |
<code bash> | <code bash> | ||
cd debian/ | cd debian/ | ||
dpkg -i luanti-server_*.deb luanti-data_*.deb luanti-game-minetest_*.deb | dpkg -i luanti-server_*.deb luanti-data_*.deb luanti-game-minetest_*.deb | ||
apt -f install | apt -f install | ||
+ | </ | ||
+ | |||
+ | Créons l' | ||
+ | <code bash> | ||
+ | mkdir -p / | ||
</ | </ | ||
Ligne 36: | Ligne 42: | ||
</ | </ | ||
- | ZZZ---travail en cours--- | + | Nous avons besoin de créer un utilisateur pour lancer le service: |
+ | <code bash> | ||
+ | adduser | ||
+ | </ | ||
- | Pour des raisons qui sont propres | + | Dans le paquet de Luanti chaque instance est lancée avec un utilisateur dynamique; c'est bien pour la sécurité mais celui nous empêche de stoker les données dans /srv comme c'est l' |
+ | <code bash> | ||
+ | mkdir / | ||
+ | </ | ||
+ | Et créons | ||
+ | <code ini> | ||
+ | [Service] | ||
+ | DynamicUser=no | ||
+ | User=Debian-minetest | ||
+ | Group=games | ||
+ | SupplementaryGroups=minetest | ||
+ | RemoveIPC=yes | ||
+ | PrivateTmp=yes | ||
+ | NoNewPrivileges=yes | ||
+ | RestrictSUIDSGID=yes | ||
+ | ProtectSystem=strict | ||
+ | PrivateDevices=yes | ||
+ | ReadWritePaths=/srv/minetest.chapril.org/instances/%i | ||
+ | Environment= | ||
+ | Environment=MINETEST_USER_PATH=/ | ||
+ | Environment=MINETEST_MOD_PATH=/ | ||
+ | Environment=LUANTI_GAMEID=instancegame | ||
+ | </ | ||
+ | Puis activons ces changements: | ||
+ | <code bash> | ||
+ | systemctl daemon-reload | ||
+ | </ | ||
+ | Créons un base de donnée pour authentifier les utilisateurs (elle sera mise en commun pour tous les jeux): | ||
<code bash> | <code bash> | ||
- | systemctl stop minetest-server.service | + | su -l postgres |
- | usermod | + | |
- | systemctl start minetest-server.service | + | |
</ | </ | ||
+ | ==== Organisation des sous-services ==== | ||
+ | Chaque jeu est en fait un sous-service indépendant mais ils partagent quelques éléments en commun: | ||
+ | * la base de donnée des utilisateurs crée précédemment, | ||
+ | * des extensions au jeu, des `mods`, mais chaque jeu utilise uniquement une sélection parmi les mods disponibles | ||
- | ==== Organisation | + | Pour chaque jeu nous avons décidé de l' |
+ | * un port UDP dédié (chaque jeu écoute sur un port séparé) | ||
+ | * un port TCP dédié (chaque jeu fourni | ||
+ | * un fichier de configuration ''/ | ||
+ | * 3 bases de données Postgresql nommées '' | ||
+ | * un sous-dossier dédié pour les données du jeu qui ne sont pas dans les bases de données dans ''/ | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
- | 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 | + | On crée le fichier de configuration |
- | Mais ce serveur peut maintenant faire tourner un ou plusieurs autres jeux disponibles par exemple sur [[https:// | + | <code ini> |
+ | server_name = Chapril - < | ||
+ | server_description = Instance Luanti | ||
+ | motd = Bienvenu à tous ! | ||
- | En prévision des futurs jeux que nous aurions envie déployer sur ce serveur, nous avons décidé de l' | + | server_url = https:// |
+ | server_announce = false | ||
+ | ipv6_server = false | ||
+ | port = < | ||
+ | prometheus_listener_address = 127.0.0.1:< | ||
- | * un port TCP dédié (on n'a pas le choix, chaque jeu doit écouter sur un port séparé) | + | # superadmin |
- | * un fichier de configuration systemd dont le nom commence par le numéro de port | + | name = Duck |
- | * un sous-dossier dédié pour le code du jeu, dans ''/ | + | </code> |
- | * 2 bases de données Postgresql nommées '' | + | |
- | * un fichier de configuration du monde '' | + | |
- | <note tip>On a créé le fichier ''/ | + | On crée les bases de données: |
- | Le fichier ''/ | + | <code bash> |
+ | su - postgres | ||
+ | createdb -O minetest | ||
+ | createdb -O minetest | ||
+ | createdb -O minetest | ||
+ | </code> | ||
- | ===== Supervision ===== | + | On crée les répertoires |
- | Plusieurs sondes ont été mises en place pour surveiller le service Minetest. Les scripts personnalisés sont situés dans le répertoire | + | <code bash> |
+ | mkdir -p / | ||
+ | mkdir -p /srv/minetest.chapril.org/instances/< | ||
+ | chown Debian-minetest: | ||
+ | chown Debian-minetest: | ||
+ | </ | ||
- | * le script '' | + | On va sur le site [[https:// |
- | * le script | + | <code bash> |
- | * le script '' | + | cd / |
- | * on vérifie que le service | + | git clone < |
+ | cd instancegame | ||
+ | git checkout < | ||
+ | git submodule init | ||
+ | git submodule update | ||
+ | </ | ||
+ | //< | ||
- | ===== Sauvegarde ===== | + | On va ensuite créer la configuration |
- | La sauvegarde globale des VMs permet de sauvegarder les données clés à savoir : | + | <code ini> |
- | * le contenu | + | world_name = world |
- | * le contenu du répertoire | + | gameid = instancegame |
- | * les bases de données postgresql | + | |
- | ===== Procédures diverses ===== | + | backend |
- | ==== Effacer un monde ==== | + | pgsql_connection |
- | L' | + | |
- | * supprimer la base de données '' | + | player_backend = postgresql |
- | * supprimer la base de données '' | + | pgsql_player_connection = host=127.0.0.1 port=5432 user=minetest |
- | * (quand minetest-server 5.7 sera dans les dépôts) supprimer la base de données '' | + | |
- | * supprimer le fichier instance_xxx/ | + | |
- | * supprimer le fichier instance_xxx/ | + | |
- | * supprimer le fichier instance_xxx/ | + | |
- | * supprimer le fichier instance_xxx/ | + | |
- | * supprimer le fichier instance_xxx/ | + | |
- | Plus d' | + | mod_storage_backend = postgresql |
+ | pgsql_mod_storage_connection = host=127.0.0.1 port=5432 user=minetest password=< | ||
- | ==== Installer un mod ==== | + | auth_backend |
+ | pgsql_auth_connection | ||
- | | + | mg_name = <map-generator> |
- | - Télécharger l' | + | creative_mode = false |
- | - Renommer le répertoire avec le nom technique du mod (voir la page contentdb pour trouver le nom technique) | + | enable_damage |
- | - Activer le mod dans le fichier '' | + | enable_pvp = false |
- | - Changer la propriété des fichiers ajoutés pour Debian-minetest: | + | disable_fire = false |
+ | enable_tnt = true | ||
- | Plus d'informations | + | 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 | ||
+ | </ | ||
+ | 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@< | ||
+ | </ | ||
+ | |||
+ | ==== Installation des mods ==== | ||
+ | |||
+ | On va sur le site [[https:// | ||
+ | <code bash> | ||
+ | cd / | ||
+ | git clone < | ||
+ | </ | ||
+ | Souvent les mods n'ont pas de version définie mais si c'est le cas on peut vérifier la liste des version ('' | ||
+ | |||
+ | Attention, un mod peux avoir des dépendances listée sur sa page de description et dans ce cas il est nécessaire | ||
+ | |||
+ | Ensuite il est nécessaire d' | ||
+ | |||
+ | On relance le services: | ||
+ | <code bash> | ||
+ | systemctl restart luanti-server@< | ||
+ | </ | ||
+ | Puis on modifie le fichier ''/ | ||
+ | <code bash> | ||
+ | systemctl restart luanti-server@< | ||
+ | </ | ||
+ | |||
+ | ==== 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/ | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | La liste des mots interdits pour le mod filter est vides. L' | ||
+ | </WRAP> | ||
+ | <WRAP center round todo 60%> | ||
+ | Le mod '' | ||
+ | </WRAP> | ||
+ | |||
+ | ===== Procédures diverses ===== | ||
+ | |||
+ | ==== Gestion administrateur générale ==== | ||
- | ===== Procédures de modération ===== | + | Pour comprendre les privilèges : https://docs.luanti.org/ |
- | ==== 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 | + | Pour comprendre les commandes serveur : https://docs.luanti.org/for-players/ |
Donner un privilège | Donner un privilège | ||
Ligne 148: | Ligne 263: | ||
</ | </ | ||
+ | ==== Effacer un monde ==== | ||
- | ==== Filtre automatique du chat ==== | + | L' |
- | La documentation | + | |
- | Active | + | * stopper |
- | <code bash> | + | * supprimer les bases de données '' |
- | /filtre enable | + | * supprimer tous les fichiers dans '' |
- | </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 '' |
- | /filtre add < | + | |
- | </code> | + | |
- | Lister | + | * le script '' |
- | <code bash> | + | * le script '' |
- | /filtre list | + | * le script '' |
- | </ | + | * on vérifie que le service '' |
- | 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 '' | ||
+ | * le contenu du répertoire '' | ||
+ | * 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 center round todo 60%> | ||
- | Modifier le code pour correspondre à la politique envisagée et pour changer les messages en français. | ||
- | </ | ||
- | |||
- | ==== Antigrief ==== | ||
- | La documentation est disponible ici : https:// | ||
- | |||
- | 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. | ||
- | </ |
admin/services/minetest.chapril.org.1740006882.txt.gz · Dernière modification : 2025/02/19 23:14 de duck