Dépôt de gestion des scripts Docker de déploiement de GeoNature multi-instances des parcs nationaux.
Il s'appuie sur les images Docker et docker-compose officiels de GeoNature (https://github.com/PnX-SI/GeoNature-Docker-services), mais en y ajoutant les compléments spécifiques au déploiement des parcs nationaux (multi-instances, ajout de GeoNature-atlas, de pgAdmin, de scripts de sauvegarde...).
-
postgres
-
usershub
-
taxhub
-
geonature-backend
-
geonature-frontend
-
geonature-worker
: peut reprendre certaine tâches de geonature (import, export, mail, etc...) -
redis
-
traefik
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
taxhub 5000/tcp
traefik 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8889->8080/tcp, :::80->80/tcp, :::443->443/tcp, :::8889->8080/tcp
usershub 5001/tcp
- rapatrier le dépôt
- se placer dans le répertoire du dépôt
- créer un fichier
.env
(copier ou s'inspirer des fichiers.env
exemples) - créer les fichiers de configuration (vous pouver copier les fichiers de config vide d'un seul coup avec la commande
./scrits/init_applications_config.sh
) - lancer les dockers avec la commande
docker compose up -d
- les logs sont accessibles avec la commande
docker compose logs -f
oudocker compose -f <nom du service>
Il y a deux moyen pour configurer les applications: les fichiers de configuration et les variables d'environnement.
Par défaut, la structure des fichiers est la suivante
./data
- services/ # fichiers de config, custom, medias, backup, etc ... des application
# destinés à être accessible et/ou modifiable par les utilisateur/administrateurs
- geonature/
- config/ # dossier de configuration contenant `geonature_config.toml`, `occtax_config.toml`, etc...
- custom/ # dossier `custom` de geonature (surcharge le dossier `static`)
- media/ # dossier `media` de geonature
- data/ # dossier `data` (peux contenir les fichiers pour les données des référentiels (taxref, ref_geo, ref_nomenclature, etc....))
- usershub/
- config/ # dossier contenant le fichier config.py
- taxhub/
- config/ # dossier contenant le fichier config.py
- media/ # dossier des médias de taxhub
- atlas
- config/ # dossier contenant le fichier config.py
- custom/ # dossier `custom de l'atlas (contient le style, les templates, les scripts js, etc...)
- postgres
- backup/ # contient les fichier de sauvegarde de la bdd
- storage # stockage des dossiers nécessaire pour le fonctionnement
- postgres # dossier contenant la bdd
- pgadmin # ...
Voir la documentation des différentes applications pour renseigner les fichiers de configuration
- fichier exemple pour GeoNature
- fichier exemple pour UsersHub
- fichier exemple pour TaxHub
- fichier exemple pour GeoNature-atlas
à noter que certaines variables seront fournies en tant que variables d'environnement (dans le fichier .env
par exemple) (voir les fichiers docker-compose)
comme par exemple:
URL_APPLICATION
SQLALCHEMY_DATABASE_URI
SECRET_KEY
Ces variable peuvent être définie dans un fichier .env
.
Il est possible de passer par les variables d'environnemnt pour configurer les applications.
Par exemple toutes les variables préfixée par GEONATURE_
seront traduite par un configuration de l'application GéoNature (USERSHUB_
pour usershub, et TAXHUB_
pour taxhub) (voir https://flask.palletsprojects.com/en/2.2.x/api/#flask.Config.from_prefixed_env).
Par exemple:
GEONATURE_SQLALCHEMY_DATABASE_URI
pourapp.config['SQLALCHEMY_DATABASE_URI']
GEONATURE_CELERY__broker_url
pourapp.config['GEONATURE_CELERY']['broker_url]
Voir les fichiers d'exemple:
-
GDS_VERSION
: Version de GeoNature-Docker-services (donne la version des applications) (voir le fichier changelog pour le détails des versions des applications) -
DOMAIN
: nom de domaine des applications -
PROJECT_NAME
: (gds) nom du projet, se repercute sur le nom des container et des réseaux, peut être utile dans le cas de plusieurs instances hébergées sur un même serveur -
APPLICATIONS_PREFIX
: preffixe de l'url de l'application (s'il n'est pas à la racine du nom de domaine) -
POSTGRES_USER
,POSTGRES_PASSWORD
,POSTGRES_HOST
,POSTGRES_DB
,POSTGRES_PORT
: paramètres d'accès à la bdd
Une actions permet la publication d'image dockers sur les packages du dépôt.
gds-geonature-backend:<VERSION>
(Geonature + 4 modules)gds-geonature-frontend:<VERSION>
(Geonature + 4 modules)
La valeur de VERSION
peut être:
current
: branche travail en coursdevelop
: branche develop (un peu plus stable que current)main
: correspond à la dernière release1.1
: version releasée (voir le fichier changelog pour avoir le détails des applicaitons et des modules.
https://github.com/PnX-SI/GeoNature