JupyterHub

JupyterHub is a multi-user Hub that spawns, manages, and proxies multiple instances of the single-user Jupyter notebook server. It is what organizations typically install (in a single server, cloud, or HPC) to provide Jupyter environments for a potentially very large group of users. Users can through a JupyterHub get started working in a Jupyter environment without any prior setup.

Conceptual model of JupyterHub

JupyterHub conceptual model

Image credit: Chris Holdgraf. Presented at the SDSS Conference. Original slides.

JupyterHub distributions and deployments

A JupyterHub distribution is an installation bundle including JupyterHub, and a JupyterHub deployment can be thought of as a specific installation of JupyterHub. In this section we summarize two notable JupyterHub distributions with associated guides and some notable deployments.

Single server

The Littlest JupyterHub (TLJH) is a JupyterHub distribution to run on a single server, aimed at a smaller number of users (0-100). It can for example suitable for a class or a small research group. The documentation includes a section on when to use TLJH to determine if this is the right tool for you. The installation instructions are thorough and takes you from little experience and no server to having a having a server with a JupyterHub.

As each user server spawned (created) by a TLJH based JupyterHub will run on the same server, it is relatively easy for administrators work with shared storage and adjust the users’ available libraries etc.

Cloud

Zero to JupyterHub on Kubernetes (Z2JH) is a JupyterHub distribution to run on a cloud (Kubernetes cluster) aimed at a larger group of users (100+) or a group of users with significant hardware needs. It can for example be suitable for an university or a research group performing work that a laptop would struggle with.

As each user server spawned (created) by a Z2JH based JupyterHub will be more isolated from each other (Docker containers), potentially on potentially different servers, it is relatively complicated to work with shared storage and adjust the users’ available libraries etc in a Z2JH deployment.

HPC

For installation of JupyterHub in High-performance Computing (HPC) centers there are no official JupyterHub distribution, but there are useful components such as the BatchSpawner, SlurmSpawner, and more that are commonly used.

Here are some links to deployments on some of the major HPC facilities in the US that are accessed by geoscience researchers:

If you would like add to this list, please feel free to suggest a change in the source repository.