LINUX:GeneWeb

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu du serveur Web


But

GeneWeb est un programme serveur qui permet de gérer des arborescences généalogiques. Il est libre. Il est à la base du site GeneaNet. Nous nous intéresserons à la version Linux. On l'installe sur un serveur et via un interface Web, on accède à notre généalogie.


Installation

La première étape consiste à télécharger le logiciel sur le site https://geneweb.tuxfamily.org/wiki/download/fr On y trouve diverses versions pour Linux, MacOS, Windows et les sources à compiler. A cette date, nous avons pris la dernière version 7.0.

On décompresse le fichier "geneweb-linux-88536ed4.zip" récupéré sur notre serveur. Le logiciel se trouve dans le sous-répertoire "distribution".

Nous avons concentré nos sites Web dans le répertoire "/web". Nous y créons le sous-répertoire "geneweb". Nous y transférons le contenu du sous-répertoire "distribution", résultat de la décompression.

On n'oublie pas de donner les droits nécessaires et la propriété à l'utilisateur "apache" sous lequel le serveur Httpd, Apache est lancé. Lors de la phase de mise en oeuvre, il est conseillé de désactiver SeLinux.


Description des services

Ce logiciel est composé de deux services. Nous utilisons notre serveur Linux "serverdb.home.dom".


gwsetup

Le daemon "gwsetup" est chargé de la gestion des bases généalogiques: la création, la sauvegarde, l'importation,... Son accès doit être réduit si pas arrêté dès les opérations de gestion effectuées. Par défaut, il présente un interface Web accessible par défaut via le port TCP 2316. A partir d'un explorateur Internet tel Firefox, nous y accédons via l'URL: http://serverdb.home.dom:2316


gwd

Le daemon "gwd" permet la gestion des arbres généalogiques. C'est lui que les utilisateurs devront utiliser. Il présente un interface Web accessible par défaut via le port TCP 2317. A partir d'un explorateur Internet tel Firefox, nous y accédons via l'URL: http://serverdb.home.dom:2317


httpd

Pour faciliter l'accès à ces deux service, un fichier Html est fourni. Nous utiliserons le service Httpd d'Apache. On peut évidemment s'en passer. Après configuration d'Apache et à partir d'un explorateur Internet tel Firefox, nous y accédons via l'URL: http://serverdb.home.dom/geneweb


Configuration d'Httpd

Service Httpd

La première étape consiste d'ajouter un fichier de configuration dans Apache.

On ajoute dans le répertoire par défaut réservé à la configuration des sites Wen "/etc/httpd/conf.d" le fichier "geneweb.conf".

Voici son contenu:


Alias "/geneweb" "/web/geneweb"
<Directory "/web/geneweb">
 DirectoryIndex START.htm
 Options +FollowSymLinks -Indexes
 <IfModule mod_authz_core.c>
       Require all denied
       Require ip 127.0.0.1
       Require ip 192.168.1
 </IfModule>
</Directory>

Le site "geneweb" se trouve, comme dit plus haut, dans le répertoire "/web/geneweb". Par défaut, à l'appel à la consultation du site, c'est le fichier "START.htm" qui est ouvert. En dessous, on limite l'accès à notre réseau privé "192.168.1.0/24".

On n'oublie pas de relancer le service Httpd:

systemctl restart httpd.service


Modification du fichier START.htm

La seconde consiste à adapter à notre contexte le fichier "/web/geneweb/START.htm". En effet, il est écrite pour être utilisé seulement en local sur le serveur ("localhost").

Avec un éditeur de texte classique, on substitue cette adresse "localhost" par le nom de notre serveur "serverdb.home.dom". A adapter selon votre situation

Remarquons que ce script est multilingue.

Dès que l'on veut accéder à cette page via l'URL: http://serverdb.home.dom/geneweb, on a la fenêtre suivante qui nous permettra d'accéder facilement à nos deux services "gwsetup" et "gwd".

LINUX:Geneweb.start.png


