Skip to content

Back-end pour Dora

License

Notifications You must be signed in to change notification settings

gip-inclusion/dora-back

Repository files navigation

dora-back

Pré-requis

Docker Compose

PostgreSQL, PostGIS, Minio et Redis peuvent être installés simplement avec Docker Compose.

Copier docker-compose.yml.template en docker-compose.yml.

Vous pouvez modifier docker-compose.yml à votre guise (ports, volumes, etc.).

Créer et démarrer les conteneurs :

docker compose up

Importer une sauvegarde de base de données anonymisée :

docker compose exec -T db psql dora -U POSTGRES_USER < dump-anon.sql

Utiliser psql :

docker compose exec db psql dora -U POSTGRES_USER

Accéder à pgAdmin 4 via http://localhost:8888/ en utilisant l'adresse e-mail et le mot de passe configurés par les variables d'environnement PGADMIN_DEFAULT_EMAIL et PGADMIN_DEFAULT_PASSWORD. Le nom d'hôte de la base de données est db.

Installation

  • Créer une base de données PostgresQL dora.
  • Copier le dossier envs-example et renommer le envs
  • Dans le fichier envs/dev.env, compléter la variable POSTGRES_USER.
  • Dans le fichier envs/secrets.env, compléter les variables POSTGRES_PASSWORD et DJANGO_SECRET_KEY.
# Installer les dépendances
pip install -r requirements/dev.txt

# Vérifier que tout fonctionne
./manage.py check

# Créer les tables de la base de données
./manage.py migrate

Problèmes avec GeoDjango

GeoDjango a besoin des packages GEOS et GDAL pour fonctionner.

Si Django n'arrive pas à trouver les librairies nécessaires, vous pourrez ajouter les variables d'environnement suivante à votre shell

export GDAL_LIBRARY_PATH=
export GEOS_LIBRARY_PATH=

Exemple sur Mac M1 avec gdal installé via homebrew :

export GDAL_LIBRARY_PATH="/opt/homebrew/opt/gdal/lib/libgdal.dylib"
export GEOS_LIBRARY_PATH="/opt/homebrew/opt/geos/lib/libgeos_c.dylib"

Pour en savoir plus :

Erreur on Mac M1

Sur un Mac M1 Silicon, vous pouvez rencontrer l'erreur suivante :

ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1

× Encountered error while trying to install package.
╰─> psycopg2-binary

Vous pouvez corriger ce souci en ajoutant les variables d'environnement suivante à votre shell :

export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/opt/openssl@3/lib/

Développement

Veillez à ce que la variable d'environnement DJANGO_SETTINGS_MODULE soit initialisée pour que le fichier de configuration de développement soit bien chargé.

export DJANGO_SETTINGS_MODULE=config.settings.dev
# Démarrer le serveur
./manage.py runserver

Contribution

# Installer les hooks de pre-commit:
pre-commit install

Le pre-commit du projet nécessite une installation locale sur le poste de dev de Talisman (en remplacement de GGShield). Voir la procédure d'installation.

About

Back-end pour Dora

https://api.dora.inclusion.beta.gouv.fr

Resources

License

Stars

Watchers

Forks

Languages