Installation via Docker
Ce document décrit l'installation complète de l'application avec Docker et Docker Compose.
Pré-requis
Machine Linux avec Docker, ou Windows avec Docker installé au sein du WSL, cf. Commencez avec les conteneurs distants Docker sur WSL 2.
Configuration
$ cp .env.db.example .env.db
$ cp .env.production.local.example .env.production.local
Modifiez le fichier .env.db afin de renseigner un mot de passe pour la base PostgreSQL.
Ensuite, modifiez le fichier .env.production.local :
Connexion à la base de données
Pour Docker, utilisez les paramètres suivants :
DB_HOST=db
DB_PORT=5432
DB_NAME=postgres
DB_USER=postgres
DB_PASS=$POSTGRES_PASSWORD
DB_SCHEMA=lebontag
DB_SRID=4326
Authentification
- AUTH_URL : URL de l'application
- AUTH_TRUST_HOST=true : ne pas modifier
- AUTH_DEBUG : mode de débogage
- AUTH_SECRET : hash unique de l'installation. Utilisez
openssl rand -hex 32pour en générer un.
Enfin vous devez configurer au moins 1 fournisseur d'authentification externe. Consultez les URL de chacun indiquées dans le fichier.
- AUTH_XXX_ID : ID du fournisseur d'authentification XXX
- AUTH_XXX_SECRET : Secret du fournisseur d'authentification XXX
Des fournisseurs supplémentaires peuvent être ajoutés dans le fichier /src/auth.ts (avancé).
Réplication
Spécifiez l'URL des données OSM à télécharger et celle de la réplication par minute de ces données sur download.openstreetmap.fr, par exemple :
OSM_DATA_URL=https://download.openstreetmap.fr/extracts/europe/switzerland/geneva.osm.pbf
OSM_REPL_SERVER_URL=https://download.openstreetmap.fr/replication/europe/switzerland/geneva/minute/
Construction des images de conteneur Docker
$ docker compose build
Démarrage de l'application
$ docker compose up -d
Premier chargement des données OSM
$ docker compose up initializer
Premier utilisateur
Connectez-vous à l'application avec le service d'authentification préalablement configuré.
Pour faire de ce premier utilisateur un administrateur (après sa connexion), exécutez :
$ docker compose up make-first-user-admin
Journalisation
- /log/lbt-autovalidation : objets OSM auto-validés
- /log/lbt-fetch : récupération des objets OSM modifiés
- /log/lbt-footprints-intersection : intersection entre objets modifiés et emprises
- /log/lbt-load-data : chargement des données de référence
- /log/lbt-update-db-by-osc : mise à jour de la base de données par les objets validés
Variante pour le développement
L'application web peut-être démarrée en mode "développement", afin de bénéficier du hot reload. Pour ce faire :
$ cp .env.development.local.example .env.development.local
Puis modifiez le fichier .env.development.local afin de renseigner les différentes variables d'environnement.
Démarrez l'application par la commande suivante :
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
[!note] Pour l'instant, les composants en langage Python, qui réalisent les tâches de traitement des données, ne bénéficient pas du hot reload.