What is the jupyterhub-singleuser conda package for?

The jupyterhub-singleuser conda package is an empty metapackage for convenience to represent the standard required packages to run a single-user server: jupyterhub-base and jupyterlab. It is not required on its own, and can always be replaced by those two dependencies (or indeed alternatives to jupyterlab, like nbclassic or retrolab). So as long as you have jupyterhub and any jupyter-server-based server in the image, you should be all set. But if you’re not sure what you need, then jupyterhub-singleuser is a good start. That’s what it’s there for.

The Python package jupyterhub contains the code for the jupyterhub Hub and the authentication for single-user servers. It does not include the single-user server itself, which can be provided by jupyterlab, notebook, jupyter-server, etc. Similarly, it does not include a proxy implementation, required to actually run jupyterhub. Since conda can represent cross-language dependencies, jupyterhub is presented as 3 packages:

  • jupyterhub-base (just the Python package)
  • jupyterhub metapackage adding configurable-http-proxy dependency, so that conda install jupyterhub results in a working jupyterhub server
  • jupyterhub-singleuser metapackage adding jupyterlab so you have what you need to run a single-user server

But jupyterhub-base is the only non-empty package, and is identical to pip install jupyterhub. The rest are dependency bundles for convenience.

1 Like