Skip to content

Commit

Permalink
up README
Browse files Browse the repository at this point in the history
  • Loading branch information
joelclems committed Sep 8, 2023
1 parent 547a33a commit 05af9bc
Showing 1 changed file with 48 additions and 140 deletions.
188 changes: 48 additions & 140 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Dockerisation de geonature et d'application associées
- `taxhub`
- `geonature-backend`
- `geonature-frontend`
- `geonature-worker`: `worker` qui peut reprendre certaine tâches de geonature (import, export, mail, etc...)
- `geonature-worker`: peut reprendre certaine tâches de geonature (import, export, mail, etc...)
- `redis`

- `traefik`
Expand Down Expand Up @@ -47,43 +47,49 @@ Il y a deux moyen pour configurer les applications: les fichiers de configuratio

Par défaut, la structure des fichiers est la suivante

```
-
- db/
- postgres (volume (ou point de montage ??) pour la bdd ())
- apps/
- taxhub/
- config/
- config.py
- static/
- geonature/
- config/
- geonature_config.toml
- media/
- usershub/
- config/
- config.py
- atlas/
- config/
- config.py
- custom/
``` bash
./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](./sources/GeoNature/config/geonature_config.toml.sample)
- Il faut au moins renseigner la variable `SECRET_KEY`.
- [fichier exemple pour UsersHub](./sources/UsersHub/config/config.py.sample)
- [fichier exemple pour TaxHub](./sources/TaxHub/apptax/config.py.sample)
- [fichier exemple pour GeoNature-atlas](./sources/GeoNature-atlas/atlas/configuration/config.py.sample)

à noter que certaines variables seront fournies en tant que variables d'environnement (voir les fichiers [docker-compose](./docker-compose.yml))
à noter que certaines variables seront fournies en tant que variables d'environnement (dans le fichier `.env` par exemple) (voir les fichiers [docker-compose](./docker-compose.yml))

comme par exemple:
- `URL_APPLICATION`
- `SQLALCHEMY_DATABASE_URI`
- ...
- `SECRET_KEY`
### Variables d'environnement

Ces variable peuvent être définie dans un fichier `.env`.
Expand All @@ -100,110 +106,38 @@ Par exemple:

#### Configuration des services

Les variable d'environnement qui servent au fichier docker-compose seront préfixées `GDS_` (comme GeoNature-Docker-Services)

`GDS_<nom_de_lavariable>` (`<valeur par defaut`)

##### Les images docker des applications
- `USERSHUB_IMAGE` (`ghcr.io/pnx-si/usershub:latest`)
- `TAXHUB_IMAGE` (`ghcr.io/pnx-si/taxhub:latest`)
- `GEONATURE_FRONTEND_IMAGE` (`ghcr.io/pnx-si/taxhub:latest`)
- `GEONATURE_BACKEND_IMAGE` (`ghcr.io/pnx-si/geonature-backend:latest`)
- `GEONATURE_FRONTEND_IMAGE` (`ghcr.io/pnx-si/geonature-frontend:latest`)

##### L'emplacement des volumes

`GDS_<nom_de_lavariable>` (`<valeur par defaut`) : `<point de montage dans le docker>`


##### Dossiers de Configuration

- `GEONATURE_VOLUME_CONFIG_DIRECTORY` (`./data/apps/geonature/config`) : `/dist/config`
- `USERSHUB_VOLUME_CONFIG_DIRECTORY` (`./data/apps/usershub/config`) : `/dist/config`
- `TAXHUB_VOLUME_CONFIG_DIRECTORY` (`./data/apps/taxhub/config`) : `/dist/config`

##### Dossiers persistants

- `GEONATURE_VOLUME_MEDIA_DIRECTORY` (`./data/apps/geonature/media`) : `/dist/media`
- `TAXHUB_VOLUME_STATIC_DIRECTORY` (`./data/apps/taxhub/static`) : `/dist/static`
- `POSTGRES_VOLUME_DATA_DIRECTORY` (`./data/db/postgres`): `/var/lib/postgresql/data`
Voir les fichiers d'exemple:

##### Réseaux
- [configuration de développement](./.env.dev.exemple)

- `TRAEFIK_HTTP_PORT` (`80`)
- `TRAEFIK_HTTPS_PORT`(`403`)
- [configuration de production](./.env.prod.exemple)

- `GDS_USERSHUB_HOST`
- `GDS_USERSHUB_PROTOCOL`
- `USERSHUB_DOMAIN`
- `USERSHUB_PREFIX` (`/usershub`)
##### Quelques variables essentielles

- `GDS_TAXHUB_HOST`
- `GDS_TAXHUB_PROTOCOL`
- `TAXHUB_DOMAIN`
- `TAXHUB_PREFIX` (`/taxhub`)
- `GDS_VERSION`: Version de GeoNature-Docker-services (donne la version des applications) (voir le fichier [/doc/changelog.md]() pour le détails des versions des applications)

