Sunu's Weblog

QGIS in the browser through JupyterHub

Turns out, running desktop GIS software in the browser is easier than I thought thanks to the Jupyter ecosystem.

People have been using Jupyterhub for a while now to run notebooks on a remote server. It’s a great way to run code on a beefy machine without having to install anything on your local machine. When working with large datasets, this is a huge advantage since the server can run close to the data and you can access it from anywhere without having to download the data locally.

But Jupyterhub is not just for notebooks. You can run any arbitrary web based application on it thanks to Jupyter server proxy. Jupyter Remote Desktop Proxy extension takes it one step further and lets the users launch a Linux desktop on the Jupyter single-user server and uses the Jupyter server proxy extension to proxy it to the user’s browser through VNC.

If we setup the base image of the launched Linux desktop to have QGIS installed and set up an appropriate desktop entry, the user can launch QGIS from their browser through the VNC session.

All of this takes some work to set up. But thankfully there are some prebuilt base images that we can use that make process a lot simpler.