Cylc 8 - JupyterHub

Hi,

We’re looking at getting the Cylc 8 web user interface going on PUMA2/ARCHER2. We’ll be needing JupyterHub for the multi-user setup but do not require the ability for a user to control another user’s workflows.

As I understand it the system administrators wish to provide us web access to PUMA2 (workflow host) via a reverse web-proxy. From the JupyterHub documentation it looks like JupyterHub should work fine with a reverse proxy. Before they invest work in trying to set this up for us I wanted to check if there were any further requirements from Cylc which might make this setup difficult or non-viable?

Can you also confirm that the Cylc UI does not need access to the root of the domain?

Thanks.
Cheers,
Ros.

We’ll be needing JupyterHub for the multi-user setup but do not require the ability for a user to control another user’s workflows.

No problem, these permissions must be granted explicitly. Note, you can allow users to give read-only access to other users (it doesn’t have to be full control).

As I understand it the system administrators wish to provide us web access to PUMA2 (workflow host) via a reverse web-proxy.

Jupyter Hub spawns servers on behalf of users. It uses a reverse proxy to map the user-facing URL to the host and port where their server is running. Jupyter Hub either uses the configurable-http-proxy (nodejs) or Trafik proxy (Python) for its reverse proxy, the configurable-http-proxy is the default if you are installing Jupyter Hub via Conda/Mamba.

There shouldn’t be any issues with using additional proxies on top of this, although each additional proxy is an extra thing to go wrong. The main thing to watch out for is to ensure that any proxies used are appropriately configured for websockets which are used by both Jupyter Lab and the Cylc UI. I think there is some Jupyter Hub documentation out there with an example nginx setup.

Can you also confirm that the Cylc UI does not need access to the root of the domain?

Similar to Jupyter Lab, Cylc UI will make use of some Jupyter Hub APIs, but nothing above that.

Thanks Oliver. I’ll let you know how it goes. :crossed_fingers:

1 Like