Ce dépôt permet de déployer automatiquement et facilement GeoNature, UsersHub et TaxHub dans un environnement dockerisé et accessible en HTTPS.
De plus, celui-ci fournit une image Docker de GeoNature contenant, outre les modules du cœur (Occtax, Occhab, Validation), les modules suivants :
docker
: sudo usermod -aG docker $USER
puis réouvrir sa session Linux (voir la documentation)git
(sudo apt-get install git
)git clone https://github.com/PnX-SI/GeoNature-Docker-services
ou extraire une archivecd GeoNature-Docker-services
.env
à partir du fichier d’exemple : cp .env.sample .env
. Compléter les paramètres importants (HOST
, ACME_EMAIL
, GEONATURE_LOCAL_SRID
, POSTGRES_PASSWORD
, GID
, UID
)../init-config.sh
afin de créer les fichiers de configuration suivants, avec des clés secrètes générées aléatoirement :
config/geonature/geonature_config.toml
config/usershub/config.py
config/taxhub/config.py
docker compose up -d
Les logs de tous les services sont accessibles avec la commande docker compose logs -f
.
Pour n'afficher que les 100 dernières lignes, on utilise l'option --tail 100
et donc la commande docker compose logs -f --tail 100
.
Pour n'afficher les logs que d'un service en particulier, on utilise la commande docker compose logs -f <nom du service>
.
postgres
: la base de donnéesusershub
: la gestion des utilisateurstaxhub
: la gestion du référentiel taxonomiquegeonature-backend
: l’API de GeoNaturegeonature-frontend
: l’interface web de GeoNaturegeonature-worker
: exécution de certaines tâches de GeoNature en arrière-plan (import, export, mail, etc...)redis
: service de communication entre le worker et le backendtraefik
: serveur web redirigeant les requêtes vers le bon serviceSERVICE PORTS
geonature-backend 8000/tcp
geonature-frontend 80/tcp
geonature-worker 8000/tcp
postgres 0.0.0.0:5435->5432/tcp, :::5435->5432/tcp
redis 6379/tcp
taxhub 5000/tcp
traefik 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:80->80/tcp, [::]:443->443/tcp
usershub 5001/tcp
Voir la documentation des différentes applications pour renseigner les fichiers de configuration :
./config/geonature/geonature_config.toml
(fichier d’exemple)./config/usershub/config.py
(fichier d’exemple)./config/taxhub/config.py
(fichier d’exemple)Ces fichiers doivent contenir a minima le paramètre SECRET_KEY
.
Vous pouvez générer automatiquement des fichiers vierges contenant des clés secrètes aléatoires avec le script ./init-config.sh
.
Si vous modifiez les fichiers de configuration de GeoNature, d'un de ses modules, de TaxHub ou de UsersHub, vous devez relancer les conteneurs Docker avec la commande docker compose restart
(ou idéalement seulement le conteneur concerné, par exemple docker compose restart usershub
).
À noter que certaines variables seront fournies en tant que variables d'environnement (voir les fichiers .env
et docker-compose.yml
), comme par exemple :
URL_APPLICATION
SQLALCHEMY_DATABASE_URI
GeoNature-Docker-services/config/
GeoNature-Docker-services/data/geonature/custom/
GeoNature-Docker-services/data/geonature/media/
Les applications peuvent être configurées par des variables d’environnement préfixées respectivement par GEONATURE_
, TAXHUB_
et USERSHUB_
(voir from_prefix_env).
Ces variables d’environnement doivent être renseignées directement dans le fichier docker-compose.yml
, bien que certaines variables sont définies à partir d’une variable du même nom en provenance du fichier .env
.
GeoNature-Docker-services
de votre serveurgit pull
docker compose pull && docker compose up -d
Pour en savoir plus (lancer des commandes geonature
, accéder à la BDD, intégrer le MNT, modifier votre domaine,...), consultez la FAQ.
Une action permet la publication automatique d'images Docker frontend et backend de GeoNature sur les packages du dépôt :
ghcr.io/pnx-si/geonature-frontend-extra
ghcr.io/pnx-si/geonature-backend-extra
Ces images sont le pendant de celles publiées sur le dépôt de GeoNature mais contiennent en supplément les modules externes pré-cités en introduction.