Advanced JupyterHub Appliance

Warning: This is a very advanced tutorial for setting up a complex Jupyter service. For a basic, minimal implementation, please refer to the basic appliance artifact.

JupyterHub is a multi-user Jupyter Notebook environment that allows easy management of multiple Notebook servers. You can install this application on a node reserved by Chameleon to allow you to take advantage of additional resources, e.g. a private experiment network you provide or accelerator devices such as GPUs.

This appliance is exposed over the public internet via a TLS-secured endpoint and supports a user registration flow where any user can register to use the Hub after their account is approved by a Hub admin, making it nicely adaptable for workshops or class exercises.


  • Leverage Chameleon hardware. By installing JupyterHub on a Chameleon node, you can provide a more powerful working environment for any user of the Hub and additionally leverage attached devices such as GPUs.
  • Pre-build Notebook environments for users. All user environments are stored in Docker containers, and the source image can be customized. This can let you design courses or workshops that require some special setup within the Notebook environment.
  • Support for multiple Notebook environments. Allow users to pick a predefined environment from a list. This option is nice if you don't want to have a single environment with all dependencies or libraries needed.
  • Support self-service registration. Anybody can access the Hub and register for an account, but will not be able to have access until approved by a Hub admin user. This flexible model can easily support workshops, classes, or one-off collaborations.
  • Provide common datasets to users. One common use-case for a shared Hub is to provide exercises that require manipulating source data. Large datasets can be centrally managed on the Hub and distributed to all user containers in read-only mode, allowing users to easily access the data without risking the data integrity.

Support contact:


  • 2022-07-08: Fixed numerous bugs and streamlined process
  • 2021-06-09: Fixed an issue where the keypair created by the Notebook did not match the keypair referenced by the orchestration template.
340 28 - 8 Aug. 31, 2023, 7:23 PM


Digital Object Identifier (DOI)

10.5281/zenodo.3463620 (2019-09-27T20:08UTC)