Data scientists using JupyterHub to build dashboards or visualisations for non-technical decision makers may be interested in my new ‘Dashboards’ project.
This extends JupyterHub so a Notebook server can be cloned into a user-friendly Voila dashboard version which can be immediately and securely viewed by other authenticated users.
How it works, in screenshots:
Having built my notebook on my JupyterHub server, click on the new Dashboards menu in JupyterHub to create a Dashboard. Pick the Jupyter server I’ve been working on as the ‘source server’:
In the Dashboards screen I can see a list of my own dashboards. I can also see other JupyterHub users’ dashboards, and they can see all of mine too:
If they click on my new dashboard, they can authenticate into the dashboard:
The dashboard is really just a new server running Voila instead of Jupyter Notebook. So it is user-friendly and safe since the user can’t run any arbitrary code:
You can find out more and try it out from GitHub: ContainDS Dashboards.
Basic requirements:
- JupyterHub 1.0+
- DockerSpawner 0.11.0+
- Python 3.6+
The Docker image used in your JupyterHub has some required packages to be installed (Voila and jhsingle-native-proxy) - I have published Docker Hub examples.
In principle, this framework can be used to present non-Jupyter sources (e.g. Streamlit, Dash, Flask from a Git repo), leveraging JupyterHub’s security and hosting framework.
I would also like to support configurations other than just DockerSpawner, e.g. Kubernetes and maybe even LocalSpawners could work.
I would really appreciate any feedback from anyone interested in trying it out (and I’m very happy to help with installation and deployment planning for free: dan@containds.com)