Garradin

Centos7 - Installation de GARRADIN

 

SOMMAIRE

A - Installation

B - Paramètrage

C - Adaptation du logiciel

D - Passer Garradin en HTTPS

E - Mise à jour de Garradin

 

Garradin est une application Web qui permet de gérer la comptabilité d'une association. L'application Web gère la comptabilité et les adhérents. Elle dispose aussi d'un wiki et d'un petit éditeur de pages web. Le produit est utilisable en ligne sur internet mais il peut aussi être installé sur un serveur privé. C'est l'option prise pour ce tutoriel.

Garradin sera installé dans la home directory de l'utilisateur en tant que virtualhost. Voir le paragraphe : Apache : Espace web privé (userdir). L'application utilise une base de données sqlite3.

Version installée au 02/11/2018 : garradin-0.9.0 du 27 octobre 2018
avec PHP : 7.1.23, SQLITE : 3.7.17, HTTPD : 2.4.6.

 

A - Installation

Téléchargement et décompression

On se positionne à la racine de l'espace web de l'utilisateur, on télécharge Garradin, on le décompresse puis on supprime le fichier téléchargé.

# cd /home/user1/public_html
# wget https://fossil.kd2.org/garradin/uv/garradin-0.9.0.tar.bz2
# tar xjf garradin-0.9.0.tar.bz2
# rm -f garradin-0.9.0.tar.bz2

Mise en place des fichiers

L'application sera installée dans la home directory de l'utilisateur, à la racine du site ( /home/user1/public_html/ ). Pour celà on déplace tous les fichiers qui figurent dans le répertoire garradin-0.9.0 créé par la décompression (tous les fichiers même les fichiers cachés -> .htaccess) à la racine du site web puis on supprime le répertoire garradin-0.9.0.

# mv garradin-0.9.0/* ./
# mv garradin-0.9.0/.h* ./
# rmdir garradin-0.9.0

Mise en place des droits sur les répertoires

Le répertoire "cache" doit être en "rwxrwxrwx" et Garradin doit pouvoir écrire via apache dans les autres répertoires et dans le fichier error.log.

# chmod 777 cache
# chmod 774 plugins
# chmod 770 www/squelettes
# touch error.log
# chmod ug=rw,o= error.log

Création des dépendances

# make deps

Affectation au propriétaire de la home directory

Vu que Garradin est installé dans la home directory de l'utilisateur, il faut donner la propriété des fichiers à l'utilisateur (user1) puis ajouter apache au groupe user1.

# chown -R user1:user1 ./
# gpasswd -a apache user1

Création du fichier de configuration local

Garradin créé le fichier de configuration locale mais si on le cré pour lui c'est encore mieux.

# touch config.local.php
# chmod 660 config.local.php

Paramètrage Selinux

"Chcon" modifie le contexte de façon temporaire. Pour fixer le contexte de façon permanente, il faudra utiliser "semanage". Ici, on donne le droit à apache de lire le contenu du répertoire de l'utilisateur, celui de lire et d'écrire sur le cache, sur le répertoire squelettes et sur le fichier error.log.

# chcon -R -t httpd_sys_content_t .
# chcon -R -t httpd_sys_rw_content_t cache
# chcon -R -t httpd_sys_rw_content_t www/squelettes
# chcon -t httpd_sys_rw_content_t error.log

Création du virtualhost
désactiver les options Indexes et Multiviews

Sur le serveur Web, il faut créer le fichier de configuration dans le répertoire /etc/httpd/conf.d/ et ajouter les lignes après "->" en adaptant l'adresse IP, l'utilisateur et le nom de domaine. Ne pas oublier de relancer le serveur apache.

# touch /etc/httpd/conf.d/garradin.conf
# vi /etc/httpd/conf.d/garradin.conf
->
# Garradin - Comptabilite - Production
# --------------------------------------------
<VirtualHost 192.168.1.233:80>
        ServerName www. garradin.vhost.fr
        ServerAlias garradin.vhost.fr

        DocumentRoot /home/user1/public_html/www/
        <Directory /home/user1/public_html/www/>
                Options FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        Errorlog /var/log/httpd/garradin.log
        LogLevel warn
</VirtualHost>

# systemctl restart httpd

 

B - Paramètrage de Garradin

Répertoires et fichiers modifiés à l'installation

A la racine du site web, l'installation crée :
- le fichier de base de données : association.sqlite
- le fichier de configuration locale : config.local.php qui contient les paramètres locaux et notamment la clé de session
- le fichier d'erreur : error.log

