<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1. Mise en place de MTSatellite pour un serveur déjà en place</a>
<ul>
<li><a href="#sec-1-1">1.1. Résumé des étapes</a></li>
<li><a href="#sec-1-2">1.2. Installation des outils pour compiler MTSatellite (Gentoo)</a></li>
<li><a href="#sec-1-3">1.3. Création d'un deuxième serveur Minetest</a></li>
<li><a href="#sec-1-4">1.4. Restauration de la BDD du premier serveur pour la nouvelle instance</a></li>
<li><a href="#sec-1-5">1.5. Restauration des données de la map de l'ancienne instance</a>
<ul>
<li><a href="#sec-1-5-1">1.5.1. Premier cas (même version)</a></li>
<li><a href="#sec-1-5-2">1.5.2. Deuxième cas (version mise à jour)</a></li>
</ul>
</li>
<li><a href="#sec-1-6">1.6. Migration de la map de la seconde instance vers levelDB</a></li>
<li><a href="#sec-1-7">1.7. <span class="todo TODO">TODO</span> Mise en place de MTSatellite</a></li>
</ul>
</li>
</ul>
</div>
</div>

# Mise en place de MTSatellite pour un serveur déjà en place<a id="sec-1" name="sec-1"></a>

## Résumé des étapes<a id="sec-1-1" name="sec-1-1"></a>

-   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)<a id="sec-1-2" name="sec-1-2"></a>

Nous sommes logué en tant que root sur notre serveur

    -- Installation des packages nécessaires
    # emerge -av go leveldb mercurial

Se loguer en tant qu'utilisateur minetest sur notre serveur

    $ 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

## Création d'un deuxième serveur Minetest<a id="sec-1-3" name="sec-1-3"></a>

Nous sommes logué en tant qu'utilisateur minetest sur notre serveur

    -- 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)

## Restauration de la BDD du premier serveur pour la nouvelle instance<a id="sec-1-4" name="sec-1-4"></a>

Nous sommes logué en tant qu'utilisateur minetest sur notre serveur

    -- 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

## Restauration des données de la map de l'ancienne instance<a id="sec-1-5" name="sec-1-5"></a>

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)<a id="sec-1-5-1" name="sec-1-5-1"></a>

Vous pouvez copier directement le dossier world ou bien la dernière sauvegarde de l'ancienne instance dans la nouvelle.

    $ 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

### Deuxième cas (version mise à jour)<a id="sec-1-5-2" name="sec-1-5-2"></a>

Il vous faudra procéder d'une façon différente.
Tout d'abord renommez le world de la nouvelle instance :

    $ cd /home/minetest/nalc-1/minetest/worlds
    $ mv nalc-1 nalc-1-old

Ensuite recréez un dossier vierge avec le même nom qu'avant renommage puis faites l'opération du premier cas.

    $ 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

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<a id="sec-1-6" name="sec-1-6"></a>

Nous sommes logué en tant qu'utilisateur minetest sur notre serveur

    $ cd
    $ cd nalc-1/minetest/bin
    $ ./minetestserver --migrate leveldb --world /home/minetest/nalc-1/minetest/worlds/nalc-1

## TODO Mise en place de MTSatellite<a id="sec-1-7" name="sec-1-7"></a>