/jupyterhub-docker

A configuration for a JupyterHub+DockerSpawner+CASAuthenticator server with Traefik proxy, based on docker-compose

Primary LanguagePythonMIT LicenseMIT

JupyterHub deployment in use at Université de Versailles

This is a JupyterHub deployment based on Docker currently in use at Université de Versailles.

Features

  • Containerized single user Jupyter servers, using DockerSpawner;
  • Central authentication to the University CAS server;
  • User data persistence;
  • HTTPS proxy.

Learn more

This deployment is described in depth in this blog post.

Adapt to your needs

This deployment is ready to clone and roll on your own server. Read the blog post first, to be sure you understand the configuration.

Then, if you like, clone this repository and apply (at least) the following changes:

  • In .env, set the variable HOST to the name of the server you intend to host your deployment on.
  • In reverse-proxy/traefik.toml, edit the paths in certFile and keyFile and point them to your own TLS certificates. Possibly edit the volumes section in the reverse-proyx service in docker-compose.yml.
  • In jupyterhub/jupyterhub_config.py, edit the "Authenticator" section according to your institution authentication server. If in doubt, read here.

Other changes you may like to make:

Run!

Once you are ready, build and launch the application with

docker-compose build
docker-compose up -d

Read the Docker Compose manual to learn how to manage your application.

Acknowledgements

Work partially funded by the EU H2020 project OpenDreamKit.