Installation sous Ubuntu
- jbgury
- 22 Octobre 2020
-
-
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
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.
Télécharger l'archive de la branche en utilisant le lien suivant :
https://github.com/libreosteo/LibreOsteo/archive/refs/heads/master.zip
Vous pouvez lancer le téléchargement avec :
wget -c https://github.com/libreosteo/LibreOsteo/archive/refs/heads/master.zip && unzip master.zip
Les sources sont alors décompressés dans LibreOsteo-master
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-master
virtualenv --python /usr/bin/python3 venv
Un nouveau dossier venv a été créé dans LibreOsteo-master pour contenir les futures dépendances.
Basculer dans cet environnement isolé en effectuant :
venv/bin/activate
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
Puis installer les dépendances Javascript nécessaire en exécutant : yarn
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
python ./manage.py compilejsi18n
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-master 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