Ce dépôt permet de déployer automatiquement et facilement GeoNature, UsersHub 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, Import), les modules suivants :
- Installer Docker : voir la documentation
- Ajouter votre utilisateur courant au groupe
docker
:sudo usermod -aG docker $USER
puis réouvrir sa session Linux (voir la documentation) - Installer
git
(sudo apt-get install git
) - Clôner le dépôt :
git clone https://github.com/PnX-SI/GeoNature-Docker-services
ou extraire une archive - Se placer dans le répertoire du dépôt :
cd GeoNature-Docker-services
- Créer le fichier
.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
). - Lancer la commande
./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
- Lancer les conteneurs :
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 utilisateursgeonature-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 service
SERVICE 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
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 :
- GeoNature :
./config/geonature/geonature_config.toml
(fichier d’exemple) - UsersHub :
./config/usershub/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 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
- ...
Vous pouvez personnaliser la politique de redémarrage automatique des services en paramétrant la variable RESTART_POLICY
du fichier .env
(valeur par défaut: unless-stopped
)
- Les fichiers de configuration de GeoNature, de ses modules et de UsersHub sont donc dans le dossier
GeoNature-Docker-services/config/
- Les fichiers de customisation de GeoNature sont stockés dans le dossier
GeoNature-Docker-services/data/geonature/custom/
- Les fichiers des médias de GeoNature (photos, application mobile...) sont stockés dans le dossier
GeoNature-Docker-services/data/geonature/media/
Les applications peuvent être configurées par des variables d’environnement préfixées respectivement par GEONATURE_
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
.
- Vérifiez si la dernière version disponible correspond aux versions des applications que vous souhaitez mettre à jour
- Placez vous dans le dossier
GeoNature-Docker-services
de votre serveur - Mettez à jour le contenu du dossier dans sa dernière version :
git pull
- Lancez la commande qui va télécharger les dernières versions des différentes applications et les relancer :
docker compose pull && docker compose up -d --remove-orphans
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.