Configurer le mur de feu ou FireWall

Outre le port TCP 80 pour HTTP et éventuellement le port TCP 443 pour HTTPS, il faut ouvrir les ports TCP 2316 pour le service "dwsetup" et 2317 pour le service "gwd". Ces ports sont ceux par défaut. Il est possible de les changer mais dans la mesure du possible, gardez-les.

Nous devons ajouter les règles suivantes au service Iptables dans le fichier "/etc/sysconfig/iptables":


-A INPUT -p tcp -m tcp --dport 2316 -s 192.168.1.2    -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2317 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT

Nous avons ouvert le service "gwd" (port: 2317) à tout notre LAN privé mais nous avons restreint l'accès au service "gwsetup" (port: 2316) au seul PC sensé le gérer ayant l'adresse IP "192.168.1.2". A adapter selon vos besoins.

Il ne faut pas oublier de relancer le service Iptables pour que ces règles soient effectives:

systemctl restart iptables.service


Configuration de GwSetup

Help

Le programme se trouve dans le répertoire "/web/geneweb/gw". En lançant la commande suivante dans ce répertoire:

gwsetup --help

on obtient la liste des paramètres et leur syntaxe. Grace à eux nous allons pouvoir créer le service.


Fichier de configuration

Dans le répertoire "/web/geneweb/gw", il faut adapter le fichier "only.txt". Il contient l'adresse IP de la machine qui pourra utiliser ce service. Par défaut, c'est la machine serveur locale ("127.0.0.1").

On la remplace par l'adresse IP reprise dans la règle d'Iptables.


192.168.1.2

C'est une seconde protection.


Création du service

Il est possible de lancer le service interactivement. Mais il est plus pratique de passer par un service géré par Systemd.

Dans le répertoire "/etc/systemd/system", on crée le fichier "gwsetup.service" dont voici le contenu:


[Unit]
Description=Geneweb - Configuration
 
[Service]
Type=forking
ExecStart=/web/geneweb/gw/gwsetup -daemon -lang fr -gd /web/geneweb/gw
WorkingDirectory=/web/geneweb/bases
User=apache
Group=apache
 
[Install]
WantedBy=multi-user.target

On remarque que ce programme s'exécute dans le sous-répertoire "/web/geneweb/bases". C'est là que se situeront les bases de données généalogiques.

Alors que les programmes se trouvent dans le sous-répertoire "/web/geneweb/gw".

Le programme s'exécute en tant que "daemon" et c'est la langue française qui a été choisie.


Il faut actualiser les paramètres de Systemd car on vient d'y ajouter un fichier de paramètre:

systemctl daemon-reload

Ensuite on active le lance ce service nouvellement créé:

systemctl enable gwsetup.service
systemctl start gwsetup.service

On peut vérifier du bon état du service:

systemctl status gwsetup.service


Avec la commande:

ps axf

on y trouve le programme lancé:


1225873 ?        SN     0:00 /web/geneweb/gw/gwd -daemon -lang fr -hd /web/geneweb/gw


De même, la commande:

netstat -nltp | grep 2316

affiche le port TCP lié:


tcp        0      0 0.0.0.0:2316            0.0.0.0:*               LISTEN      1225868/gwsetup


Interface Web

Dès on peut accéder à ce service en cliquant sur l'entrée du menu correspondante dans la fenêtre Web présentée en premier (START.htm). On a la fenêtre suivante:

LINUX:Geneweb.gwsetup.png


Configuration de GwD

Help

Le programme se trouve dans le répertoire "/web/geneweb/gw". En lançant la commande suivante dans ce répertoire:

gwd --help

on obtient la liste des paramètres et leur syntaxe. Grace à eux nous allons pouvoir créer le service.


Création du service

Il est possible de lancer le service interactivement. Mais il est plus pratique de passer par un service géré par Systemd.

Dans le répertoire "/etc/systemd/system", on crée le fichier "gwd.service" dont voici le contenu:


[Unit]
Description=Geneweb - Arborescence
 
