Table des matières

Service benevalibre.chapril.org

Introduction

Installation des pré-requis

apt install libapache2-mod-wsgi-py3 python3 virtualenv git make

Le backend mariadb imposée par cette version de django nécessite pas mal de dépendances de dev (le connecteur version debian n'étant pas assez récent).

apt install build-essential python3-dev libmariadb-dev

Préparation de la DB

CREATE DATABASE benevalibre ;
CREATE USER 'benevalibre' IDENTIFIED BY 'xxxxxxxxx';
GRANT ALL PRIVILEGES ON `benevalibre`.* TO 'benevalibre' IDENTIFIED BY 'xxxxxxxxx';

Préparation des dossiers

mkdir /srv/benevalibre.chapril.org
cd /srv/benevalibre.chapril.org
mkdir /var/www/benevalibre.chapril.org
ln -s /var/www/benevalibre.chapril.org www
cd www/

Installation de bénévalibre

git clone https://forge.cliss21.org/cliss21/benevalibre.git
cd benevalibre
git checkout master

On doit installer le connecteur sql donc on procède en deux temps.

make venv
venv/bin/pip install mysqlclient
make init

Durant le make init un éditeur s'ouvre pour qu'on fasse la configuration de l'appli. Je retiens ceci :

config.env
ENV=production
DJANGO_SECRET_KEY=s3cr3t
DJANGO_ALLOWED_HOSTS=benevalibre.chapril.org,
DJANGO_DATABASE_URL=mysql://benevalibre:xxxxxxxxxx@127.0.0.1:3306/benevalibre
DEFAULT_FROM_EMAIL=benevalibre@chapril.org
ADMINS=benevalibre-support@chapril.org

Le make init se charge de :

Mise à jour de bénévalibre

git pull && make update

ou

cd /var/www/benevalibre.chapril.org/benevalibre
git fetch --all
git rebase origin/master
make update
chown www-data: . -R   # bienvenue car on travaille en root et pas en www-data...

Configuration apache2

On adapte la conf nginx fournie par le README.md en suivant la logique documentée pour un projet Django:

/etc/apache2/sites-available/benevalibre.chapril.org.conf
<VirtualHost *:80>
    ServerName benevalibre.chapril.org
    ServerAdmin benevalibre-support@chapril.org
 
    ErrorLog ${APACHE_LOG_DIR}/benevalibre.chapril.org/benevalibre.chapril.org-error.log
    CustomLog ${APACHE_LOG_DIR}/benevalibre.chapril.org/benevalibre.chapril.org-access.log combined-proxy
 
    WSGIProcessGroup benevalibre
    WSGIDaemonProcess benevalibre python-home=/var/www/benevalibre.chapril.org/benevalibre/venv/ python-path=/var/www/benevalibre.chapril.org/benevalibre/
 
    WSGIScriptAlias / /var/www/benevalibre.chapril.org/benevalibre/benevalibre/wsgi.py process-group=benevalibre
 
    <Directory /var/www/benevalibre.chapril.org/benevalibre/benevalibre/>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
 
    Alias /static/ /var/www/benevalibre.chapril.org/benevalibre/var/static/
 
    <Directory /var/www/benevalibre.chapril.org/benevalibre/var/static/>
        Require all granted
    </Directory>
 
    Alias /media/ /var/www/benevalibre.chapril.org/benevalibre/var/media/
 
    <Directory /var/www/benevalibre.chapril.org/benevalibre/var/media/>
        Require all granted
    </Directory>
 
    Alias /favicon.ico /var/www/benevalibre.chapril.org/benevalibre/var/static/favicon/favicon.ico
</VirtualHost>

Configuration monitoring

/etc/icinga2/zones.d/master/cluster/lamp.conf
/* == benevalibre.chapril.org == */
vars.http_vhosts["benevalibre.chapril.org"] = {
  http_vhost = "benevalibre.chapril.org"
  http_uri = "/"
  vhost_tls = "redirect"
  http_string = "Le logiciel libre qui facilite la gestion et la valorisation du bénévolat dans les associations."
}

Tester l'envoi de courriels

cd /var/www/benevalibre.chapril.org/benevalibre
./venv/bin/python manage.py sendtestemail benevalibre-support@chapril.org

Personnaliser la présentation du logiciel

Fait via le dossier local/ tel qu'indiqué dans le README du projet.

Création d'un utilisateur admin

=(^-^)=root@lamp:~# su - www-data -s /bin/bash

www-data@lamp:~$ cd /var/www/benevalibre.chapril.org/benevalibre/

www-data@lamp:~/benevalibre.chapril.org/benevalibre$ ./venv/bin/python manage.py createsuperuser
Adresse mail: benevalibre-support@chapril.org
Password: 
Password (again): 
Superuser created successfully.

Puis :