GOLANG version of JupyterHub.
Do not use this in production, it is for prototyping purposes
This project aims to provide:
- Login (no password used for now)
- session handling, so that a user can authenticate
- handle notebook startup
- DockerDesktop
- DockerEE
- provide admin overview
- Proxy http request to jupyterhub
- Proxy websocket from notebook to kernel (use
NotebookApp.websocket_url : Unicode
to leverage service?)
JupyterPort has a pluggable backend system to spawn the notebooks.
- docker uses
/var/run/docker.sock
to fire up plain containers (no docker service or kubernetes pod) - kubernetes uses a kubernetes service account to create a deployment and a service for each notebook
The Kubernetes.md file has a how-to going to the steps to set up the kubernetes stack.
Some pieces are missing, including
- Create a random token and show it in the notebook list
- use a reverse proxy, so that the notebook does not need to expose a port, but is access through the JupyterPort webserver
- Static route so that user-mynotebook is proxied
- make this dynamic when a notebook is created
- the port selection should be randomized, so that one does not know in advance which ports are unused
In addition to the general TODOs, the kubernetes spawner has more..
- Direct URL is not showing correctly