JupyterHub proxy implementation with traefik

jupyter, jupyterhub, traefik, proxy
pip install jupyterhub-traefik-proxy==0.3.0


JupyterHub Traefik Proxy

Documentation build status GitHub Workflow Status Latest PyPI version GitHub Discourse Gitter

When JupyterHub starts a server for a user, it will dynamically configure a proxy server so that accessing jupyterhub.example.com/user/<user> routes to the individual Jupyter server. This project contains what JupyterHub need to dynamically configure the routes of a traefik proxy server! There are three implementations of the JupyterHub proxy API, depending on how traefik store its routing configuration.

For smaller, single-node deployments:

  • TraefikFileProviderProxy

For distributed setups:

  • TraefikEtcdProxy
  • TraefikConsulProxy


The documentation contains a complete installation guide with examples for the three different implementations.

Running tests

There are some tests that use etcdctl command line client for etcd. Make sure to set environment variable ETCDCTL_API=3 before running the tests, so that the v3 API to be used, e.g.:

$ export ETCDCTL_API=3

You can then run the all the test suite from the traefik-proxy directory with:

$ pytest -v ./tests

Or you can run a specific test file with:

$ pytest -v ./tests/<test-file-name>