Jupyter integration
A new Django route "jupyter" enable to start dynamically a jupyter notebook and retrieve a git repo given in parameter.
Example : http://hostname/jupyter?repo=https://github.com/binder-examples/jupyterlab.git
How it works ?
A jupyterhub is started in a new container (cf docker-compose port 8000) with :
- a default spawner : A default spawner will start a notebook server on the same machine running under their system username
- a JWT authenticator : https://github.com/mogthesprog/jwtauthenticator
- a nbgitpuller plugin: https://github.com/data-8/nbgitpuller
When Django receive jupyter?repo=https://github.com/binder-examples/jupyterlab.git
- A new JTW token is created with the username in upm claim field
- A redirect to jupyter is send with bearer=
- Jupyter receive the request, check the token, create the user, start the notebook
- nbgitpuller plugin checkout the git repo
Dockerfile
Dependancies versions are freezed by their github archive url