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
-
Se placer à l'emplacement du dépôt local souhaité :
cd ~/workspace/geonature/flore_sentinelle/
-
Cloner le dépôt geonature
git clone [email protected]:PnX-SI/GeoNature.git geonature
-
se rendre sur la branche Develop
cd geonature
git switch develop
- 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
- se rendre sur la branche Develop
cd taxhub
git switch develop
- 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
- se rendre sur la branche Develop
cd usershub
git switch develop
- 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 :
-
ssh-copy-id geonatureadmin@floresent
: ajouter clé ssh publique dans le dossier "authorized" pour connexion automatique -
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
-
installer pyenv : https://github.com/pyenv/pyenv-installer
-
Rajouter les lignes suivantes dans ~/.bashrc (avec vi)
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
- installer Python 3.7.3 : pyenv install 3.7.3 PB pour installer la bonne version de pyenv, résolution (https://github.com/pyenv/pyenv/wiki#suggested-build-environment):
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
- activer l'environnement virtuel :
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)
- Récupérer le module sur github :
git clone [email protected]:PnX-SI/gn_module_suivi_flore_territoire.git suivi_flore_territoire
- Se connecter à l'env virtuel du backend de GeoNature :
source venv/bin/activate
- 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
- 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.
- Complétez la configuration du module : config/conf_gn_module.toml et config/settings.ini.
- 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
- Régénérer le frontend dans le venv avec :
geonature generate_frontend_tsconfig
geonature generate_frontend_tsconfig_app
geonature generate_frontend_modules_route
- 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