Installation de lâapplication en local¶
Environnement de développement¶
Prérequis¶
docker & docker-compose
python 3.12
node 20
gdal (librairie nĂ©cessaire Ă lâutilisation de GeoDjango)
Installer et configurer le client Scaleway en suivant les instructions de Scaleway
Installer et configurer le client Scalingo en suivant les instructions de Scalingo
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