Installation de l’application en local¶

Environnement de développement¶

Prérequis¶

Conseil: utiliser asdf ou mise pour la gestion des environnements virtuel node et python

⚠ L’accĂšs Ă  la plateforme Scaleway est nĂ©cessaire pour exĂ©cuter la copie de la base de donnĂ©es de production en local

SpĂ©cificitĂ© d’installation pour les processeurs Mx de Mac¶

https://gist.github.com/codingjoe/a31405952ec936beba99b059e665491e

Technologies¶

Cette liste est non-exhaustive.

Webapp:

  • Python

  • Django

  • Node

  • Typescript

  • Parcel

  • DSFR

  • Honcho

  • Whitnoise

  • Tailwind

  • nginx

Plateforme data :

  • Airflow

  • DBT

CI/CD:

  • Github

  • Dependabot

Administration:

  • Scalingo

  • Scaleway

  • Sentry

Dev tools:

  • Pytest

  • Playwright

  • Django-debug-toolbar

Provisionnement:

  • OpenTofu

  • Terragrunt

Installation rapide¶

la commande init-dev installe tout l’environnement Webapp et plateforme data

make init-dev

Lancement de la webapp et de la plateforme data¶

Modifier le fichier /etc/hosts, ajouter les lignes

127.0.0.1       lvao.ademe.local
127.0.0.1       quefairedemesdechets.ademe.local
127.0.0.1       quefairedemesobjets.ademe.local

Copier la base de données de prod

make db-restore

Lancer l’application

make run-all

la webapp est accessible à l’adresse quefairedemesobjets.ademe.local la plateforme data est accessible à l’adresse http://localhost:8080

Installation de la Webapp uniquement¶

Configuration¶

Modifier le fichier /etc/hosts, ajouter les lignes

127.0.0.1       lvao.ademe.local
127.0.0.1       quefairedemesdechets.ademe.local
127.0.0.1       quefairedemesobjets.ademe.local

Installation & Exécution¶

Configuration des variables d’environnement: ajouter (ou mettre à jour si existant)

cp .env.template .env

Modifier les variables dans le fichier .env si nécessaire

Générer les certificats utilisé par nginx

make init-certs

Les bases de données Postgres + Postgis sont executées et mises à disposition par le gestionnaire de conteneur Docker

Pour lancer uniquement les services utiliser par la webapp

docker compose  --profile lvao up -d

Installation des dépendances python et javascript

poetry env activate
poetry install --with dev,airflow
npm install

Migration

python manage.py migrate

Créer la table de cache

make createcachetable

Pour peupler la base de données webapp le plus simple est de copier la base de données de production, cf. Copier la base de données de prod en local

Sinon, utiliser la command de peuplement ci-dessous

make seed-database

Créer un superutilisatteur¶

Si vous n’en avez pas dĂ©jĂ  un

python manage.py createsuperuser

Lancement¶

make run-django

Honcho dĂ©marrera les containers Docker s’ils ne sont pas dĂ©jĂ  dĂ©marrĂ©s. Une fois les processus dĂ©marrĂ©s, le serveur web sera accessible Ă  l’adresse quefairedemesobjets.ademe.local, Ă©coutant sur le port 8000.

Tester l’application¶

Test python avec pytest

make unit-test
make integration-test

Test Js unitaire (DEPRECATED ?)

npm run test

End to end avec Playwright

make init-playwright
make e2e-test
make e2e-test-ui

Test d’accessibilitĂ©

make a11y

Installer les hooks de pre-commit¶

Pour installer les git hook de pre-commit, installer le package precommit et installer les hooks en executant pre-commit

pre-commit install

Installation de la plateforme DATA¶

Copier les variable d’environnement dags/.env.template vers dags/.env

cp dags/.env.template dags/.env

Lancer les containers docker avec docker compose:

docker compose --profile airflow up

docker compose lancera :

  • la base de donnĂ©es postgres nĂ©cessaire Ă  la webapp de la carte

  • la base de donnĂ©es postgres nĂ©cessaire Ă  Airflow

  • un webserver airflow

  • un scheduler airflow en mode LocalExecutor

accĂ©der Ă  l’interface d’Airflow en local http://localhost:8080 ; identifiant/mot de passe : airflow / airflow

Tester la plateforme Data¶

Test python avec pytest

make dags-test