nalc-server/doc/Guide/index.org

8.0 KiB
Raw Blame History

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

  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

/gitea/nalc/nalc-server/media/commit/ece4bbceb033edccd9ddb0fad0d7f664fd89c018/doc/Guide/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 :

  # useradd -m -U minetest -s /bin/bash minetest
  # passwd minetest

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 :

  cd ~
  git clone --depth 1 https://sys4.fr/gitea/nalc/nalc-server.git

Après un court laps de temps, vous devriez avoir le répertoire /home/minetest/nalc-server créé dont le contenue est le suivant :

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-rr 1 sys4 sys4 34570 7 déc. 14:33 LICENSE
-rw-rr 1 sys4 sys4 10388 7 déc. 14:33 minetest-1.0.conf
-rw-rr 1 sys4 sys4 10509 7 déc. 14:33 minetest-1.1.conf
-rw-rr 1 sys4 sys4 10579 7 déc. 14:33 minetest-dev.conf
-rw-rr 1 sys4 sys4 10509 7 déc. 14:33 minetest-stable.conf
-rw-rr 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-rr 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-rr 1 sys4 sys4 62 7 déc. 14:33 worldmt-1.0.conf
-rw-rr 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 :

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-rr 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-rr 1 sys4 sys4 10388 7 déc. 17:25 minetest-1.0.conf
-rw-rr 1 sys4 sys4 10509 7 déc. 17:25 minetest-1.1.conf
-rw-rr 1 sys4 sys4 10579 7 déc. 17:25 minetest-dev.conf
-rw-rr 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-rr 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
-rwxrr 1 sys4 sys4 729 7 déc. 18:08 start.sh
-rwxrr 1 sys4 sys4 722 7 déc. 17:53 start.sh~
-rw-rr 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-rr 1 sys4 sys4 8028 8 déc. 00:41 world.mt
-rw-rr 1 sys4 sys4 62 7 déc. 17:25 worldmt-1.0.conf
-rw-rr 1 sys4 sys4 85 7 déc. 17:25 worldmt-1.1.conf
-rw-rr 1 sys4 sys4 85 8 déc. 00:41 world.mt.bak