THIS IS A WORK IN PROGRESS
Understanding JupyterHub by deploying it step by step.
We want to help you build understanding of JupyterHub and its core components: proxy, authenticator, spawner. This tutorial goes through a series of labs to progressively customize JupyterHub beyond its defaults. The configurability of JupyterHub enables its use in a variety of deployment settings. This benefits our users, but also makes it difficult to recommend a one-size-fits-all deployment. By helping you understand how JupyterHub works, we hope you will be able to confidently customize JupyterHub to suit your deployment needs.
This is first a learning tool, and not meant to be a final production-ready deployment. What you learn following this tutorial should still be applicable when using a prepared distribution, such as Zero to JupyterHub on Kubernetes or The Littlest JupyterHub
The combination of JupyterHub and JupyterLab is a great way to make shared computing resources available to a group.
These instructions are a step-by-step tutorial for a manual, 'bare metal' install of JupyterHub and JupyterLab. This is ideal for running on a single server: build a big machine and share it within your lab, or request a virtual machine from any VPS or cloud provider.
This guide produces similar results to The Littlest JupyterHub. However, instead of bundling all these steps for you into one installer, we will perform each step manually. This makes it easy to customize any part (e.g. if you want to run other services on the same system and need to make them work together), as well as giving you full control and understanding of your setup.
In this tutorial we will:
- Install packages required to run JupyterHub and JupyterLab
- Integrate JupyterHub and its proxy to be managed by the system supervisor
systemd - Configure JupyterHub
- Select and configure an alternative Spawner (DockerSpawner)
- Select and configure an alternative Authenticator (GitHub)
- Select and configure an alternative proxy (Traefik)
- Enable HTTPS with Let's Encrypt
all by hand.
The Labs are listed in the table of contents on the side. Get started with the .
There is a more complete (no "TODO" items), but less detailed, from-scratch deployment doc in . This will eventually be removed when the full tutorial is more complete.
Inspired by Kelsey Hightower's Kubernetes The Hard Way
Notes from JupyterHub September 2019 Oslo Meeting