[Service]
Type=forking
ExecStart=/web/geneweb/gw/gwd -daemon -lang fr -hd /web/geneweb/gw
WorkingDirectory=/web/geneweb/bases
User=apache
Group=apache
 
[Install]
WantedBy=multi-user.target

On remarque que ce programme s'exécute dans le sous-répertoire "/web/geneweb/bases". C'est là que se situeront les bases de données généalogiques.

Alors que les programmes se trouvent dans le sous-répertoire "/web/geneweb/gw".

Le programme s'exécute en tant que "daemon" et c'est la langue française qui a été choisie.


Il faut actualiser les paramètres de Systemd car on vient d'y ajouter un fichier de paramètre:

systemctl daemon-reload

Ensuite on active le lance ce service nouvellement créé:

systemctl enable gwd.service
systemctl start gwd.service

On peut vérifier du bon état du service:

systemctl status gwd.service


Avec la commande:

ps axf

on y trouve le programme lancé:


1225873 ?        SN     0:00 /web/geneweb/gw/gwd -daemon -lang fr -hd /web/geneweb/gw


De même, la commande:

netstat -nltp | grep 2317

affiche le port TCP lié:


tcp        0      0 0.0.0.0:2317            0.0.0.0:*               LISTEN      1225873/gwd


Interface Web

Dès on peut accéder à ce service en cliquant sur l'entrée du menu correspondante dans la fenêtre Web présentée en premier (START.htm). On a la fenêtre suivante:

LINUX:Geneweb.gwd.png


Création d'une base de données

Pour pouvoir aller plus loin dans l'écran ci-dessus; il nous faut une base de données généalogique. Nous allons utiliser pour cela le service "gwsetup" via son écran présenté en second.


Création à vide

La première façon est de créer une base vierge, vide. On utilise la troisième option "vide (gwc)" de la colonne de gauche au dessus sous la rubrique "Créer une généalogie".

Nous obtenons l'écran suivant.

LINUX:Geneweb.vide.png

Il suffit de donner un nom à la base de données. Ici son nom est "base". Ensuite on clique sur le bouton "Créer".


On remarque qu'un sous-répertoire "base.gwb" a été créé dans le répertoire "/web/geneweb/bases".


Importation

La seconde façon est d'importer un fichier de sauvegarde compatible d'un autre logiciel de généalogie. Nous utilisons le logiciel "Geneanet" publique sur le Net. A partir de celui-ci, nous avons effectué une sauvegarde. Nous avons obtenu le fichier "base.ged". Il est possible d'utiliser un autre format.

On utilise la première option "à partir d’un fichier GEDCOM (ged2gwb)" de la colonne de gauche au dessus sous la rubrique "Créer une généalogie".

Nous obtenons l'écran suivant.

LINUX:Geneweb.importation.png

Le fichier de données à importer, "base.ged" dans notre cas, doit être sur le serveur Linux. On le sélectionne en se déplaçant dans l'arborescence des fichiers de la machine Linux (première zone). Dans la seconde zone, on donne un nom à notre base de données. Nous avons donné le nom "debast". Si cette base existe déjà, elle sera écrasée après confirmation. On coche ensuite les options désirées et on valide en cliquant sur le bouton "OK" du bas.


On remarque qu'un sous-répertoire "debast.gwb" a été créé dans le répertoire "/web/geneweb/bases".

Maintenant que la base de données est créé, dans le troisième écran présenté ci-dessus, on peut introduire un nom de base de données pour accéder à notre généalogie.


Configuration

Avec chaque base de données est créé un fichier de configuration dans le répertoire "/web/geneweb/bases". Il porte le nom de la base avec l'extension ".gwf". Par exemple pour la base "debast", le fichier "debast.gwf" est créé et inclus nombre de paramètres prédéfinis.

On peu le modifier avec un éditeur de texte. Le fichier "/web/geneweb/gw/a.gwf" décrit les paramètres possibles. Dans notre cas, nous avons ajouté quelques-uns:


