Actualiser services/minetest.libre-service.eu.md

This commit is contained in:
Christian P. MOMON 2023-11-17 04:23:40 +01:00
parent 25c702634d
commit 482f334487

View file

@ -1,238 +1,241 @@
# Minetest # Minetest
# Installation # Installation
Ouvrir le port par défaut : Ouvrir le port par défaut :
``` ```
iptables -A INPUT -i $WAN -p udp --dport 30000 -j ACCEPT iptables -A INPUT -i $WAN -p udp --dport 30000 -j ACCEPT
``` ```
Installer le serveur Minetest : Installer le serveur Minetest :
``` ```
apt-get install minetest-server minetestmapper apt-get install minetest-server minetestmapper
``` ```
Pour privilégier le nommage des mondes, désactiver le monde par défaut : Pour privilégier le nommage des mondes, désactiver le monde par défaut :
``` ```
systemctl stop minetest-server systemctl stop minetest-server
systemctl disabled minetest-server systemctl disabled minetest-server
systemctl disabled minetest-server@minetest systemctl disabled minetest-server@minetest
``` ```
Optimiser la configuration de Postgresql : Optimiser la configuration de Postgresql :
- avoir au moins 512MB de mémoire disponible pour Minetest hors Postgresql ; - avoir au moins 512MB de mémoire disponible pour Minetest hors Postgresql ;
- modifier `/etc/postgresql/13/main/postgresql.conf` : - modifier `/etc/postgresql/13/main/postgresql.conf` :
``` ```
-shared_buffers = 128MB # min 128kB -shared_buffers = 128MB # min 128kB
+shared_buffers = 512MB # min 128kB +shared_buffers = 512MB # min 128kB
``` ```
# Mineclone2 # Mineclone2
## Install ## Install
Récupérer le zip : Récupérer le zip :
* https://content.minetest.net/packages/Wuzzy/mineclone2/ * https://content.minetest.net/packages/Wuzzy/mineclone2/
* cliquer sur le bouton `Download` * cliquer sur le bouton `Download`
Décompresser : Décompresser :
``` ```
unzip mineclone2_6745.zip unzip mineclone2_6745.zip
``` ```
Ranger dans l'arborescence de Minetest : Ranger dans l'arborescence de Minetest :
``` ```
mv mineclone2 /usr/share/games/minetest/games/ mv mineclone2 /usr/share/games/minetest/games/
``` ```
## Création d'un monde ## Création d'un monde
Choisir un port et l'ouvrir : Choisir un port et l'ouvrir :
``` ```
iptables -A INPUT -i $WAN -p udp --dport 3000X -j ACCEPT iptables -A INPUT -i $WAN -p udp --dport 3000X -j ACCEPT
``` ```
Créer un fichier de configuration élémentaire : Créer un fichier de configuration élémentaire :
``` ```
cp /etc/minetest/minetest.conf /etc/minetest/fooland.conf cp /etc/minetest/minetest.conf /etc/minetest/fooland.conf
``` ```
Éditer le fichier de configuration `/etc/minetest/fooland.conf` : Éditer le fichier de configuration `/etc/minetest/fooland.conf` :
``` ```
- server_name = My Minetest server - server_name = My Minetest server
+ server_name = LibreServiceEU Mineclone2 Fooland + server_name = LibreServiceEU Mineclone2 Fooland
- server_description = Minetest server powered by Debian - server_description = Minetest server powered by Debian
+ server_description = Mineclone2 en libre-service sur LibreServiceEU + server_description = Mineclone2 en libre-service sur LibreServiceEU
-# server_address = game.minetest.net -# server_address = game.minetest.net
+ server_address = minetest.libre-service.eu + server_address = minetest.libre-service.eu
-# server_url = http://minetest.net -# server_url = http://minetest.net
+ server_url = https://minetest.libre-service.eu/ + server_url = https://minetest.libre-service.eu/
- server_announce = false - server_announce = false
+ server_announce = true + server_announce = true
-port = 30000 -port = 30000
+port = 3000X +port = 3000X
- default_game = minetest -ipv6_server = false
+ default_game = mineclone2 +ipv6_server = true
- motd = Welcome to Minetest. Enjoy your stay! - default_game = minetest
+ motd = Bienvenue sur le Minetest de Libre-service.eu \o/ + default_game = mineclone2
-# map-dir = - motd = Welcome to Minetest. Enjoy your stay!
+map-dir = /srv/minetest.libre-service.eu/worlds/fooland + motd = Bienvenue sur le Minetest de Libre-service.eu \o/
- max_users = 15 -# map-dir =
+ max_users = 64 +map-dir = /srv/minetest.libre-service.eu/worlds/fooland
- enable_damage = false - max_users = 15
+ enable_damage = true + max_users = 64
- # disallow_empty_password = false - enable_damage = false
+ disallow_empty_password = true + enable_damage = true
```
- # disallow_empty_password = false
Créer le dossier des mondes dans l'espace du service : + disallow_empty_password = true
``` ```
mkdir -p /srv/minetest.libre-service.eu/worlds
chown Debian-minetest /srv/minetest.libre-service.eu/worlds Créer le dossier des mondes dans l'espace du service :
``` ```
mkdir -p /srv/minetest.libre-service.eu/worlds
Créer le nouveau monde : chown Debian-minetest /srv/minetest.libre-service.eu/worlds
``` ```
systemctl start minetest-server@fooland.service
``` Créer le nouveau monde :
```
Le démarrer au prochain boot : systemctl start minetest-server@fooland.service
``` ```
systemctl enable minetest-server@fooland.service
``` Le démarrer au prochain boot :
```
Tester le nouveau monde en se connectant avec un client Minetest. systemctl enable minetest-server@fooland.service
```
## Migration dans Posgreql
Créer un compte dédié (si pas déjà fait) : Tester le nouveau monde en se connectant avec un client Minetest.
```
su - postgres -c "psql -c \"create user minetestdba with password 'XXXXXXXX'; \" " ## Migration dans Posgreql
``` Créer un compte dédié (si pas déjà fait) :
```
Créer une base de données : su - postgres -c "psql -c \"create user minetestdba with password 'XXXXXXXX'; \" "
``` ```
su - postgres -c "psql -c \"CREATE DATABASE minetestdb_fooland OWNER minetestdba; \""
``` Créer une base de données :
```
Associer le compte dédié avec la base fraîchement créée : su - postgres -c "psql -c \"CREATE DATABASE minetestdb_fooland OWNER minetestdba; \""
``` ```
su - postgres -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE minetestdb_fooland TO minetestdba; \""
``` Associer le compte dédié avec la base fraîchement créée :
```
Définir la base de données dans `/srv/minetest.libre-service.eu/worlds/fooland/world.mt` : su - postgres -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE minetestdb_fooland TO minetestdba; \""
``` ```
pgsql_connection = host=127.0.0.1 port=5432 user=minetestdba password=XXXXX dbname=minetestdb_fooland
pgsql_auth_connection = host=127.0.0.1 port=5432 user=minetestdba password=XXXXXX dbname=minetestdb_fooland Définir la base de données dans `/srv/minetest.libre-service.eu/worlds/fooland/world.mt` :
pgsql_player_connection = host=127.0.0.1 port=5432 user=minetestdba password=XXXXXX dbname=minetestdb_fooland ```
``` pgsql_connection = host=127.0.0.1 port=5432 user=minetestdba password=XXXXX dbname=minetestdb_fooland
pgsql_auth_connection = host=127.0.0.1 port=5432 user=minetestdba password=XXXXXX dbname=minetestdb_fooland
Migrer le nouveau monde vers le backend Postgres : pgsql_player_connection = host=127.0.0.1 port=5432 user=minetestdba password=XXXXXX dbname=minetestdb_fooland
``` ```
systemctl stop minetest-server@fooland.service
/usr/games/minetestserver --migrate postgresql --world /srv/minetest.libre-service.eu/worlds/fooland Migrer le nouveau monde vers le backend Postgres :
/usr/games/minetestserver --migrate-auth postgresql --world /srv/minetest.libre-service.eu/worlds/fooland ```
/usr/games/minetestserver --migrate-players postgresql --world /srv/minetest.libre-service.eu/worlds/fooland systemctl stop minetest-server@fooland.service
chown Debian-minetest.games /srv/minetest.libre-service.eu/worlds/fooland/world.mt /usr/games/minetestserver --migrate postgresql --world /srv/minetest.libre-service.eu/worlds/fooland
systemctl start minetest-server@fooland.service /usr/games/minetestserver --migrate-auth postgresql --world /srv/minetest.libre-service.eu/worlds/fooland
``` /usr/games/minetestserver --migrate-players postgresql --world /srv/minetest.libre-service.eu/worlds/fooland
chown Debian-minetest.games /srv/minetest.libre-service.eu/worlds/fooland/world.mt
## Module de protection de zone systemctl start minetest-server@fooland.service
```
Afin d'éviter le vandalisme, il est classique d'activer des fonctionnalités de protection de zone. Cela consiste à permettre au joueur de réserver une zone de blocs où il sera le seul à pouvoir casser/rajouter un bloc ou prendre/déposer dans un coffre.
## Module de protection de zone
Rappel : [documentation d'installation d'un mod](https://wiki.minetest.net/Installing_Mods).
Afin d'éviter le vandalisme, il est classique d'activer des fonctionnalités de protection de zone. Cela consiste à permettre au joueur de réserver une zone de blocs où il sera le seul à pouvoir casser/rajouter un bloc ou prendre/déposer dans un coffre.
Le module [node_ownership](https://forum.minetest.net/viewtopic.php?t=846) est très connu mais obsolète.
Rappel : [documentation d'installation d'un mod](https://wiki.minetest.net/Installing_Mods).
Le module [areas](https://content.minetest.net/packages/ShadowNinja/areas/) semble à jour, maintenu et très utilisé ([voir graphique](https://wiki.minetest.net/Mods/fr)). Notamment, ce module est [utilisé sur Framinetest](https://framacloud.org/fr/cultiver-son-jardin/minetest.html).
Le module [node_ownership](https://forum.minetest.net/viewtopic.php?t=846) est très connu mais obsolète.
Télécharger l'archive, puis dézipper et renommer :
``` Le module [areas](https://content.minetest.net/packages/ShadowNinja/areas/) semble à jour, maintenu et très utilisé ([voir graphique](https://wiki.minetest.net/Mods/fr)). Notamment, ce module est [utilisé sur Framinetest](https://framacloud.org/fr/cultiver-son-jardin/minetest.html).
wget https://github.com/ShadowNinja/areas/archive/master.zip
unzip master.zip Télécharger l'archive, puis dézipper et renommer :
mv areas-master areas ```
``` wget https://github.com/ShadowNinja/areas/archive/master.zip
unzip master.zip
Déplacer dans le dossier du monde : mv areas-master areas
``` ```
mkdir -p /srv/libreverse.chalec.org/worlds/fooland/worldmods
systemctl stop minetest-server@fooland.service Déplacer dans le dossier du monde :
mv areas /srv/libreverse.chalec.org/worlds/libreverse/worldmods/ ```
systemctl start minetest-server@fooland.service mkdir -p /srv/libreverse.chalec.org/worlds/fooland/worldmods
``` systemctl stop minetest-server@fooland.service
mv areas /srv/libreverse.chalec.org/worlds/libreverse/worldmods/
Une aide est disponible en tapant `/help` dans le jeu. systemctl start minetest-server@fooland.service
```
Les réglages se font dans `/srv/minetest.libre-service.eu/worlds/fooland/worldmods/areas/settingtypes.txt`.
Une aide est disponible en tapant `/help` dans le jeu.
Les zones sont stockées dans `/srv/minetest.libre-service.eu/worlds/fooland/areas.dat` (c'est au format JSON).
Les réglages se font dans `/srv/minetest.libre-service.eu/worlds/fooland/worldmods/areas/settingtypes.txt`.
Les zones sont stockées dans `/srv/minetest.libre-service.eu/worlds/fooland/areas.dat` (c'est au format JSON).
## Jouer
Liens utiles :
- Mineclone2 : https://wiki.minetest.net/Games/MineClone_2/Differences_from_Minetest_Game
- Database backends : https://wiki.minetest.net/Database_backends ## Jouer
- Server commands : https://wiki.minetest.net/Server_commands Liens utiles :
- Item strings : https://wiki.minetest.net/Itemstrings - Mineclone2 : https://wiki.minetest.net/Games/MineClone_2/Differences_from_Minetest_Game
- Privileges : https://wiki.minetest.net/Privilegesc - Database backends : https://wiki.minetest.net/Database_backends
- Server commands : https://wiki.minetest.net/Server_commands
## Génération une carte du monde - Item strings : https://wiki.minetest.net/Itemstrings
- Privileges : https://wiki.minetest.net/Privilegesc
### Migration du backend
La procédure utilise `minetestmapper` qui ne gère pas Postgresql, donc une étape va consister à convertir la base de donnée. ## Génération une carte du monde
Copier temporairement la base : ### Migration du backend
``` La procédure utilise `minetestmapper` qui ne gère pas Postgresql, donc une étape va consister à convertir la base de donnée.
su - postgres -c "psql -c \"CREATE DATABASE test with template minetestdb_libremine; \""
``` Copier temporairement la base :
```
Copier temporairement l'arborescence du monde : su - postgres -c "psql -c \"CREATE DATABASE test with template minetestdb_libremine; \""
``` ```
cp /srv/minetest.libre-service.eu/worlds/libremine /srv/minetest.libre-service.eu/worlds/test
``` Copier temporairement l'arborescence du monde :
```
Modifier le paramétrage de la base de données dans le fichier de paramétrage du monde : cp /srv/minetest.libre-service.eu/worlds/libremine /srv/minetest.libre-service.eu/worlds/test
``` ```
sed -i 's/minetestdb_libremine/test/g' /srv/minetest.libre-service.eu/worlds/test/world.mt
``` Modifier le paramétrage de la base de données dans le fichier de paramétrage du monde :
```
Migrer le `backend` du monde (minetestmapper ne sais pas gérer postgresql): sed -i 's/minetestdb_libremine/test/g' /srv/minetest.libre-service.eu/worlds/test/world.mt
``` ```
/usr/games/minetestserver --migrate sqlite3 --world /srv/minetest.libre-service.eu/worlds/test
/usr/games/minetestserver --migrate-players sqlite3 --world /srv/minetest.libre-service.eu/worlds/test Migrer le `backend` du monde (minetestmapper ne sais pas gérer postgresql):
``` ```
/usr/games/minetestserver --migrate sqlite3 --world /srv/minetest.libre-service.eu/worlds/test
### Correspondance des couleurs /usr/games/minetestserver --migrate-players sqlite3 --world /srv/minetest.libre-service.eu/worlds/test
```
Minetestmapper sait traduire les blocs Minetest en pixel de couleur mais Mineclone2 apporte de nouveaux blocs. La liste des correspondances de couleurs est donc à générer :
``` ### Correspondance des couleurs
./mtsedit -m Mineclone2 -C > mineclone-colors.txt
``` Minetestmapper sait traduire les blocs Minetest en pixel de couleur mais Mineclone2 apporte de nouveaux blocs. La liste des correspondances de couleurs est donc à générer :
```
### Génération ./mtsedit -m Mineclone2 -C > mineclone-colors.txt
``` ```
/usr/games/minetestmapper -i /srv/minetest.libre-service.eu/worlds/test/ -o /srv/minetest.libre-service.eu/foo.png --colors /srv/minetest.libre-service.eu/mineclone-colors.txt --draworigin --drawscale
``` ### Génération
```
### Nettoyage /usr/games/minetestmapper -i /srv/minetest.libre-service.eu/worlds/test/ -o /srv/minetest.libre-service.eu/foo.png --colors /srv/minetest.libre-service.eu/mineclone-colors.txt --draworigin --drawscale
```
Supprimer la base temporaire :
``` ### Nettoyage
su - postgres -c "psql -c \"DROP DATABASE test; \""
``` Supprimer la base temporaire :
```
Supprimer l'arborescence temporaire : su - postgres -c "psql -c \"DROP DATABASE test; \""
``` ```
rm -fr /srv/minetest.libre-service.eu/worlds/test
``` Supprimer l'arborescence temporaire :
```
rm -fr /srv/minetest.libre-service.eu/worlds/test
```