Aller au contenu

Installation locale

Cette section décrit comment installer Insitu sur un poste de travail, à des fins de développement.

Pré-requis

  • Python 3.9 ou plus récent

    Version de Python

    La version de Python de référence pour Insitu est actuellement la 3.9. Les versions 3.10 et 3.11 devraient fonctionner mais ont moins été testées. La version 3.12 semble poser des problèmes avec certaines dépendances et n’est donc pas recommandée pour l’instant.

    pyenv / pythonz

    Si vous utilisez un outil comme pyenv ou pythonz pour installer Python, veillez à d’abord installer les paquets libffi-dev et libbz2-dev(ou leurs équivalents sur votre système), car ils sont nécessaires à la compilation de certains modules importants de la bibliothèque standard.

  • PostgreSQL avec l’extension PostGIS

  • Talisman : pre-commit hook installé au niveau global : https://thoughtworks.github.io/talisman/docs/installation/global-hook/

Création d’un environnement virtuel Python

Commencez par créer un environnement virtuel Python 3.9.

Par exemple, si vous utilisez virtualenvwrapper, la commande est :

mkvirtualenv --python=python3.9 insitu

Installation des dépendances Python

Ensuite, dans cet votre environnement virtuel, vous pouvez installer les dépendances avec :

make develop

Création d’une base de données PostgreSQL

Info

Les instructions suivantes devraient fonctionner sur une distribution Linux de type Debian ou Ubuntu.

La manière de créer une base de données dépend de votre système d’exploitation et de la manière dont est installé et configuré le serveur PostgreSQL.

Commencez par ouvrir le shell PostgreSQL :

sudo -i -u postgres
psql

Une fois connecté, créez d’abord un utilisateur insitu avec un mot de passe de votre choix :

CREATE USER insitu;
ALTER USER insitu WITH PASSWORD `mon_mot_de_passe_8Cm&J6@kT7EmGsYs`;

Puis créez une base de données insitu associée à cet utilisateur :

CREATE DATABASE insitu WITH OWNER insitu;

Activez ensuite l’extension PostGIS pour cette base de données :

\c insitu
CREATE EXTENSION postgis;

Installation des définitions

Pour qu’insitu fonctionne, il a besoin de fichiers de définitions décrivant les jeux de données et les indicateurs.

Par exemple, dans le contexte de l’ANCT, vous pouvez cloner dans un autre répertoire le dépôt https://gitlab.donnees.incubateur.anct.gouv.fr/infrastructure/flux-de-donnees-anct/.

Configuration

La configuration d’Insitu se fait au moyen de variables d’environnement dont le nom commence par INSITU_.

Vous pouvez copier le fichier .env.example qui servira de modèle :

cp .env.example .env

Puis ouvrez-le avec votre éditeur favori et modifiez les valeurs, notamment le mot de passe de connexion à la base de données et les chemins vers les fichiers de configuration des jeux de données et des indicateurs.

Vous pouvez maintenant initialiser les variables d’environnement :

source .env

Initialisation

Vous pouvez maintenant initialiser la base de données et ajouter les jeux de données et indicateurs contenus dans votre répertoire de configuration avec :

make bootstrap

Avant la première contribution

Activier le git hooks framework pre-commit afin de faire des vérifications automatiques avant chaque commit sur ce projet.

pre-commit install -f

La configuration du pre-commit se trouve dans le fichier .pre-commit-config.yaml