Giter Club home page Giter Club logo

geonature-docker's Introduction

GeoNature-Docker-PNX

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...).

Les services

  • 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

Schéma des services

Utilisation

  • 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 ou docker compose -f <nom du service>

Configuration

Il y a deux moyen pour configurer les applications: les fichiers de configuration et les variables d'environnement.

Dossiers et fichiers

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

à 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

Variables d'environnement

Ces variable peuvent être définie dans un fichier .env.

Configuration des applications

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 pour app.config['SQLALCHEMY_DATABASE_URI']
  • GEONATURE_CELERY__broker_url pour app.config['GEONATURE_CELERY']['broker_url]

Configuration des services

Voir les fichiers d'exemple:

Quelques variables essentielles
  • 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

Package et versionnement

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 cours
  • develop: branche develop (un peu plus stable que current)
  • main: correspond à la dernière release
  • 1.1: version releasée (voir le fichier changelog pour avoir le détails des applicaitons et des modules.

Liens utiles

Geonature

https://github.com/PnX-SI/GeoNature

UsersHub

https://github.com/PnX-SI/UsersHub

TaxHub

https://github.com/PnX-SI/Taxhub

geonature-docker's People

Contributors

camillemonchicourt avatar ftertre avatar joelclems avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geonature-docker's Issues

GeoNature-citizen optionnel

Après sortie de GeoNature-citizen V1, il serait intéressant d'ajouter optionnellement GeoNature-citizen aux applications installables

Version de geonature installables via docker

Bonjour,

Merci pour ce travail de dockerisation de geonature.

Toutes les versions sont-elles installations via docker en spécifiant le numéro de version dans le fichier env ?
Ou doit-on se conformer à une liste d'images disponibles ? Et laquelle le cas échéant ?

GeoNature-atlas optionnel

L'installation de GeoNature-atlas n'est pas toujours attendue, il serait judicieux de le rendre optionnel.

Je me chargerai d'ajouter cette option si validée ;)

WORKDIR par défaut

le WORKDIR par défaut est le répertoire utilisateur geonatadmin, vide lorsque l'on se log au conteneur. les applications GeoNature étant dans /geonature. Il serait plus pertinent d'utiliser /geonature comme WORKDIR par défaut.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.