Run Linux Desktop Apps in / your JupyterHub

Cross posted from the Jupyter Discourse, as I think the qgis work might interest the community here. Would love to find more actual desktop apps this community wants to run on the cloud, and collaborate on making things better!

The excellent jupyter-remote-desktop-proxy enables you to run arbitrary Linux desktop applications in or on your own JupyterHub! Here are a few fun examples:

Basically anything you can run on a Linux desktop can run inside your browser, with fairly usable latencies. This is extremely helpful when part of your workflow might involve pre-developed scientific software that is not really web friendly. It’s also cool, so there’s that.

I’ve developed a template repository with instructions on how you can make your own binderable repo that can run any desktop app you want. There’s more work to be done in the upstream library, but this should hopefully help you play with unlocking new scientific and educational workflows that were not possible before.

Special thanks to my friend Sanjay Bhangar for recent encouragement!


Thanks for sharing Yuvi! That template repository looks great.

One fun thing we do with the QGIS environment on the Planetary Computer Hub is to automatically launch the application. For binder, you could perhaps bake that into the image: planetary-computer-containers/qgis.desktop at 30a3a5f44390fc56963c1b4eebbf27873419219a · microsoft/planetary-computer-containers · GitHub

For JupyterHub, we use a post-start hook to write that config to the users’s home directory: planetary-computer-hub/ at b2893bb7a86f4ed46de1415c4d9a8a3c4d7f4c86 · microsoft/planetary-computer-hub · GitHub.

It makes for a nice experience to drop directly into the application when the profile is focused on a specific application.

1 Like

I’m in the process of building a JupyterHub deployment on Oracle Cloud Infrastructure - I’d love to work with you to adapt my documentation to incorporate these templates.

Are you going to be at AGU next week?

Awesome, @TomAugspurger! I’ve put that code in start, which is also run at the start of the user server each time. This way, you can keep everything in the image. Would be great to add this to the template!

Ah, I’m unfortunately not at AGU. But happy to do what I can :slight_smile: