Dépannage et procédures techniques¶
Accès SSH au serveur puis commandes Django : iarbre-ctl <commande> (iarbre_preprod-ctl en preprod).
Déployer¶
- Merger
devdansmainet pousser.deploy-prod.ymldéploie uniquement ce qui a changé (back/et/oufront/). - Suivre le workflow dans l'onglet Actions. Le smoke test prod se lance à la fin.
- Dérouler la checklist post-déploiement.
Forcer un déploiement back sans changement de code, depuis deploy/ :
Revenir à une version précédente des données¶
- Lister les versions :
iarbre-ctl backup_db list. - Mettre les noms voulus dans
back/.db_recover_target(<dump>, <media.zip>), committer, pousser surmain.
Détails : gestion des sauvegardes.
API ou front indisponible (alerte Uptime Kuma)¶
sudo supervisorctl status:iarbre-backend(API) etiarbre-backend-gisserver(WFS/WMS) doivent êtreRUNNING.- Si non :
sudo supervisorctl restart <nom>, puis lire les logs dans/var/log/telescoop/iarbre/. - DB :
sudo systemctl status postgresql. - Front ou tout le site :
sudo systemctl status nginxetsudo nginx -t. - Vérifier la dernière erreur dans Rollbar et le dernier déploiement dans GitHub Actions. Si le problème suit une MEP, revenir en arrière.
Disque plein (alerte Grafana > 95 %)¶
df -hpuissudo du -xh --max-depth=2 / | sort -h | tail -20.- Nettoyages sûrs :
- cache nginx API :
sudo find /var/cache/nginx/api -mindepth 1 -delete - cache Django :
iarbre-ctl clear_cache - journaux système :
sudo journalctl --vacuum-time=14d - Si le disque se remplit encore, regarder les logs dans
telescoop/iarbre/backend/back/logs/errors.log.
Redémarrages en boucle (alerte supervisor)¶
sudo supervisorctl tail -f iarbre-backend stderr(ouiarbre-backend-gisserver).- Causes fréquentes : mémoire (voir Grafana), migration non appliquée (
iarbre-ctl migrate), DB indisponible.
WFS lent¶
- Dashboard Grafana WFS : repérer les requêtes à grande
bbox_areaou grosfeature_count. - Le WFS tourne sur son propre gunicorn (
iarbre-backend-gisserver) et ne bloque pas la carte. Redémarrer ce seul service si les workers sont saturés.
Certificat qui expire (alerte Uptime Kuma)¶
sudo certbot certificatespour voir la date.sudo certbot renew, puissudo systemctl reload nginx. Commande du premier déploiement : Déploiement.
Mise à jour annuelle des données¶
- Lancer le pipeline en local :
python manage.py run_pipeline(voir Pipeline de plantabilité). - Publier :
python manage.py backup_db backup_db_and_media --zipped. - Mettre à jour
back/.db_recover_target, déployer en preprod, valider, puis MEP. - Mettre à jour le changelog data.