Guide d’installation de TerriSTORY¶
Guide d’installation de TerriSTORY pour une machine Linux, ici avec l’OS Ubuntu 22.04.2. Ce guide décrit l’installation complète d’un environnement de développement local.
Téléchargement du projet TerriSTORY¶
Le projet TerriSTORY® est partagé en ligne sur un dépôt GitLab. La première étape est de télécharger ce projet en local.
Si git n’est pas installé, l’installer :
sudo apt install git
Cloner le dépôt Gitlab du projet vers un dossier local (par exemple dans /home/<user>
) :
git clone https://gitlab.com/terristory/terristory.git
Installation de la base de données¶
Le projet utilise une base de donnée PostgreSQL avec PostGIS pour les données géographiques.
Installer PostgreSQL et PostGIS :
sudo apt install postgresql-12-postgis-3
sudo apt install postgis
Par défaut l’utilisateur postgres n’a pas de mot de passe. Dans l’invite de commande Postgres (accessible avec la commandepsql
), ajouter un mot de passe :
ALTER USER postgres PASSWORD 'myPassword';
Création de la base de données depuis une archive¶
Si vous avez à disposition une archive d’une base de données existante obtenue via la commande pg_dump
, basculer sur l’utilisateur postgres
et créer la nouvelle base de donnée « api
» à partir de cette archive :
sudo -i -u postgres
pg_restore -U postgres -C -d api < [path to archive]
Création de la base de données depuis les fixtures¶
Si jamais vous n’avez pas accès à une archive d’une base de données, vous pouvez utiliser les fixtures prévues dans le projet pour créer une base de données partielle remplie de données aléatoires.
La création de cette base de donnée suppose l’existence d’un utilisateur « terristory ». Pour créer cet utilisateur :
sudo -u postgres createuser -e terristory
Se placer ensuite dans le dossier terristory/terriapi/fixtures
et exécuter les commandes suivantes pour créer une base de données fixture et sa structure :
psql -h localhost -U postgres < init.sql
psql -d fixture -h localhost -U postgres < public.sql
psql -d fixture -h localhost -U postgres < meta.sql
psql -d fixture -h localhost -U postgres < table_passage.sql
psql -d fixture -h localhost -U postgres < consultations.sql
psql -d fixture -h localhost -U postgres < strategie_territoire.sql
psql -d fixture -h localhost -U postgres < auvergne_rhone_alpes_station_mesure.sql
psql -d fixture -h localhost -U postgres < auvergne_rhone_alpes.sql
psql -d fixture -h localhost -U postgres < auvergne_rhone_alpes_poi.sql
psql -d fixture -h localhost -U postgres < static_fixtures.sql
psql -d fixture -h localhost -U postgres < boundaries_cities.sql
Un script Python import_fixtures.py
permet de peupler cette base de données avec des données aléatoires. L’exécution de ce script doit se faire depuis l’environnement virtuel Python de terriSTORY créé dans la partie « Installation de l’API ».
Se placer dans terristory/terriapi/fixtures
avec l’environnement activé et lancer le script :
python import_fixtures.py
Installation de Postile¶
Avertissement
Attention : l’image Docker oslandia/postile
n’est plus maintenue. Une version maintenue à jour pour Terristory est accessible ici et son utilisation (décrite sur le dépot) est préférable à la version explicitée dans cette section.
Docker est utilisé pour Postile, l’application développée par Oslandia qui affiche les tuiles OSM et les géométries des territoires.
Pour installer Docker, suivre les instructions d’installation de la documentation ici.
Optionnellement compléter l’installation en ajoutant l’utilisateur Linux au groupe docker en suivant les instructions ici.
Télécharger l’image Postile et lancer le container avec la commande suivante en adaptant le nom et les identifiants de la base de données :
docker run --net host oslandia/postile postile --pguser postgres --pgpassword myPassword --pgdatabase api --pghost localhost --pgport 5432 --listen-port 8081 --cors
Installation de l’API¶
Installation de l’environnement Python¶
L’API de Terristory utilise Python 3.8 qui n’est pas forcément la version de base du système d’exploitation. Si nécessaire, il faut donc installer cette version de Python :
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.8
sudo apt install python3.8-venv
Créer un environnement virtuel Python 3.8 pour TerriSTORY, par exemple dans /home/<user>
:
python3.8 -m venv env_terristory
Activer l’environnement :
. ~/env_terristory/bin/activate
Avec l’environnement activé, installer l’ensemble des dépendances Python pour le projet (avec le paramètre .[dev] pour installer également les dépendances spécifiques à l’environnement de développement) :
cd ~/terristory/terriapi
pip install -e .[dev]
Configuration de l’API¶
Un fichier de configuration terriapi.ini.sample
dans terristory/terriapi/terriapi
est à recopier en terriapi.ini
et à compléter. Ce fichier contient tous les paramètres nécessaires pour que l’API et ses scripts fonctionnent (accès à la base de donnée, envoi de mail…).
Dans ce fichier terriapi.ini
, configurer les informations relatives à la base de données créée précédemment :
pg_name = api
pg_user = postgres
pg_password = myPassword
Renseigner des chemins pour les différents dossiers et les créer si nécessaire. Par exemple :
upload=/home/<user>/terriStory/uploads/
upload_other_files=/home/<user>/uploads/files/
changelog_path=/home/<user>/terristory/
pcaet_path=/home/<user>/terristory/terriapi/terriapi/controller/temp_pcaet/
chemin_telechargement_donnees_shp=/home/<user>/terristory/terriapi/terriapi/data/donnees_ign/
upload_methodo=/home/<user>/terristory/front/public/pdf/
upload_icones_svg=/home/<user>/terristory/front/public/svg/
img_logo_source_fiches=/home/<user>/terristory/front/public/img/logo_source_fiches/
img_pop_up_accueil_path=/home/<user>/terristorry/front/public/img/img_carousel/
Les icones .svg et les pdfs méthodologiques doivent être placés dans les dossiers définis par upload_icones_svg
et upload_methodo
. Pour ne pas interférer avec le rechargement automatique du front en mode développement, il est préférable de stocker ces documents dans un autre dossier et de les ajouter dans les dossiers upload_icone_svg
et upload_methodo
via des liens symboliques :
ln -s [Source_File_Path] [Symbolic_Link_Path]
De la sorte, les icônes et PDFs restent accessibles depuis la version locale (car présents dans l’architecture du front via les liens symboliques) sans conduire à des rechargements intempestifs de l’application lorsqu’un fichier est modifié (par exemple, lors de la création d’équipements). Cela est dû à la configuration suivante dans webpack.config.dev.js
: followSymlinks: false
.
Vérification de l’installation du backend¶
Vérifier l’installation en lançant l’API :
terriapi-serve --cors
Pour pouvoir utiliser le système de rechargement automatique pour le développement il faut être en mode debug (debug = true
dans terriapi.ini
) et lancer l’API avec :
terriapi-serve --cors --reload
L’ensemble des autres commandes liées à l’API (chargement de données, créations d’utilisateurs, tests…) est documentée dans le README de l’API.
Installation du front¶
Installer nodejs et le gestionnaire de paquets npm:
sudo apt install nodejs npm
En se plaçant dansterristory/front
, installer l’ensemble des dépendances pour le front :
npm install
Configuration¶
Faire une copie du fichier de configuration locale terristory/front/src/settings-local.js.sample
et le renommer settings-local.js
.
Ce fichier définit une configuration pour le développement local et offre des paramètres qui facilitent le développement. Le paramètre HIDE_SPLASH_SCREEN
par exemple permet de ne pas afficher la fenêtre d’accueil à chaque chargement. Le paramètre DEFAULT_REGION
permet de définir une région par défaut pour ne pas avoir à resélectionner une région à chaque fois.
Vérification de l’installation du front¶
Pour vérifier l’installation, se placer dans terristory/front
et lancer le front avec :
npm start
TerriSTORY est alors accessible depuis le navigateur à l’adresse http://localhost:3000/.
Ressources complémentaires¶
L’environnement de développement local est désormais installé. Il est conseillé de parcourir le reste de la documentation pour en apprendre plus sur l’application TerriSTORY et son fonctionnement. Notamment, la notice de contribution donne des informations sur les bonnes pratiques et les conventions à suivre pour contribuer au développement de l’application, et la page « Tester votre version de l’application » explique comment configurer et lancer les tests de l’API et du front.