168 lines
8.0 KiB
Org Mode
168 lines
8.0 KiB
Org Mode
|
* Guide détaillé de l'utilisation du serveur NALC
|
||
|
Ce guide explique comment installer et utiliser les scripts du serveur NALC pour sa gestion au quotidien par les administrateurs du serveur.
|
||
|
En dernière partie le guide explique les bonnes pratiques à adopter pour contribuer au développement du serveur NALC.
|
||
|
** Architecture et fichiers principaux du serveur
|
||
|
Avant de commencer, voici une illustration de l'architecture du serveur une fois installé.
|
||
|
|
||
|
#+begin_src plantuml :file architecture.png
|
||
|
folder "nalc-server" as nalcserver {
|
||
|
Component install.sh
|
||
|
Component upgrade.sh
|
||
|
Component start.sh
|
||
|
Component shutdown.sh
|
||
|
Component backup.sh
|
||
|
Component "worldmt-$version.conf" as wmtver
|
||
|
Component "<&flag>world.mt" as worldmt
|
||
|
Component "minetest-$version.conf" as mtver
|
||
|
folder doc
|
||
|
folder logs
|
||
|
folder backup
|
||
|
folder world
|
||
|
folder "<&flag>nalc_game" as nalc_game
|
||
|
folder "nalc-server-mods" as nalcservermods {
|
||
|
folder "<&flag>mod1" as mod1
|
||
|
folder "<&flag>mod2" as mod2
|
||
|
folder "<&flag>modN..." as modn
|
||
|
}
|
||
|
folder minetest {
|
||
|
Component "minetest.conf" as mtconf
|
||
|
folder games {
|
||
|
Component "<&people>nalc_game" as nalcgamelink
|
||
|
}
|
||
|
folder worlds {
|
||
|
folder "nalc-$version" as nalc_world {
|
||
|
Component "<&people>world.mt" as worldmtlink
|
||
|
}
|
||
|
}
|
||
|
folder mods {
|
||
|
Component "<&people>mod1" as mod1l
|
||
|
Component "<&people>mod2" as mod2l
|
||
|
Component "<&people>modn..." as modnl
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
worldmtlink ..> worldmt :<<Lien symbolique>>
|
||
|
nalcgamelink ..> nalc_game :<<Lien symbolique>>
|
||
|
mod1l ..> mod1 :<<Lien symbolique>>
|
||
|
mod2l ..> mod2 :<<Lien symbolique>>
|
||
|
modnl ..> modn :<<Lien symbolique>>
|
||
|
|
||
|
wmtver --> worldmt : Copie
|
||
|
mtver --> mtconf : Copie
|
||
|
world --> nalc_world : Copie du contenue
|
||
|
|
||
|
legend right
|
||
|
<&flag> Dossier ou fichier source
|
||
|
<&people> Lien symbolique vers <&flag>
|
||
|
endlegend
|
||
|
|
||
|
node "Serveur Gitea Sys4" as gitea {
|
||
|
Component "Dépôt nalc-server-mods" as depot_nalc
|
||
|
Component "Dépôt nalc_game" as depot_nalc_game
|
||
|
Component "Dépôt nalc-serveur" as depot_nalc_serveur
|
||
|
}
|
||
|
node "Serveur Gitlab de Minetest" as gitlab {
|
||
|
Component "Dépôt minetest" as depot_minetest
|
||
|
}
|
||
|
|
||
|
interface "https ou ssh" as intergitea
|
||
|
interface "https" as intergitlab
|
||
|
|
||
|
nalcserver ..> intergitea : utilise
|
||
|
nalcservermods ..> intergitea : utilise
|
||
|
nalc_game ..> intergitea : utilise
|
||
|
|
||
|
minetest ..> intergitlab : utilise
|
||
|
|
||
|
intergitea - gitea
|
||
|
intergitlab - gitlab
|
||
|
#+end_src
|
||
|
|
||
|
#+RESULTS:
|
||
|
[[file:architecture.png]]
|
||
|
|
||
|
Ne prenez pas peur par la complexité apparente du schéma, la pluspart des opérations que vous aurez à gérer se feront à travers les scripts qui vous faciliterons la tâche.
|
||
|
|
||
|
Nous reviendrons plus en détail sur certaines parties au moment opportun.
|
||
|
** Installation
|
||
|
*** Pré-requis
|
||
|
- Système d'exploitation : GNU/Linux avec interpréteur BASH,
|
||
|
- git,
|
||
|
- Librairies et dépendances de Minetest :
|
||
|
Consulter les pré-requis sur cette page : [[https://github.com/minetest/minetest/blob/master/README.md]]
|
||
|
*** Ce que je recommande pour avoir de bonnes performances
|
||
|
- *PostgreSQL* pour le backend de la MAP et des Utilisateurs.
|
||
|
- *Redis* pour le backend de la MAP est une bonne alternative, mais elle ne sera pas traitée dans ce guide. Cependant j'avais fait une vidéo d'installation d'un serveur Minetest avec le backend Redis disponible ici : [[https://www.youtube.com/watch?v=cz_-Q0Uct1c]]
|
||
|
- Utiliser les librairies fournis par le système plûtot que celle incluse avec Minetest, comme Luajit par exemple.
|
||
|
*** Créer un utilisateur dédié
|
||
|
Je recommande de créer un utilisateur dédié que nous nommerons "minetest" dans ce guide. Cela permettra une meilleure organisation ; et du point de vue sécurité c'est pas mal aussi.
|
||
|
|
||
|
Lancez un Terminal en root et entrez les commandes suivantes :
|
||
|
#+begin_example :src shell
|
||
|
# useradd -m -U minetest -s /bin/bash minetest
|
||
|
# passwd minetest
|
||
|
#+end_example
|
||
|
|
||
|
Maintenant vous pouvez suivre le reste du guide avec l'utilisateur minetest.
|
||
|
*** Télécharger les sources du serveur
|
||
|
Depuis un terminal nous allons rapatrier le code source du serveur avec git :
|
||
|
#+begin_example :src shell
|
||
|
cd ~
|
||
|
git clone --depth 1 https://sys4.fr/gitea/nalc/nalc-server.git
|
||
|
#+end_example
|
||
|
Après un court laps de temps, vous devriez avoir le répertoire /home/minetest/nalc-server créé dont le contenue est le suivant :
|
||
|
#+begin_src sh :exports results
|
||
|
ls -l ../..
|
||
|
#+end_src
|
||
|
|
||
|
#+RESULTS:
|
||
|
| total | 136 | | | | | | | |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 1101 | 7 | déc. | 14:33 | backup.sh |
|
||
|
| drwxr-xr-x | 3 | sys4 | sys4 | 4096 | 8 | déc. | 14:14 | doc |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 9650 | 8 | déc. | 01:14 | install.sh |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 34570 | 7 | déc. | 14:33 | LICENSE |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10388 | 7 | déc. | 14:33 | minetest-1.0.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10509 | 7 | déc. | 14:33 | minetest-1.1.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10579 | 7 | déc. | 14:33 | minetest-dev.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10509 | 7 | déc. | 14:33 | minetest-stable.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 261 | 7 | déc. | 14:33 | README.md |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 1468 | 7 | déc. | 14:33 | shutdown.sh |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 691 | 7 | déc. | 14:33 | start.sh.example |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 7589 | 8 | déc. | 01:14 | upgrade.sh |
|
||
|
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 14:33 | world |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 62 | 7 | déc. | 14:33 | worldmt-1.0.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 85 | 7 | déc. | 14:33 | worldmt-1.1.conf |
|
||
|
|
||
|
*** Installer le serveur
|
||
|
Maintenant il nous faut mettre en place tout le nécessaires pour avoir un serveur fonctionnel comme illustré dans l'image 1 et dont le contenu doit ressembler à ça :
|
||
|
#+begin_src sh :exports results
|
||
|
ls -l ../../../tests/nalc-server
|
||
|
#+end_src
|
||
|
|
||
|
#+RESULTS:
|
||
|
| total | 172 | | | | | | | |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 1101 | 7 | déc. | 17:25 | backup.sh |
|
||
|
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 17:25 | doc |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 11301 | 8 | déc. | 00:30 | install.sh |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 34570 | 7 | déc. | 17:25 | LICENSE |
|
||
|
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 17:51 | logs |
|
||
|
| drwxr-xr-x | 23 | sys4 | sys4 | 4096 | 8 | déc. | 00:31 | minetest |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10388 | 7 | déc. | 17:25 | minetest-1.0.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10509 | 7 | déc. | 17:25 | minetest-1.1.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10579 | 7 | déc. | 17:25 | minetest-dev.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 10515 | 8 | déc. | 00:46 | minetest-stable.conf |
|
||
|
| drwxr-xr-x | 5 | sys4 | sys4 | 4096 | 7 | déc. | 23:48 | nalc_game |
|
||
|
| drwxr-xr-x | 144 | sys4 | sys4 | 4096 | 7 | déc. | 23:49 | nalc-server-mods |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 261 | 7 | déc. | 17:25 | README.md |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 1498 | 7 | déc. | 17:35 | shutdown.sh |
|
||
|
| -rwxr--r-- | 1 | sys4 | sys4 | 729 | 7 | déc. | 18:08 | start.sh |
|
||
|
| -rwxr--r-- | 1 | sys4 | sys4 | 722 | 7 | déc. | 17:53 | start.sh~ |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 691 | 7 | déc. | 17:25 | start.sh.example |
|
||
|
| -rwxr-xr-x | 1 | sys4 | sys4 | 7589 | 8 | déc. | 00:12 | upgrade.sh |
|
||
|
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 17:25 | world |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 8028 | 8 | déc. | 00:41 | world.mt |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 62 | 7 | déc. | 17:25 | worldmt-1.0.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 85 | 7 | déc. | 17:25 | worldmt-1.1.conf |
|
||
|
| -rw-r--r-- | 1 | sys4 | sys4 | 85 | 8 | déc. | 00:41 | world.mt.bak |
|