- `GEONATURE_DOMAIN`
- `DOMAIN`: nom de domaine des applications

- `GDS_GEONATURE_BACKEND_HOST`
- `GDS_GEONATURE_BACKEND_PROTOCOL`
- `GEONATURE_BACKEND_PREFIX` (`/geonature/api`)
- `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

- `GDS_GEONATURE_FRONTEND_HOST`
- `GDS_GEONATURE_FRONTEND_PROTOCOL`
- `GEONATURE_FRONTEND_PREFIX` (`/geonature/api`)
- `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

#### Exemples de configurations

`GDS_<nom_de_lavariable>` (`<valeur par defaut`)

- env.dev
- utilise les images docker des application taggées en `:develop`
- protocole `HTPP`
- url des applications suffixées par `:<PORT>` (par exemple `localhost:8000` pour le service `geonature-backend`)
- ports `8081/8183`

- env.current
- similaire à env.dev
- on build les images pour GeoNature (`FRONTEND` et `BACKEND`) (voir [build_geonature_all.sh](./build/build_geonature_all.sh)
- à partir du code des sous-modules github
- pour GeoNature seul
- pour GeoNature avec les 4 modules principaux (`IMPORT`, `EXPORT`, `DASHBOARD`, `MONITORING`)
- pour `UH` et `TH` on utilise (`:latest`)
- TODO builder les applis à partir du code des sous-modules github
- permet de pouvoir builder des images aux versions souhaitées (pour GeoNature et les modules) sans dépendre des versions releasées.
##### `env.prod`
- utilise les images docker des application taggées en `:latest`
- `ghcr.io/pnx-si/geonature-backend:latest`
- `ghcr.io/pnx-si/usershub:latest`
- `ghcr.io/pnx-si/taxhub-backend:latest`
- protocole `HTTPS`
- ports `80/443`

##### `env.dev`
- utilise les images docker des application taggées en `:develop`
- protocole `HTPP`
- url des applications suffixées par `:<PORT>` (par exemple `localhost:8000` pour le service `geonature-backend`)
- ports `8081/8183`
## Package et versionnement

##### `env.current`
- similaire à env.dev
- on peut construire en local les images pour GeoNature (`FRONTEND` et `BACKEND`) (voir [build_geonature_all.sh](./build/build_geonature_all.sh)
- à partir du code des sous-modules github
- pour GeoNature seul
- pour GeoNature avec les 4 modules principaux (`IMPORT`, `EXPORT`, `DASHBOARD`, `MONITORING`)
- pour `UH` et `TH` on utilise (`:latest`)
- permet de pouvoir builder des images aux versions souhaitées (pour GeoNature et les modules) sans dépendre des versions releasées.
- **TODO** construite aussi les images des autres applications (UsersHub, TaxHub)
Une actions permet la publication d'image dockers sur les packages du dépôt.

##### `env.lattest-versions`
- `gds-geonature-backend:<VERSION>` (Geonature + 4 modules)
- `gds-geonature-frontend:<VERSION>` (Geonature + 4 modules)

Permet de référencer les version de tags des dernières applications (équivalent à lattest mais avec des numéro de version codées en *dur*)
La valeur de `VERSION` peut être:

À titre informatif, il y a aussi les version des applicaitons et des modules utilisés.
- `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 (./docs/changelogs.md) pour avoir le détails des applicaitons et des modules.

Ces version sont aussi renseignées dans [le fichier changelog du dépôt)[./docs/changelog.md]

### Liens utiles
## Geonature
Expand Down Expand Up @@ -231,29 +165,3 @@ https://github.com/PnX-SI/Taxhub
- [`Dockerfile`](https://github.com/PnX-SI/TaxHub/blob/master/Dockerfile)


## Package et versionnement

Une actions permet la publication d'image dockers sur les packages du dépôt.

- `gds-geonature-4-modules-frontend:<VERSION>`
- `gds-geonature-4-modules-backend:<VERSION>`
- `gds-geonature-backend:<VERSION>`
- `gds-geonature-frontend:<VERSION>`

La valeur de `VERSION` est calculée comme ceci:

Si le build a été fait:
- depuis une branche on lui donne le nom de la branche (du dépôt courrant), on aura alors
- `develop`: version en cours de développement
- `main`: correspond en gros à la dernière release

- depuis un tag ou une release, on aura alors:
- `<VERSION du dépôt courrant>__<VERSION de GeoNature>`
- par exemple
- `0.0.1__2.12.3`
- `0.0.2__2.12.3`
- `0.0.3__2.13.1`

- et `latest` qui correspond à la dernière release buildée

On suppose ici qu'une version ne va comporter que des états versionnées de GéoNature et de ses modules.

0 comments on commit 05af9bc

Please sign in to comment.