An implementation of the JupyterHub proxy api with traefik: an extremely lightweight, portable reverse proxy implementation, that supports load balancing and can configure itself automatically and dynamically.
There are three versions for the proxy, depending on how traefik stores the routes:
- for smaller, single-node deployments:
- TraefikTomlProxy
- for distributed setups:
- TraefikEtcdProxy
- TraefikConsulProxy
You can find a complete installation guide here.
The latest documentation is available at: https://jupyterhub-traefik-proxy.readthedocs.io/en/latest/.
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 with:
$ pytest -v ./tests/<test-file-name>
- For TraefikTomlProxy: https://jupyterhub-traefik-proxy.readthedocs.io/en/latest/toml.html#example-setup
- For TraefikEtcdProxy: https://jupyterhub-traefik-proxy.readthedocs.io/en/latest/etcd.html#example-setup
- For TraefikConsulProxy: https://jupyterhub-traefik-proxy.readthedocs.io/en/latest/consul.html#example-setup
You can use the configuration examples in the examples
directory in order to configure JupyterHub to run with TraefikProxy.