Installation Geonature Flore Sentinelle - ch-cbna/geonature GitHub Wiki

Préparation des dépôts github

Créer un dossier Flore Sentinelle dans /workspace/geonature.

Geonature

  1. Se placer à l'emplacement du dépôt local souhaité : cd ~/workspace/geonature/flore_sentinelle/

  2. Cloner le dépôt geonature git clone [email protected]:PnX-SI/GeoNature.git geonature

  3. se rendre sur la branche Develop

  • cd geonature
  • git switch develop
  1. Se mettre sur la version 2.4.1 git checkout tags/2.4.1

Taxhub

  • Se placer à l'emplacement du dépôt local souhaité : cd ~/workspace/geonature/flore_sentinelle/

  • Récupérer la clé SSH du dépôt distant et effectué la commande suivante : git clone [email protected]:PnX-SI/TaxHub.git taxhub

  1. se rendre sur la branche Develop
  • cd taxhub
  • git switch develop
  1. Se mettre sur la version 1.7.0 git checkout tags/1.7.0

UsersHub

  • Se placer à l'emplacement du dépôt local souhaité : cd ~/workspace/geonature/flore_sentinelle/

  • Récupérer la clé SSH du dépôt distant et effectué la commande suivante : git clone [email protected]:PnX-SI/UsersHub.git usershub

  1. se rendre sur la branche Develop
  • cd usershub
  • git switch develop
  1. Se mettre sur la version 2.1.2 git checkout tags/2.1.2

Récupération de la BDD

Pour récupérer la BDD Flore sentinelle :

  1. ssh-copy-id geonatureadmin@floresent : ajouter clé ssh publique dans le dossier "authorized" pour connexion automatique

  2. Télécharger dump BDD : scp geonatureadmin@floresent:/home/geonatureadmin/backup/db/$(date +"%Y-%m-%d")_geonature2db.tar .

  • Si le fichier de sauvegarde récupéré est au format tar, il faut le désarchiver et donner les droits d’exécution : tar xvf 2022-05-30_geonature2db.tar chmod +x -R /home/choarau/Documents/data/flore_sentinelle/2022-05-30_geonature2db/

Doc wiki pour Restaurer en local la BDD : https://wiki-intranet.cbn-alpin.fr/projets/flore-sentinelle/sauvegarde-base-de-donnees#restauration_en_local_de_la_base_de_donnees

  • Supprimer la base locale si elle existait préalablement : sudo -u postgres dropdb --if-exists geonature2db

  • Afin de permette à l'utilisateur geonatadmin de recréer les extenssions dans la base, nous lui donnons temporairement (le temps de l’exécution de pg_restore) des droits de super-utilisateur : sudo -u postgres psql -c "ALTER ROLE geonatadmin SUPERUSER;"

  • Recréer une base de données vide (= avec le template template0) portant le même nom que la base distante (impossible de changer directement le nom avec pg_restore) : sudo -u postgres createdb -T template0 geonature2db

  • Donner les droits à l'utilisateur geonatadmin qui doit avoir les droits sur la base geonature2db : sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE geonature2db TO geonatadmin;"

  • Restaurer la base à partir du dump distant : pg_restore --host "localhost" --port "5432" -U "geonatadmin" --jobs "8" --verbose --dbname "geonature2db" "/home/choarau/Documents/data/flore_sentinelle/2022-05-30_geonature2db" 2>&1 | tee "./$(date +"%Y-%m-%d")_pgrestore.log --format d"

ATTENTION, si la version local de Postgis est 3+ et celle du serveur inférieure à 3, il faudra rajouter manuellement l’extension postgis_raster et la structure de la table ref_geo.dem qui n'aura pas été généré : psql -d geonature2db

CREATE EXTENSION postgis_raster WITH SCHEMA public ;
 
CREATE TABLE ref_geo.dem (
    rid serial4 NOT NULL,
    rast raster NULL,
    CONSTRAINT pk_dem PRIMARY KEY (rid)
);
  • Retirer les droits de super-utilisateur à geonatadmin : sudo -u postgres psql -c "ALTER ROLE geonatadmin NOSUPERUSER;"

  • Renommer la base de données après avoir supprimé la base de données de destination. Exemple avec pour base de destination gn2_flore_sentinelle :

sudo -u postgres dropdb --if-exists gn2_flore_sentinelle 
sudo -u postgres psql -c "ALTER DATABASE geonature2db RENAME TO gn2_flore_sentinelle;"

Modifier les fichiers de config de GN, TH & UH

