Ceci est une ancienne révision du document !
Table des matières
Mineclone2
Mineclone2 est clone de Minecraft.
C'est un jeu sous licence GPLv3, développé à partir du le moteur de jeu Minetest, sous licence LGPL 2.1.
Mise à jour
chapril-ludo
et on créé localement un tag sur la révision git actuelle avant chaque tentative de mise à jour.
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 pull origin master systemctl restart minetest-server@30009-mineclone2.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éé.
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
Installation sous Debian Bullseye
Mineclone2 étant basé sur minetest, on commence par installer ce dernier :
apt install minetest-server
Par défaut, un service minetest est alors lancé sur le port TCP/30000. Son fichier de configuration est /etc/minetest/minetest.conf
.
Mais nous ne touchons pas à ce service. Au lieu de ça, nous allons profiter du mécanisme de templates systemd (plus d'infos dans le fichier /usr/share/doc/minetest-server/README.Debian
) pour créer service à part, qui écoutera sur le port TCP/30009.
Pour cela, nous créons le fichier /etc/minetest/30009-mineclone2.conf
contenant ceci :
port = 30009 server_name = Chapril - Mineclone 2 [FR] server_description = Un univers inspiré de Minecraft server_address = minetest.chapril.org motd = Bienvenue sur MC2, un clone de Minecraft basé sur le moteur Minetest. Pour les inconditionnels de Minecraft. map-dir = /srv/minetest.chapril.org/instances/30009-mineclone2 # À activer lorsque le service sera prêt à être ouvert au public #server_announce = true
Notre service pourra alors être lancé/stoppé/redémarré/surveillé comme ceci :
systemctl start minetest-server@30009-mineclone2.service systemctl stop minetest-server@30009-mineclone2.service systemctl restart minetest-server@30009-mineclone2.service systemctl status minetest-server@30009-mineclone2.service
Mais pas tout de suite, car pour le moment il n'est pas fonctionnel du tout.
Il faut préparer le dossier /srv/minetest.chapril.org/instances/30009-mineclone2/
qui est mentionné dans la configuration mais qui n'existe pas encore.
mkdir /srv/minetest.chapril.org/instances/30009-mineclone2/ chown Debian-minetest:/srv/minetest.chapril.org/instances/30009-mineclone2/
Dans ce dossier, il faut au minimum un fichier world.mt
, qui définit notamment le type de jeu (ici Mineclone2) et les types de bases de données à utiliser (database backends).
Chez chapril, on a choisi d'utiliser des bases de données postgresql pour les 3 bases : map, players et authentication.
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 creative_mode = false enable_damage = true
- créer les bases de données pgsql
- récupérer le code du jeu mineclone2 dans /srv/minetest.chapril.org/home/.minetest/games/mineclone2/
- avec une branche
chapril-ludo
Création des bases de données sous postgres :
su - postgres psql CREATE DATABASE "minetest-auth" WITH OWNER minetest; CREATE DATABASE "minetest-users-ctf" WITH OWNER minetest; CREATE DATABASE "minetest-users-mineclone2" WITH OWNER minetest; CREATE DATABASE "minetest-users-test" WITH OWNER minetest; CREATE DATABASE "minetest-world-ctf" WITH OWNER minetest; CREATE DATABASE "minetest-world-mineclone2" WITH OWNER minetest; CREATE DATABASE "minetest-world-test" WITH OWNER minetest;