A QGIS3 server deployment showcase, mainly for testing purposes it contains some interesting server plugins and Python wrappers.
Recently I was invited by the colleagues from OpenGIS.ch to lend a hand in a training session about QGIS server.
This was a good opportunity to update my presentation for QGIS3, to fix a few bugs and to explore the powerful capabilities of QGIS server and Python.
As a result, I published the full recipe of a Vagrant VM on github: https://github.com/elpaso/qgis3-server-vagrant
The presentation is online here: http://www.itopen.it/bulk/qgis3-server/
What’s worth mentioning is the sample plugins (I’ll eventually package and upload them to the official plugin site):
- XYZ: add simple XYZ tile server, ready to use within QGIS XYZ connections: https://github.com/elpaso/qgis3-server-vagrant/tree/master/resources/web/plugins/xyz
- custom service, does nothing but shows how to create a Python custom service by exploiting the new service capabilities available in QGIS3: https://github.com/elpaso/qgis3-server-vagrant/tree/master/resources/web/plugins/customservice
- HTTP Basic auth (how to add your auth scheme to QGIS server): https://github.com/elpaso/qgis3-server-vagrant/tree/master/resources/web/plugins/httpbasic
- more …
The VM uses 4 different (although similar) deployment strategies:
- good old Apache + mod_fcgi and plain CGI
- Nginx + Fast CGI
- Nginx + standalone HTTP Python wrapped server
- Nginx + standalone WSGI Python wrapped server
Have fun with QGIS server: it was completely refactored in QGIS 3 and it’s now better than ever!