Run Linux Desktop Apps in mybinder.org / your JupyterHub

The excellent jupyter-remote-desktop-proxy enables you to run arbitrary Linux desktop applications in mybinder.org 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!

8 Likes

Very cool! Jason Grout wanted me to post that I implemented something similar for CoCalc – CoCalc – Run X11 Desktop Graphical Linux Applications

User feedback is interesting, since this can make it possible for them to do solve subtle edge case problems. E.g., often people run Firefox this way, or a random obscure ancient Java UI library for some scientific application.

1 Like

Wow, https://xpra.org/ looks super cool, @William_Stein! Thank you for sharing that! Have you had experience with people running stuff that requires GL / GPUs on it? How has that been?

1 Like

I’ve discovered that GitHub - FZJ-JSC/jupyter-xprahtml5-proxy: Jupyter extensions for running a Xpra Session proxy exists as well!

1 Like

I don’t have such experience. If you want to test out what we wrote via Docker, install this GitHub - sagemathinc/cocalc-docker: Docker setup for running CoCalc as downloadable software on your own computer and it is easy to then use our xpra integration…

This has really been a great help for my students, so thank you for your work on this @yuvipanda ! We have been using it for the last month or so on our JHub/JLab servers. We have had to check over network policy and ensure traffic is limited to prevent intruder access, but that’s all very reasonable for something like this.

1 Like

Hey, this is a great post!

Is it possible to run the application from a container (say if the container exposes vnc)?

The remote desktop route also gives you the opportunity to run some old Windows desktop apps under wine, eg GitHub - ouseful-demos/jupyter-desktop-server: Run a Linux Desktop on a JupyterHub - Wine Demo

One issue I’ve found with a lot of remote web desktops is that video can be choppy and audio support either not available or a hassle to try to figure out… (RDP tends to work a bit better, IIRC.)

1 Like

I’m trying to get web-based RDP working for another side-project using Guacamole… I’ll let you know if it works :slight_smile:

1 Like

@manics - re: RDP; that could be interesting:-) I don’t think I ever tried to get RDP sessions running from MyBinder; I think I (re)used a Linux-RDP container on hosting elsewhere with all my RDP experiments.

–tony

1 Like