Aller au contenu principal

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 32 pour 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.