Desktop alternatives to VNC integration in Open OnDemand

Hello,

I would like to know whether Open OnDemand supports any interactive desktop solution other than VNC that can be integrated with it.

Currently, I understand that Open OnDemand commonly uses VNC-based desktop sessions for remote graphical access. I am exploring whether there are other supported or community-tested options, such as NICE DCV any other desktop/session streaming solutions, that can be integrated with Open OnDemand.

Has anyone implemented or evaluated alternatives to VNC with Open OnDemand? If yes, could you please share any guidance, documentation, limitations, or best practices?

Thank you.

Hi:

The simple answer is, not really, but there is a lot of interest in that.

With the general industry migration from X Server to Wayland, the core dev team is spending significant time trying to figure out the best way to handle this, and part of that involves which protocols to support.

For example, there has been some interest from the Selkies (which is WebRTC) dev team in integrating with Open OnDemand (there are some other threads here on discourse you can search for with much more details).

AWS actively supports Open OnDemand deployments (see GitHub - aws-samples/open-on-demand-on-aws · GitHub ) and since they own NICE DCV, I believe there are some instances where clients are using NICE DCV with the platform. But that isn’t something broadly documented.

The other main protocol out there is RDP, which is primarily a Microsoft Windows ecosystem thing. Like with AWS, Microsoft Azure actively supports Open OnDemand (see Quickstart - Deploy Azure CycleCloud Workspace for Slurm - Azure CycleCloud | Microsoft Learn ) and I believe there are some instances where clients are using RDP clients, but it’s not broadly documented.

As always, the core dev team is very limited in our time and expertise, so we encourage active support / engagement with the community in terms of development tasks.

Hi, thanks for the information and the detailed explanation.

We’re specifically looking for an alternative to VNC, and NICE DCV seems like a good fit for our use case. Do you happen to have any documentation, examples, or guidance on integrating NICE DCV with Open OnDemand? Even if it’s an internal implementation, community example, or proof of concept, any information or pointers would be very helpful.

Thanks again for your time and assistance!

AWS has a repo walking through what they’ve done with NICE DCV integration: GitHub - aws-samples/openondemand-dcv · GitHub

And there are some discourse threads on this board about it, such as this one: NICE DCV integration Open OnDemand

Do IT Now have done deployments of NICE DCV with Open OnDemand, but I do not have any more details beyond that. @Christian-bustelo, @laura-olivera99, @leahhan, or @kErica - what might be the best way for @Avinash-Komali to get in contact with your team(s) for a discussion or consultation?

I played around some with selkies, mostly for testing out Wayland options. Problems there is that there isn’t any client side resizing (which I consider quite essential). It doesn’t like server resizing buffer at all i think (segfaults). Bandwidth is quite a bit higher due to constant full frames. If you are watching videos, streaming a game, maybe this is viable, but I wouldn’t consider it for HPC use.

We run an experimental RDP solution (using xrdp). Positive: you can get a rdp gateway and allow users to run local clients to connect. It’s.. a bit complicated to set up to be honest, we really only have it because an expert colleague of mine spent quite a bit of time working on it (i.e. wrote our rdp gateway, experimental xrdp builds, and custom PAM modules for auth)

(Side note: very disappointing that DCV with all it’s enormous commercial backing hasn’t even figured out Wayland server support yet after many years. Such incompetence)

after discussion here, RFC: rustdesk as novnc and vnc alternative? - #8 by jose-d , I started to play with selkies too.

works for me actually™. - do we mean the same - you resize local firefox window, and the desktop within resizes too?

I went with master/main branch of selkies. maintainers indicated they prepare new major release.

It was some time back, quick testing with existing binaries to try it out but it is lost to my bash_history. I recall not getting the desktop to resize, and triggering a manual resolution update on the server side to force the issue resulted in a crash. I was presumably just doing good old X11 for that, so a xrandr. (or sway + swaymsg resize in case it really was wayland).
I have been a bit concerned selkies was going the xdg-desktop-portal route (what, e.g. Zoom uses to capture your screen), which AFAIK doesn’t have any client side resizing going on.

But I see now there is massive movement in selkies. Happy to see it (i hope it’s not all AI slop…)

Really happy to be wrong though. PixelFlux looks really cool, and a similar approach to w0vncserver, cage+wayvnc, and possible weston+freerdp, + probably what turbovnc wants to do down the line. I’ll be sure to make easyconfigs of them all :slight_smile:

Have you managed to get GPU accelerated EGL/GLX inside your KDE Plasma? Usually that has been the tricky part for me.

Have you managed to get GPU accelerated EGL/GLX inside your KDE Plasma? Usually that has been the tricky part for me.

nn, I even did not try, my folks aren’t running any GPU-accelerated GUI at our facilities, we burn our GPUs with numeric things.

What remains to be done/tried is the webRTC mode of selkies - the POC implementation above is using selkies in the websocket mode, so that’s indeed reason why it integrated so easily with existing OOD piping.