Les extensions QGIS Serveur et comment les gérer
Extensions QGIS
Que serait QGIS sans ses extensions ? C'est surement la première chose que l'on fait une fois que l'on vient d'installer QGIS sur un nouvel ordinateur. On ouvre le gestionnaire des extensions et on installe nos extensions favorites.
QGIS Bureautique fournit une interface graphique intuitive pour gérer ses extensions. Vous pouvez facilement les lister, les installer ou les mettre à jour.
Astuce rapide, dans votre gestionnaire, onglet "Paramètres", n'oubliez pas de cocher la case Chercher des mises à jour au démarrage au moins une fois par mois. Cela serait triste de ne pas profiter des dernières fonctionnalités ou alors de continuer à voir le même bug alors qu'il est déjà corrigé dans une version récente.
Extension QGIS Serveur
Peut-être que vous ne le savez pas, mais vous pouvez ajouter des extensions sur QGIS Serveur également. Vous pouvez trouver la liste des extensions compatibles pour le serveur sur plugins.qgis.org. Une extension sur QGIS Serveur peut-être utile pour ajouter des nouvelles fonctionnalités ou alors modifier le fonctionnement par défaut. Regardons l'exemple concret de l'extension ci-dessous.
Un cas pratique, le cas de WfsOutputExtension
Le WFS est un standard défini par l'Open Geospatial Consortium afin de permettre aux utilisateurs de télécharger des données vectorielles de QGIS Serveur dans un client OGC tel que QGIS Bureautique, ArcGIS ou tout autre application Web-SIG (disonsLizmap Web Client par hasard). Par défaut, ce standard permet le téléchargement des données au format GML uniquement. Cependant, nos clients souhaitent pour la plupart télécharger dans des formats plus communs comme un shapefile compressé, un geopackage, un fichier ODS ou CSV.
C'est pourquoi à 3Liz, nous avons développé l'extension serveur WfsOutputExtension.
Cette extension ajoute des formats d'exports additionnels à la volée. En arrière-plan, il intercepte la requête GetCapabilities WFS et ajoute les formats supplémentaires dans la réponse.
Du côté du client OGC, l'utilisateur peut choisir un de ces formats lors de la demande des données vectorielles. C'est visible par exemple dans l'interface du client web Lizmap :
QGIS-Plugin-Manager
Comme dit plus haut, QGIS Bureautique permet, à l'aide d'une interface graphique intuitive, de gérer les extensions du dépôt principal QGIS. Mais quand vous êtes sur un serveur, il n'y a pas d'outil pour installer ou mettre à jour les extensions. À 3Liz, pour gérer notre infrastructure, nous utilisons des outils de déploiement comme Ansible pour installer les extensions.
Mais nous déployons aussi QGIS Serveur et Lizmap Web CLient sur les serveurs de nos clients, en dehors de
notre infrastructure. Cela signifie qu'ils hébergent leur propre serveur et qu'ils nous demandent de faire
l'installation et la maintenance de ce dernier. Dans ce contexte, nous installions au début les extensions
QGIS Serveur à l'aide des commandes wget
, unzip
etc. Ceci n'est pas très pratique ni robuste sur long terme.
C'est pourquoi, j'ai commencé un petit outil Python en ligne de commande pour lister, installer et mettre à jour les extensions dans un environnement sans interface graphique (comme un serveur Linux).
Cet outil peut être installé avec PIP sur un serveur via la commande suivante :
pip3 install qgis-plugin-manager
Ensuite, vous pouvez utiliser la commande qgis-plugin-manager
, par exemple pour avoir la liste des extensions
depuis une console bash :
$ qgis-plugin-manager list
QGIS server version 3.19.0
List all plugins in /home/etienne/dev/qgis/server_plugin
----------------------------------------------------------------------------------------
| Name | Version | QGIS min | QGIS max | Author | Action ⚠ |
----------------------------------------------------------------------------------------
|Lizmap |master |3.4 |3.99 |3Liz |Unkown version |
|wfsOutputExtension|1.5.3 |3.0 | |3Liz | |
|QuickOSM |1.14.0 |3.4 |3.99 |Etienne Trimaille|Upgrade to 1.16.0|
|cadastre |1.6.2 |3.0 |3.99 |3liz | |
|atlasprint |3.2.2 |3.10 | |3Liz | |
----------------------------------------------------------------------------------------
En arrière-plan, cet outil utilise les concepts d'APT et de PIP. Il est connecté par défaut au dépôt principal de QGIS, mais vous pouvez également utiliser votre propre dépôt d'extensions comme celui de 3liz : https://docs.3liz.org/plugins.xml.
Je vous suggère de lire la documentation dans le fichier readme. Ce projet est hébergé sur GitHub donc n'hésitez pas à faire des tickets ou encore mieux un "pull request" si vous voulez contribuer 😉.
Note, si vous avez déjà installé QGIS-Plugin-Manager, n'oubliez pas de faire la mise à jour de temps en temps :
pip install --upgrade qgis-plugin-manager
. Nous sommes actifs !
Etienne Trimaille