LINUX:GeneWeb
But
GeneWeb est un programme serveur qui permet de gérer des arborescences généalogiques. Il est libre. 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".
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 [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:
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 [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:
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.
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 une 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.
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".
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.