geonature-config.toml, settings.ini & config.py

Installer UsersHub

Usershub v2.1.2

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
  • charger python 3.7.3 globalement : pyenv global 3.7.3
  • Se placer dans le dossier de UsersHub
  • Basculer en version 2.1.2 : git checkout tags/2.1.2
  • Installer virtualenv : pip install virtualenv
  • Installer l'environnement virtuel : python -m virtualenv -p /home/choarau/.pyenv/shims/python venv
  • Activer l'environnement virtuel : source venv/bin/activate
  • Installer les dépendances : pip install -r requirements.txt
  • Sortir de l'env virtuel : deactivate
  • Installer l'environnement javascript :
    • cd app/static
    • nvm install
    • nvm use
    • npm ci
    • cd ../..
  • Lancer Usershub:
    • activer l'environnement virtuel : source venv/bin/activate
export GUNICORN_CMD_ARGS="--capture-output --log-level debug";
export FLASK_ENV="development";
export FLASK_DEBUG=1;
python server.py

Taxhub v1.7.0

  • Se placer dans le dossier de Taxhub
  • Basculer en version 1.7.0 : git checkout 1.7.0
  • Si ce n'est pas déjà fait, charger python 3.7.3 globalement : pyenv global 3.7.3
  • Installer l'environnement virtuel : python -m virtualenv -p /home/choarau/.pyenv/shims/python venv
  • Activer l'environnement virtuel : source venv/bin/activate
  • Mettre à jour Pip : pip install --upgrade pip
  • Installer les dépendances : pip install -r requirements.txt
  • Sortir de l'env virtuel : deactivate
  • Installer l'environnement javascript :     * cd static/     * nvm install     * nvm use     * npm ci     * cd ..
  • Lancer Taxhub:     * essayer : taxhub_dev_backend.sh .     * activer l'environnement virtuel : source venv/bin/activate     * export GUNICORN_CMD_ARGS="--capture-output --log-level debug";     * export FLASK_ENV="development";     * export FLASK_DEBUG=1;     * python server.py

Récupérer les dernières versions des commandes geonature_dev_backend/frontend.sh

Sur le dépôt Various_script :

cd workspace/various-scripts
git fetch
git merge origin/main

Geonature v2.4.1

  • dans config/settings.ini, mettre : python_path=/home/choarau/.pyenv/shims/python
  • puis se placer dans le dossier d'installation : cd install/
  • lancer l'installation avec : ./install_app.sh --dev
  • lancer le backend de GN avec : geonature\_dev\_backend.sh .
  • lancer le frontend de GN avec : geonature\_dev\_frontend.sh .

Restauration des modules S. Flore Territoire & S. Habitat Territoire

doc wiki : [https://wiki-intranet.cbn-alpin.fr/informatique/aides/geonature?s[]=installation&s[]=module#installation_d_un_module](https://wiki-intranet.cbn-alpin.fr/informatique/aides/geonature?s%5B%5D=installation&s%5B%5D=module#installation_d_un_module)

  1. Récupérer le module sur github : git clone [email protected]:PnX-SI/gn_module_suivi_flore_territoire.git suivi_flore_territoire
  2. Se connecter à l'env virtuel du backend de GeoNature : source venv/bin/activate
  3. Lancer la commande suivante qui sera alors disponible : geonature install_gn_module <mon_chemin_absolu_vers_le_module> <url_specifique_au_module> Exemple : geonature install_gn_module "/home/choarau/workspace/geonature/flore_sentinelle/suivi_flore_territoire" "/sft" -- build false (sht pour suivi habitat territoire) En mode développement, utiliser l'option : --build false
  4. Créer un lien symbolique (scinder + glisser/déposer + lier ici) pour chaque module installé est créé dans le dossier external_modules, cela facilite le développement avec Visual Studio Code car nous n'avons pas à créer de workspace supplémentaire ou d'importer le dossier du module.
  5. Complétez la configuration du module : config/conf_gn_module.toml et config/settings.ini.
  6. Puis relancez la mise à jour de la configuration depuis le répertoire geonature/backend et une fois dans le venv (source venv/bin/activate) : geonature update_module_configuration sft
  7. Régénérer le frontend dans le venv avec :
geonature generate_frontend_tsconfig
geonature generate_frontend_tsconfig_app
geonature generate_frontend_modules_route
  1. pour SHT, afin que le "i" information fonctionne, toujours dans le venv :
pip install utils-flask-sqlalchemy==0.2.6
pip install utils-flask-sqlalchemy-geo==0.2.2
pip list