Installation scripts for SURF ResearchCloud catalog components
View the Project on GitHub UtrechtUniversity/researchcloud-items
Installs JupyterHub, with SRAM login.
Although SURF also has a Jupyter Notebooks component that installs JupyterHub, this component was created to provide some extra features:
The role:
JupyterHub spawns servers (JupyterLab) running under the uid
of the user logged in the browser. Authentication in the browser is handled by SRAM: after logging in, the name of the user is set by SRAM in the REMOTE_USER
header, and this is passed along to JupyterHub. At the moment JupyterHub listens on a TCP port (8000). This means users with shell access (and JupyterLab provides a shell!) can easily bypass authentication by hitting localhost:8000/user/arbitraryusername
– this will spawn a Lab instance running as user arbitraryusername
. Do not provide shell access to untrusted users.
Work is in progress to remedy this issue by letting JupyterHub listen on unix sockets.
This component (unlike SURF’s Jupyter Notebooks component) does configure JupyterLab to use unix sockets to spawn user’s Jupyter kernels.
The following parameters are supported:
jupyter_uri
jupyter_extra_pkgs
jupyter_config_extra
They correspond to the equivalent variables documented for the jupyterhub role
2025 Written by Dawa Ometto (Utrecht University)