* Mise en place de MTSatellite pour un serveur déjà en place ** Résumé des étapes - Installation des outils pour compiler MTSatellite (Gentoo) - Création d'un deuxième serveur Minetest en parallèle du premier avec un backend en postgresql. - Restauration de la BDD du premier serveur pour le second (map et players) - Restauration des données de la map de l'ancienne instance - Conversion de la map de la seconde instance vers levelDB - Mise en place de MTSatellite (plusieurs étapes) - ** Installation des outils pour compiler MTSatellite (Gentoo) Nous sommes logué en tant que root sur notre serveur #+BEGIN_EXAMPLE -- Installation des packages nécessaires # emerge -av go leveldb mercurial #+END_EXAMPLE Se loguer en tant qu'utilisateur minetest sur notre serveur #+BEGIN_EXAMPLE $ cd $ go get -u bitbucket.org/s_l_teichmann/mtsatellite/cmd/mtdbconverter $ go get -u bitbucket.org/s_l_teichmann/mtsatellite/cmd/mtredisalize $ go get -u bitbucket.org/s_l_teichmann/mtsatellite/cmd/mtseeder $ go get -u bitbucket.org/s_l_teichmann/mtsatellite/cmd/mtwebmapper $ ls /home/minetest/go/bin mtdbconverter mtredisalize mtseeder mtwebmapper #+END_EXAMPLE ** Création d'un deuxième serveur Minetest Nous sommes logué en tant qu'utilisateur minetest sur notre serveur #+BEGIN_EXAMPLE -- Récupération des sources du serveur nalc $ cd $ git clone --depth 1 https://sys4.fr/gitea/nalc/nalc-server.git nalc-1 -- Installation du serveur $ cd nalc-1 $ ./install.sh --postgresql 0.4 (Suivez les instructions pour créer un nouveau serveur) #+END_EXAMPLE ** Restauration de la BDD du premier serveur pour la nouvelle instance Nous sommes logué en tant qu'utilisateur minetest sur notre serveur #+BEGIN_EXAMPLE -- Restauration de la dernière sauvegarde de la première instance (nalc-server-0.4.17-r1) vers la seconde (nalc-1) $ cd $ mkdir nalc-1/dumps $ cd nalc-1/dumps $ tar -xvf ~/nalc-server-0.4.17-r1/backup/data/dump_sql.tar -- Efface les BDD créé par l'installation de la nouvelle instance -- Dans le cas où vous vous êtes logué en jeux au moins une fois $ dropdb nalc-1 $ dropdb players-nalc-1 -- Création de BDD vierges $ createdb nalc-1 $ createdb players-nalc-1 -- Restauration des BDD de l'ancienne instance dans la nouvelle -- (vérifiez que vous ayez assez d'espace disque dans /var) $ su - postgres $ pg_restore -d nalc-1 /home/minetest/nalc-1/dumps/nalc-0.4.17.dump $ pg_restore -d players-nalc-1 /home/minetest/nalc-1/dumps/players-nalc-0.4.17.dump $ logout $ cd $ rm -rf nalc-1/dumps #+END_EXAMPLE ** Restauration des données de la map de l'ancienne instance Cela dépendra du contexte, deux cas majeurs peuvent se présenter : - Soit la nouvelle instance n'apporte pas de changements majeurs dans les fichiers de votre world (même version du serveur ou mise à jour très légère). - Ou bien des changements majeurs sont apportés à l'occasion de l'installation d'une version plus récente de votre serveur. *** Premier cas (même version) Vous pouvez copier directement le dossier world ou bien la dernière sauvegarde de l'ancienne instance dans la nouvelle. #+BEGIN_EXAMPLE $ cd /home/minetest/nalc-1/minetest/worlds/nalc-1 $ cp -r /home/minetest/nalc-server-0.4.17-r1/minetest/worlds/nalc/* . $ -- recréer le lien symbolique du world.mt qui vient d'être effacé $ ln -s /home/minetest/nalc-1/world.mt #+END_EXAMPLE *** Deuxième cas (version mise à jour) Il vous faudra procéder d'une façon différente. Tout d'abord renommez le world de la nouvelle instance : #+BEGIN_EXAMPLE $ cd /home/minetest/nalc-1/minetest/worlds $ mv nalc-1 nalc-1-old #+END_EXAMPLE Ensuite recréez un dossier vierge avec le même nom qu'avant renommage puis faites l'opération du premier cas. #+BEGIN_EXAMPLE $ mkdir nalc-1 $ cd nalc-1 $ cp -r /home/minetest/nalc-server-0.4.17-r1/minetest/worlds/nalc/* . $ -- recréer le lien symbolique du world.mt qui vient d'être effacé $ ln -s /home/minetest/nalc-1/world.mt #+END_EXAMPLE Ensuite ne copiez que les nouveaux fichiers et dossiers contenues dans le dossier renommé précédemment (nalc-1-old) vers votre dossier actuel (nalc-1) si ils n'y figurent pas déjà. ** Migration de la map de la seconde instance vers levelDB Nous sommes logué en tant qu'utilisateur minetest sur notre serveur #+BEGIN_EXAMPLE $ cd $ cd nalc-1/minetest/bin $ ./minetestserver --migrate leveldb --world /home/minetest/nalc-1/minetest/worlds/nalc-1 #+END_EXAMPLE ** TODO Mise en place de MTSatellite