LINUX:GeneWeb

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

retour au menu Divers


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

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

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

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


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.





retour au menu Divers