Skip to content

Access TurboVNC via a unix socket instead of a port #145

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

Merged
merged 3 commits into from
Mar 17, 2025

Conversation

consideRatio
Copy link
Member

@consideRatio consideRatio commented Mar 16, 2025

By exposing the TurboVNC vncserver with a unix socket file, created by jupyter-server-proxy with read/write permissions only for the current unix user, TurboVNC becomes suitable for example in the-littlest-jupyterhub deployments. The key difference is that multiple users can run their own VNC servers now without exposing it to other users, as a unix socket file compared to a TCP port, comes with user specific permissions.

Breaking change

This requires TurboVNC 3.1.0 and is due to this a breaking change worth highlighting in a major release.

From the 3.1 beta.1 changelog:

  1. The TurboVNC Server can now listen on a Unix domain socket, rather than a
    TCP port, for connections from VNC viewers. This is useful in conjunction with
    SSH tunneling, and it also allows the Unix domain socket permissions to act as
    an authentication mechanism for a TurboVNC session. Two new Xvnc arguments,
    -rfbunixpath and -rfbunixmode, can be used to specify the Unix domain
    socket path and, optionally, the permissions. A new vncserver argument,
    -uds, causes the script to automatically choose an appropriate Unix domain
    socket path under the TurboVNC user directory. See the Xvnc and vncserver
    man pages for more details.

The options -rfbunixmode and -uds shouldn't be of relevance since we use a pre-created socket file by jupyter-server-proxy.

Copy link

github-actions bot commented Mar 16, 2025

Binder 👈 Launch a binder notebook on this branch for commit c3b2c9f

I will automatically update this comment whenever this PR is modified

Binder 👈 Launch a binder notebook on this branch for commit 9fad4eb

@manics
Copy link
Member

manics commented Mar 17, 2025

Can you update the VNC server section of the README to say the vncserver must support UNIX sockets?

@consideRatio consideRatio force-pushed the pr/use-unix-socket-in-turbovnc branch from c3b2c9f to 9fad4eb Compare March 17, 2025 13:38
@consideRatio
Copy link
Member Author

@manics thank you for the quick review! I rebased and added the commits abe5030 9fad4eb

@manics manics merged commit 6cde856 into jupyterhub:main Mar 17, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants