Skip to content

Commit

Permalink
Merge pull request #15 from PnX-SI/develop
Browse files Browse the repository at this point in the history
Develop > Master / 0.2.0
  • Loading branch information
camillemonchicourt authored Sep 19, 2023
2 parents 03f66e9 + 31c8d51 commit 0b6e40d
Show file tree
Hide file tree
Showing 7 changed files with 134 additions and 22 deletions.
10 changes: 9 additions & 1 deletion .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,17 @@ HOSTPORT="${HOST}" # set to ${HOST}:${HTTPS_PORT} if HTTPS_PORT is different fr

ACME_EMAIL="" # required for valid https certificates

GEONATURE_LOCAL_SRID=4326 # must be correctly set on first run
GEONATURE_SUPERGRANT_ARGS="--group --nom Grp_admin" # comment this line to disable supergrant

GEONATURE_DB_LOCAL_SRID=4326 # must be correctly set on first run
GEONATURE_DB_ADD_SAMPLE_DATA=false
GEONATURE_DB_INSTALL_BDC_STATUTS=true
GEONATURE_DB_INSTALL_SIG_LAYERS=true
GEONATURE_DB_INSTALL_GRID_LAYER=true
GEONATURE_DB_INSTALL_REF_SENSITIVITY=true
GEONATURE_DB_INSTALL_USERSHUB_SAMPLES=true
GEONATURE_DB_INSTALL_TAXHUB_SAMPLES=true

POSTGRES_USER="geonatadmin"
POSTGRES_PASSWORD="geonatpasswd"
POSTGRES_HOST="postgres"
Expand Down
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# GeoNature Docker Services

Ce dépôt permet de déployer automatiquement GeoNature, UsersHub et TaxHub dans un environnement dockerisé et accessible en HTTPS.
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 :

- [Import](https://github.com/PnX-SI/gn_module_import)
Expand All @@ -13,10 +13,11 @@ De plus, celui-ci fournit une image Docker de GeoNature contenant, outre les mod

- Installer Docker : [voir la documentation](https://docs.docker.com/engine/install/)
- Ajouter votre utilisateur courant au groupe `docker` : `sudo usermod -aG docker $USER` puis réouvrir sa session Linux ([voir la documentation](https://docs.docker.com/engine/install/linux-postinstall))
- 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](https://github.com/PnX-SI/GeoNature-Docker-services/releases)
- 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`).
- Lancer la commande `./init-config.sh` afin de créer les ficiers de configuration suivant, avec des clés secrètes générées aléatoirement :
- 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`
- `config/taxhub/config.py`
Expand All @@ -32,7 +33,7 @@ Les logs sont accessibles avec la commande `docker compose logs -f` ou `docker c
- `taxhub` : la gestion du référentiel taxonomique
- `geonature-backend` : l’API de GeoNature
- `geonature-frontend` : l’interface web de GeoNature
- `geonature-worker` : exécution de certaines tâches de GeoNature en arrière plan (import, export, mail, etc...)
- `geonature-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 backend
- `traefik` : serveur web redirigeant les requêtes vers le bon service

Expand Down Expand Up @@ -60,7 +61,9 @@ Voir la documentation des différentes applications pour renseigner les fichiers
- TaxHub : `./config/taxhub/config.py` ([fichier d’exemple](https://github.com/PnX-SI/TaxHub/apptax/config.py.sample))

Ces fichiers doivent contenir *a minima* le paramètre `SECRET_KEY`.
Vous pouvez générer des fichiers vierges contenant des clés secrètes aléatoires avec le script `./init-config.sh`.
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`](./.env.sample) et [`docker-compose.yml`](./docker-compose.yml)), comme par exemple :

Expand Down Expand Up @@ -101,7 +104,7 @@ Ces images sont le pendant de [celles publiées sur le dépôt de GeoNature](htt

## Liens utiles

### Geonature
### GeoNature

- [Dépôt](https://github.com/PnX-SI/GeoNature)
- [`Dockerfile` backend](https://github.com/PnX-SI/GeoNature/blob/master/backend/Dockerfile)
Expand Down
23 changes: 12 additions & 11 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ services:
USERSHUB_ACTIVATE_APP: ${USERSHUB_ACTIVATE_APP:-true}
USERSHUB_ACTIVATE_API: ${USERSHUB_ACTIVATE_API:-true}
USERSHUB_COOKIE_EXPIRATION: ${USERSHUB_COOKIE_EXPIRATION:-3600}
USERSHUB_FILL_MD5_PASS: ${USERSHUB_FILL_MD5_PASS:-false}
PYTHONPATH: /dist/config
labels:
- "traefik.enable=true"
Expand Down Expand Up @@ -136,16 +137,16 @@ services:
command: "geonature permissions supergrant --yes ${GEONATURE_SUPERGRANT_ARGS:---help}"
environment:
<<: *geonature-backend-env
srid_local: ${GEONATURE_LOCAL_SRID}
add_sample_data: ${GEONATURE_ADD_SAMPLE_DATA:-false}
install_bdc_statuts: ${GEONATURE_INSTALL_BDC_STATUTS:-true}
install_sig_layers: ${GEONATURE_INSTALL_SIG_LAYERS:-true}
install_grid_layer: ${GEONATURE_INSTALL_GRID_LAYER:-true}
install_ref_sensitivity: ${GEONATURE_INSTALL_REF_SENSITIVITY:-true}
usershub: ${GEONATURE_INSTALL_USERSHUB:-true}
usershub_samples: ${GEONATURE_INSTALL_USERSHUB_SAMPLES:-true}
taxhub: ${GEONATURE_INSTALL_TAXHUB:-true}
taxhub_samples: ${GEONATURE_INSTALL_TAXHUB_SAMPLES:-true}
srid_local: ${GEONATURE_DB_LOCAL_SRID}
add_sample_data: ${GEONATURE_DB_ADD_SAMPLE_DATA:-false}
install_bdc_statuts: ${GEONATURE_DB_INSTALL_BDC_STATUTS:-true}
install_sig_layers: ${GEONATURE_DB_INSTALL_SIG_LAYERS:-true}
install_grid_layer: ${GEONATURE_DB_INSTALL_GRID_LAYER:-true}
install_ref_sensitivity: ${GEONATURE_DB_INSTALL_REF_SENSITIVITY:-true}
usershub: ${GEONATURE_DB_INSTALL_USERSHUB:-true}
usershub_samples: ${GEONATURE_DB_INSTALL_USERSHUB_SAMPLES:-true}
taxhub: ${GEONATURE_DB_INSTALL_TAXHUB:-true}
taxhub_samples: ${GEONATURE_DB_INSTALL_TAXHUB_SAMPLES:-true}

geonature-worker:
<<: *geonature-backend-defaults
Expand All @@ -154,7 +155,7 @@ services:
geonature-install-db:
condition: service_completed_successfully
entrypoint: []
command: celery -A geonature.celery_app:app worker --beat
command: celery -A geonature.celery_app:app worker --beat --schedule-filename=/dist/media/celerybeat-schedule.db

geonature-backend:
<<: *geonature-backend-defaults
Expand Down
41 changes: 41 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,47 @@
CHANGELOG
=========

0.2.0 (2023-09-19)
------------------

**🏷️ Versions**

- GeoNature 2.12.3
- TaxHub 1.12.1
- UsersHub 2.3.4
- GeoNature-dashboard 1.4.0
- GeoNature-export1.6.0
- GeoNature-import 2.2.2
- GeoNature-monitoring 0.7.0

**✨ Améliorations**

- Compléments de la documentation (Redirections, version, rebuild des images)
- Ajout de variables dans le `.env` pour pouvoir intégrer ou non les données initiales (référentiel de sensibilité, BDC statuts, zonages administratifs, mailles et données d"exemple)

**🐛 Corrections**

- Déclaration d’une variable d’environnement manquante à UsersHub pour créer des utilisateurs
- Spécification du fichier de schedule pour Celery Beat

**⚠️ Notes de version**

Les modifications suivantes ont été apportées au fichier `docker-comopose.yml` :

- Ajout de la variable d’environnement `USERSHUB_FILL_MD5_PASS` au service UsersHub :
```
services:
usershub:
environment:
USERSHUB_FILL_MD5_PASS: ${USERSHUB_FILL_MD5_PASS:-false}
```
- Ajout du paramètre `--schedule-filename` à la commande de Celery Beat :
```
services:
geonature-worker:
command: celery -A geonature.celery_app:app worker --beat --schedule-filename=/dist/media/celerybeat-schedule.db
```

0.1.0 (2023-09-15)
------------------

Expand Down
65 changes: 62 additions & 3 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ services:
- 5432:5432
```

puis re-lancer `docker compose up -d`
puis relancer `docker compose up -d`

Il se peut que vous ayez déjà une base de données localement.
Dans ce cas, vous pouvez utiliser un autre port : `-5433:5432`.
Expand Down Expand Up @@ -59,7 +59,7 @@ GEONATURE_FRONTEND_PREFIX="/"

Puis relancer `docker compose up -d`

Vous pourrez alors accéder, par exemple, à GeoNature à l’adresse https://geonature.mon-domaine.org.
Vous pourrez alors accéder, par exemple, à GeoNature à l’adresse https://geonature.mon-domaine.org, TaxHub à l’adresse https://taxhub.mon-domaine.org et UsersHub à l'adresse https://usershub.mon-domaine.org.


## Comment importer le MNT / DEM ?
Expand All @@ -74,5 +74,64 @@ Par défaut un MNT de France métropolitaine avec un pas de 250m fourni par l'IG
- Copier le MNT dans ce conteneur : `docker compose cp BDALTIV2_250M_FXX_0098_7150_MNT_LAMB93_IGN69.asc postgres:/`
- Lancer l’import (préciser votre SRID) : `docker compose exec postgres raster2pgsql -s {local_srid} -c -C -I -M -d BDALTIV2_250M_FXX_0098_7150_MNT_LAMB93_IGN69.asc ref_geo.dem | docker compose exec -T postgres psql -U geonatadmin -d geonature2db`

À noter : si le conteneur `postgres` est re-créé, l’installation de `raster2pgsql` et la copie du MNT dans le conteneur seront perdus.
À noter : si le conteneur `postgres` est recréé, l’installation de `raster2pgsql` et la copie du MNT dans le conteneur seront perdus.
Mais ces données ne sont normalement plus nécessaires une fois le MNT importé dans la base de données (qui elle est permanente).


## Comment rediriger `/` vers `/geonature/` ?

Créer un fichier `docker-compose.override.yml` avec ces lignes, pour ajouter au service `traefik` les labels suivants :

```
services:
traefik:
labels:
- "traefik.enable=true"
- "traefik.http.routers.root.rule=Host(`${HOST}`) && Path(`/`)"
- "traefik.http.routers.root.entrypoints=websecure"
- "traefik.http.routers.root.tls.certResolver=acme-resolver"
- "traefik.http.routers.root.middlewares=gnprefix"
- "traefik.http.middlewares.gnprefix.redirectregex.regex=(.)*"
- "traefik.http.middlewares.gnprefix.redirectregex.replacement=${GEONATURE_FRONTEND_PREFIX}/"
```


## Comment connaître la version de GeoNature contenue dans l’image Docker ?

```
docker image inspect ghcr.io/pnx-si/geonature-backend-extra --format '{{index .Config.Labels "org.opencontainers.image.version"}}'
```

ou, pour plus d’informations :

```
docker image inspect ghcr.io/pnx-si/geonature-backend-extra --format '{{json .Config.Labels}}'
```


## Comment rebuilder localement les images Docker ?

- Initialiser et cloner les sous-modules git :
```bash
git submodule init
git submodule update
```
- Faire de même pour les sous-modules de GeoNature, TaxHub et UsersHub, exemple pour GeoNature :
```bash
cd sources/GeoNature
git submodule init
git submodule update
cd ../..
```
- Apporter vos éventuelles modifications au code source.
- Il est conseillé de renommer les images dans le fichier `.env` afin de ne pas rentrer en conflit avec les images officielles, par exemple en leur rajoutant un suffix `-local` :
```env
USERSHUB_IMAGE="ghcr.io/pnx-si/usershub-local:latest"
TAXHUB_IMAGE="ghcr.io/pnx-si/taxhub-local:latest"
GEONATURE_BACKEND_IMAGE="ghcr.io/pnx-si/geonature-backend-local:latest"
GEONATURE_BACKEND_EXTRA_IMAGE="ghcr.io/pnx-si/geonature-backend-extra-local:latest"
GEONATURE_FRONTEND_IMAGE="ghcr.io/pnx-si/geonature-frontend-local:latest"
GEONATURE_FRONTEND_EXTRA_IMAGE="ghcr.io/pnx-si/geonature-frontend-extra-local:latest"
```
- Lancer le script `build/build.sh` depuis la racine du dépôt.
- Relancer `docker compose up -d` afin de recréer les conteneurs avec vos propres images Docker.
2 changes: 1 addition & 1 deletion sources/GeoNature
Submodule GeoNature updated 122 files

0 comments on commit 0b6e40d

Please sign in to comment.