Dans le répertoire cache,
- le répertoire compiled
- le répertoire static

Interface applicative d'installation

A partir d'un navigateur, http:// garradin.vhost.fr

Garradin - Installation - Section1

 

Garradin - Installation- Section2

 

Garradin - Page de connexion

C - Adaptation du logiciel

Une fois le logiciel installé, il convient :

1°) de mettre en place les catégories de membres

Garradin - Catégories de membres

2°) de mettre en place la cotisation annuelle

Garradin - Cotisation annuelle

3°) de saisir les éléments bancaires

Garradin - Référence bancaires

4°) de configurer la fiche de membres

Garradin - Fiche de membre - section 1

 

e-mail : désactiver champ obligatoire

Téléphone : modifier l'intitulé -> Téléphone fixe
Ajouter le champs tel_portable et repositionner ce champs derrière téléphone fixe
Ajouter le champs prédéfini note et le rendre modifiable par les membres

5°) de saisir les données des membres ou d'importer la liste des membres (si disponible au format excel)

Si vous disposez d'une ancienne version de Microsoft Excel (2003/2007/2010 ?), l'import des données pose problème pour les caractères accentués. En effet, Garradin ignore les cellules qui en comportent. Pour remédier à ce problème, il est préférable d'utiliser LibreOffice qui permet de formater les données selon le codage UTF-8.

D - Passer Garradin en HTTPS

Prés-requis :
Disposer d'un certificat installé sur le serveur Web pour le domaine considéré (pour moi, le domaine = garradin.vhost.fr).
Activer le flux HTTPS via le reverse proxy Apache.

Dans cette configuration, les flux sont chiffrés entre l'utilisateur et le reverse proxy, ce qui est suffisant pour sécuriser les accès via Internet. Derrière le reverse proxy, les flux transitent en clair sur le réseau local.

1°) Modifier le fichier de configuration

Se placer à la racine du site, dans le répertoire root du serveur web où est installé Garradin et ajouter les 2 lignes suivantes au fichier de configuration local.

# vi /home/user1/public_html/config.local.php
->
const PREFER_HTTPS = 3;
const WWW_URL = 'https://garradin.vhost.fr/';

Ajouter les 2 lignes suivantes au fichier .htaccess

# vi /home/user1/public_html/.htaccess
->
  SetEnv HTTPS "on"
  SetEnv HTTP_X_FORWARDED_PROTO "https"

Test du bon fonctionnement.

Dans la barre de navigation de votre navigateur saisissez : https://garradin.vhost.fr
Votre navigation devrait maintenant être protégée (apparition du cadena vert devant l'URL du site et sur la page administration, en regard du champ "Mot de passe".

 

E - Mise à jour de Garradin

Prérequis :
Créer un nouveau virtualHost au niveau du reverse proxy
Télécharger la dernière version stable.

# wget https://fossil.kd2.org/garradin/uv/garradin-0.9.0.tar.bz2

Effectuer une installation classique dans un nouveau virtualhost en suivant la procédure "A-installation" ci-dessus. L'utilisation d'un nouveau virtualhost permet de conserver intacte l'ancienne version, ce qui a pour avantage d'être en capacité de revenir à l'ancienne version si la migration à la nouvelle version se passe mal. Pour ma part, j'utilise 2 virtualHosts (le premier pour la production et le second pour effectuer des tests, former de nouveux utilisateurs, etc). A chaque mise à jour, je bascule de l'un sur l'autre.

Copier la base de données de la version précédente.

# cp /home/user1/public_html/association.sqlite /home/user2/public_html/
# chown user2:user2 association.sqlite

Restreindre l'accès à la base de données

# chmod o=-r association.sqlite

Copier les fichiers du site web si vous utilisez cette fonctionnalité

# cp /home/user1/public_html/www/squelettes/* /home/user2/public_html/www/squelettes/
# chown -R user2:user2 /home/user2/public_html/www/squelettes/*

Au niveau du reverse proxy, modifier le pointeur de sous-domaine pour qu'il corresponde au nouveau sous-domaine

 

Lancer l'interface web de Garradin pour qu'il convertisse la base de données

Dans votre navigateur, saisissez https://garradin.vhost.fr

Lorsque la base est convertie, il est possible de supprimer le fichier "association.pre-upgrade-0.9.0.sqlite" qui a été créé par garradin.

# rm -f  association.pre-upgrade-0.9.0.sqlite

Testez le bon fonctionnement de la mise à jour.

Si necessaire, supprimer l'ancien répertoire lorsque tous les tests sont corrects.

 

° - °° - °