Portail de suivi de la faune équipée de balises GPS dans le cadre de la Convention 3 Vallées
Machine virtuelle :
- Système d’exploitation Linux : Debian v10
- Système de gestion de base de données relationnelles : PostgreSQL v15.2 et PostGIS v3.3.2
- Logiciel de gestion de version décentralisé : Git v2.20.1
- Gestionnaire de paquets : npm v9.8.1
- Logiciel d’exécution JavaScript : Node.js v16.13.0
Machine physique :
- Logiciel de terminal pour Windows : MobaXterm v23.0
- Logiciel d’échange de fichiers entre serveur local et distant : WinSCP v5.21.7
- Logiciel de base de données : DBeaver v23.0.1
- Logiciel d’édition de code : Visual Studio Code
- Extensions VSCode : Python v2023.14.0, Pylance v2023.8.30, Vue Language Features (Volar) v1.8.8
- Navigateur web : Google Chrome.
Application :
- Front-end : Vue js v3, Bootstrap v5.3.0, Leaflet v1.9.4, Leaflet-polylinedecorator v1.6.0
- Back-end : Back-end de FollowDem-Admin https://github.com/PnVanoise/FollowDem-admin/tree/FDadmin-tests-stage
- Liste des espèces de la convention
- Liste des individus équipés
- Affichage des traces GPS selon l'individu et la période sélectionnés
- Onglets pour contextualiser l'application
Prérequis :
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-15
sudo apt-get install postgis postgresql-15-postgis-3
sudo apt-get install python3
sudo apt-get install python3-venv
sudo apt-get instamm python3-pip
sudo apt-get install apache2
sudo apt-get install git
sudo apt-get install libpq-dev
sudo pip3 install gunicorn
Installation de nvm : wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
Relancez votre serveur puis installez npm et Nodejs : nvm install --lts
Clonez le dépôt (dans /home/user):
sudo wget https://github.com/PnVanoise/FollowDem-admin/archive/refs/heads/main.zip
unzip main.zip
Le projet ayant été élaboré sur une branche, il est possible qu'elle ne soit pas encore appliquée au main, si c'est le cas (dans /home/user) :
sudo wget https://github.com/PnVanoise/FollowDem-admin/archive/refs/heads/FDadmin-tests-stage.zip
unzip FDadmin-tests-stage.zip
Suivez la doc d’installation (ignorez la partie "Import des données") : https://github.com/PnVanoise/FollowDem-admin/blob/FDadmin-tests-stage/docs/installation.rst
Ouverture de la base de données depuis l'extérieur :
- Ajoutez une entrée dans le fichier pg_hba.conf :
sudo nano /etc/postgresql/15/main/pg_hba.conf
- Dans le bloc IPv4 local connections ajoutez la ligne :
host all all 0.0.0.0/0 md5
- Ajoutez les adresses dans postgresql.conf :
sudo nano /etc/postgresql/15/main/postgresql.conf
- Dans la section CONNECTIONS AND AUTHENTICATION, décommentez la propriété listen_adresses et remplacez localhost par '*'
- Redémarrez le service postgresql :
sudo service postgresql restart
Création d'un cron pour alimenter la base de données automatiquement : crontab -e
puis choisir 1
# Toutes les 6h à :00 import des données Ornitela
0 */6 * * * python3 /home/user/Portail-3-vallees/app/public/import_data.py
# Toutes les 6h à :15 refresh la vue
15 */6 * * * PGPASSWORD="password" psql -h "localhost" -p "5432" -U "user" "followdem" -c "REFRESH MATERIALIZED VIEW followdem.vm_animals_loc WITH DATA;"
Déploiement Gunicorn :
- Copiez et éditez le fichier de settings (restez en localhost pour pouvoir passer en HTTPS plus tard):
cp ./settings.ini.sample ./settings.ini
- Copiez le fichier de service :
sudo cp ./GPS3V-admin.service.template /etc/systemd/system/GPS3V-admin.service
- Editez le fichier de service (remplacez le user et le chemin vers le fichier gunicorn_start.sh):
sudo nano /etc/systemd/system/GPS3V-admin.service
- Rendre exécutable le fichier sh :
chmod +x /home/user/GPS3vallees-admin/gunicorn_start.sh
- Démarrez le service :
sudo systemctl start GPS3V-admin
sudo systemctl daemon-reload
sudo systemctl enable GPS3V-admin
- Pour vérifier l’état du service :
sudo systemctl status GPS3V-admin
- Pour arrêter le service si besoin :
sudo systemctl stop GPS3V-admin
- Pour relancer le service si besoin :
sudo systemctl restart GPS3V-admin
- Pour stopper le service si besoin :
sudo systemctl disable GPS3V-admin
Clonez le dépôt (dans /home/user):
sudo wget https://github.com/PnVanoise/Portail-3-vallees/archive/refs/heads/main.zip
unzip main.zip
Installez les packages (pour les librairies Leaflet, Bootstrap notamment) :
cd Portail-3-vallees/app
npm install
npm install leaflet
npm install [email protected]
npm update --save
Personnalisation de l'application :
- Copiez et éditez le fichier de config situé dans /public :
cp ./config.json.sample ./config.json
- Développement de l’application :
npm run dev
- Sur une IP spécifique :
npm run dev -- --host IP
- Compil de l’application pour la production (création d’un répertoire dist) :
npm run build
Déploiement Apache :
- Copiez la configuration située dans /app :
sudo cp ./conf_apache.template /etc/apache2/sites-available/GPS3vallees.conf
- Editez (le contenu de Location correspond au back-end déployé précédement):
sudo nano /etc/apache2/sites-available/GPS3vallees.conf
- Ajoutez les modules proxy :
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo systemctl restart apache2
- Activez le service :
sudo a2ensite GPS3vallees.conf
- Redémarrez Apache2 :
sudo systemctl restart apache2
Votre site a été mis en ligne. Exemple d'appel API : http://mondomaine.fr/admin/api/v_animals
Ou : http://127.0.0.1:5000/api/v_animals (l'adresse est inaccessible c'est normal)
Basé sur https://docs.geonature.fr/https.html :
- Installez certbot :
sudo apt-get install python3-certbot-apache
- Lancez et générez le certificat pour votre domaine :
sudo certbot --apache --email [email protected]
- Activez les modules :
sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod headers
sudo apachectl restart
N'oubliez pas de modifier le fichier conf.json du front et de passer l'api_url en https.
Votre site est maintenant en HTTPS.
Auteur·ices :
Parc National de la Vanoise
- Alix Cornu-Lachamp
- Claire Lagaye
- Christophe Chillet
Licence :
- OpenSource
- (c) GPS 3 Vallées 2023 Parc National de la Vanoise