Skip to content

jupyterhub/jupyterhub-the-hard-way

JupyterHub the Hard Way

THIS IS A WORK IN PROGRESS

Understanding JupyterHub by deploying it step by step.

Motivation

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

Overview

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.

Goals

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.

Labs

The Labs are listed in the table of contents on the side. Get started with the .

Alternative walkthrough

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.

Inspiration

Inspired by Kelsey Hightower's Kubernetes The Hard Way

Project Notes

Notes from JupyterHub September 2019 Oslo Meeting

About

Understanding JupyterHub by deploying it step by step

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published