Installation sous Ubuntu

Sous Linux, il existe de nombreuses façons d'installer et faire fonctionner Libreosteo. Nous allons les détailler ici.

Installation depuis les sources

C'est sans doute, la meilleure méthode d'installation pour comprendre le fonctionnement du logiciel. C'est aussi sur ce système libre qu'est développé Libreosteo.

Nous allons ici détailler l'installation sur Ubuntu 20.04.

Pour commencer, il nous faut installer les dépendances systèmes nécessaires à l'exécution de Libreosteo.

Il vous faudra ouvrir un terminal et saisir la commande

sudo apt install python3-pip python3-venv nodejs linux-headers-$(uname -r) curl git

package à installer ubuntu

confirmation des packages à installer

Lors de l'installation des packages mentionnés dans la commande d'autres dépendances sont nécessaires pour la bonne exécution du logiciel.

Avec Ubuntu 20.04 et les suivants, la version python utilisée est la version 3.8, il vous faudra utiliser le code le plus à jour de Libreosteo pour l'utiliser.

A ce jour, la branche dite "develop" est la branche de développement et est compatible pour python 3.8.

Télécharger l'archive de la branche en utilisant le lien suivant :

https://github.com/libreosteo/Libreosteo/archive/develop.zip

Vous pouvez lancer le téléchargement avec :

wget -c https://github.com/libreosteo/Libreosteo/archive/develop.zip && unzip develop.zip

Téléchargement des sources du logiciel

Les sources sont alors décompressés dans Libreosteo-develop.

Installer yarnpkg

yarn dans sa version récente contient un bug avec certains packages javascript. Il faudra donc utiliser une version antérieure...

curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.21.1

Comme indiqué en fin d'installation, il vous faut fermer le terminal et le réouvrir ou bien faire :

source ~/.profile

pour intégrer la mise à jour du PATH dans votre exécution de terminal.

Création d'un environnement virtualenv

Python permet d'isoler les dépendances nécessaires à Libreosteo dans un environnement dédié.

Nous allons le créer directement en utilisant les commandes suivantes :

cd Libreosteo-develop

virtualenv --python /usr/bin/python3 venv

Création de l'environnement virtualenv

Un nouveau dossier venv a été créé dans Libreosteo-develop pour contenir les futures dépendances.

Basculer dans cet environnement isolé en effectuant :

venv/bin/activate

Activation de l'environnement

Vous verrez le prompt changer pour inclure le nom de l'environnement et vous indiquer que vous êtes dans un contexte virtualenv.

A présent, lancer l'installation des dépendances python avec :

pip install -r requirements/requirements.txt

Installation des dépendances python

Puis installer les dépendances Javascript nécessaire en exécutant : yarn

Installation des dépendances Javascript

Une fois les dépendances Javascript téléchargées, il va falloir lancer la série de commande suivante :

Préparer la base de données

python ./manage.py migrate

Collecter les ressources javascript

python ./manage.py collectstatic --no-input

Fonctionnalité de complétion des codes postaux

python manage.py import_zipcodes

Abstraction sur la version

Pour pouvoir réaliser les mises à jour facilement, il est souhaitable d'utiliser des liens symboliques pour faire pointer "Libreosteo" sur la version à exécuter. Ici on fera alors :

ln -s Libreosteo-develop Libreosteo

Afin de faciliter le démarrage de Libreosteo, écrire un fichier dans /usr/bin/libreosteo le contenu suivant

Remplacer devops par votre nom d'utilisateur

#!/bin/bash
LIBREOSTEO_DIR=/home/devops/Libreosteo
cd ${LIBREOSTEO_DIR}
source venv/bin/activate
python ./server.py

A présent il vous suffit de taper libreosteo dans le terminal pour démarrer l'instance.

Service lancé au démarrage de la machine

Il vous faut créer le fichier suivant/etc/systemd/system/libreosteod.service

[Unit]
Description=Libreosteo service
After=network-online.target
 
[Service]
Type=simple
 
User=devops
Group=devops
UMask=007
 
ExecStart=/usr/bin/libreosteo
RemainAfterExit=yes
 
Restart=on-failure
 
# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300
 
[Install]
WantedBy=multi-user.target

Il vous faut activer le service

sudo systemctl enable libreosteod

Puis le démarrer :

sudo systemctl start libreosteod

A présent, le service Libreosteo démarre en même temps que votre machine !

Ouvrez alors votre navigateur à l'adresse suivante : http://localhost:8085