New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Access the desktop environment of a workspace #2106
Comments
|
I did a quick search for a native go vnc server and didn't find much, which is a bummer because that would fit in really nicely here. I did find this, but I can't really read it. It has tags for vnc and rdp and is half go half js, so could be something - https://github.com/dushixiang/next-terminal |
|
I've heard great things about apache guacamole: https://guacamole.apache.org/ |
|
Even if there was a native Go VNC server, we'd still need an X11 server so it wouldn't save us much @f0ssel. We could totally do something with the Apache Guacamole approach. That would solve our Windows woes. |
Came here to recommend Guacamole as well. Multiple customers have brought up Guac on calls talking about desktop experience on Coder workspaces. |
|
I am not a fan of novnc because there is no shared clipboard and many more things. I absolutely love this image from linuxserver's team https://docs.linuxserver.io/images/docker-webtop If we can adopt the technology used behind this or simply use this inside a workspace |
|
Kyle and I talked offline about this but this seems better defined as an app than a coder-provided function. Everything that we offer right now works out of the box. For VNC to work correctly the user needs to have already installed x11. |
This makes sense and I think it aligns well with our proposed templates strategy |

It'd be useful to access the desktop environment of a workspace in Coder.
This would be implemented as a native access application, similar to the web terminal. A command would be added too, something like:
coder desktop <workspace>orcoder open desktop <workspace>.Implementation
VNC clients will use noVNC through the browser. This should use noVNC APIs to hide the overlay user interface, making it feel like a native experience.
RDP clients don't currently have a web-based solution (💡 ideas are welcome here). An initial implementation could exclude Windows and still provide significant value, so this shouldn't be a hard blocker!
Although implementations with RDP and VNC are different, we should make this transparent to the user to deliver a consistent experience.
Linux and macOS
Specify a VNC server address in the
coder_agentresource (naming subject to change):In the absence of a VNC server specified:
x11vncon$PATHand start it with the agent when VNC is requested.Expose the VNC connection through a new DataChannel protocol, and pipe it to a WebSocket endpoint.
Windows
Specify a RDP server address in the
coder_agentresource (naming subject to change):In the absence of an RDP server specified, attempt to start it (I googled around a bit, but was unable to find much).
Expose the RDP connection through a new DataChannel protocol, and pipe it to a WebSocket endpoint.
The text was updated successfully, but these errors were encountered: