RFC: rustdesk as novnc and vnc alternative?

I noticed that RustDesk is an actively developed remote desktop solution, and I was wondering whether anyone has considered integrating it as an alternative to the websocket-based VNC approach in Open OnDemand..

(context: I deployed it on my desk lab from non-related reasons but once I saw it running I was wondering why I shouln’t offer this to my users at my HPC.

Indeed I’d like to avoid reinventing wheel, etc., so if there are well known reasons why not do this, please share. )

I’m not familiar with RustDesk, but it looks like a nice project. Is there a particular feature or advantage it has over the current VNC approach?

In general if it is possible we would be supportive of adding the option, although we likely won’t have time to implement this ourselves anytime soon unless it provides something important that our current approach is lacking.

@jose-d I’m also curious what benefit this would bring over the existing noVNC implementation. For reference, we are also experimenting in this area of Open OnDemand, and are therefore naturally curious about your motivation!

Correct me if I’m wrong - RHEL 10 drops support for tigerVNC. It also does not support XFCE. GNOME supports VNC but not in the case of multi-user systems.

I, personally, have not tested RHEL 10. We are planning to test it sometime later this year.

Yash

VNC works just fine for now, but I see it as a solution from the past.

At a local HPC-related conference, our national compute provider demonstrated a low-latency desktop streaming solution based on WebRTC, even suitable for gaming.

Various Linux distributions are gradually switching from X11 to Wayland.

So I am looking around in advance.

Was it Selkies? I’ve been eyeballing that project as a possible future path for VDI under OOD. It seems like it should be possible to use RDP and Apache Guacamole as another option.

Glad to see this conversation getting picked up in the community. Previously the developer of selkies reached out to us and even did a demo that was pretty amazing to watch for the 3-D rendering capabilities compared to what is offered currently.

There’s even an open issue over in ood_core where the work for this would need to be done, which was opened by the selkies author:

Fundamentally, the ood_core template system was built to be extensible, basic and vnc are just the two we started with. The main reasons: vnc is great for admins (or has been) because you don’t need much installed for it to run; basic just works for any app with an HTTP server. With the el10 changes though, I think this is a great time to look at providing another option using Selkies.

Selkies provides incredible 3-d rendering for researchers, and this is a top reason we should consider it. Selkies does require a TURN server and that’s the big cost I’ll call out up front, but it’s a standard WebRTC requirement, it can run as a container/VM/off-cluster/public cloud, and it’s a one-time site setup rather than a per-session burden. And, because it uses a container to run the desktop which comes with the software, this sidesteps the el10 host desktop environment issue.

To outline how you would make these changes for anyone that would like to tackle a solution and add it to the variety of templates which we currently have, check out the templates in ood_core:

Essentially, what needs to happen here if you look at the others, is we just need to understand the flow of the launch and write a little bash to launch the app but also handle any strange edge cases at launch. Most of those files look like ruby, but if you look at the vnc template you’ll notice the methods are mostly calling bash to run the scripts in the template dir from the OOD app provided.

So, for example you could add a file named selkies.rb and then largely working off the vnc template file, you can begin to fill this in and work towards parity.

yes. They (academic compute consortium) now provide the Selkies desktop as a Rancher/Kubernetes application.

Rancher is powerful, but it looks too cumbersome as a daily driver UI , one can see the complexity in their how-to here: Desktop .