default_sosa_ref=Albert Ghislain.0 De Bast
default_image=yes

Le premier défini la personne de la base de l'arbre généalogique (Sosa 1).

Le second affiche une image par défaut pour la personne selon son sexe.


Aperçu de l'interface Généalogique

Maintenant que nous avons une base de données, on peut la visiter.

Quand on lance l'interface Web de Gwd (troisième écran vu ci-dessus), on peut introduire le nom de la base, par exemple "debast". On obtient cet écran.

LINUX:Geneweb.recherche.png

On y a introduit le nom d'une personne, par exemple "bogo". Et on valide par la touche "Enter". On a une liste des personnes ayant comme nom de famille "Bogo".

LINUX:Geneweb.liste.png

On clique sur une des personnes pour avoir le détail.

LINUX:Geneweb.bogo.png

La barre d'outils du dessus permet d'aller plus loin.


Sécuriser la base de données

Par défaut, tout le monde peut tout faire dans la base généalogique, ce qui ne pose par de problème s'il n'est accessible que par vous dans votre LAN privé.

Par contre si on l'ouvre à plusieurs personnes ou sur Internet, il devient nécessaire de la protéger.


Groupes d'utilisateurs

Il existe trois sortes d'utilisateurs:

  • les visiteurs qui ne peuvent rien modifier et n'ont accès qu'à la partie publique
  • les amis qui ont accès à tout mais ne peuvent rien modifier
  • les magiciens qui ont un accès total sans limites

Nous allons décrire quelques unes des différentes possibilités.


Création des utilisateurs

Le groupe "visiteurs" n'a pas besoin de configuration car il regroupe l'ensemble des autres utilisateurs.

Pour les deux autres groupes, on crée pour chacun un fichier dans le répertoire "/web/geneweb/bases". C'est un fichier texte où chaque ligne concerne un utilisateur. Cette ligne a le format de base:

<nom d'utilisateur>:<mot de passe>

par exemple:


Pierre:Bateau-Blanc
Baptiste:Boulle-et-Bill

Nous créons le fichier "ami.txt" pour le groupe des amis et le fichier "editeur.txt" pour le groupe des magiciens.

Maintenant nous ajoutons dans le fichier de configuration de la base de données, par exemple "debast.gwf", les deux lignes suivantes:


friend_passwd_file=ami.txt
wizard_passwd_file=editeur.txt


Activer la vie privée

Depuis quelques années a été introduite le règlement général de protection des données (RGPD).

Pour l'activer, nous ajoutons dans le fichier de configuration de la base de données, par exemple "debast.gwf", les deux lignes suivantes:


private_years=100
hide_private_names=yes

Avec ces deux paramètres, les visiteurs ne pourront pas voir les informations pour toute personne ayant des dates (naissance-mariage-décès) comprises dans les 100 dernières années. En 2023, les visiteurs ne verront que les personnes au delà de 1923. Entre 1924 et 2023, ils ne verront que des "X X".


Aperçu

Maintenant l'écran de départ possède en haut à droite deux boutons de connexion et le nom du Sosa 1 n'est pas affiché.

LINUX:Geneweb.securise.png

Pour avoir plus de possibilités, il faut s'authentifier sinon on est considéré comme un visiteur.


Exclusion des visiteurs

On peut aller plus loin en exigeant une authentification. Les visiteurs n'auront aucun accès.

il nous faut ajouter dans le fichier de configuration de la base de données, par exemple "debast.gwf", les lignes suivantes:


visitor_access=no
visitor_access_msg_en=Access to the base is restricted to wizard and friends.
visitor_access_msg_fr=L'accès est limité aux amis.

Les lignes deux et trois permettent d'afficher un message d'avertissement personnalisé, la deuxième en anglais ("en") et la troisième en français ("fr"). On peut ajouter des messages pour les autres langues. Elles sont facultatives.

L'écran d'accueil devient alors:

LINUX:Geneweb.connect.strict.png





retour au menu du serveur Web