Best way to use private Notebooks for professional employee training

Hi there!

I would like to use jupyter notebook in my employee training to let the participants solve several tasks on different topics. For this purpose I have created several notebooks, which of course need several packages in addition to some nb_extensions.

Now of course it doesn’t make much sense if every participant has to download jupyter notebook or docker first and install everything. The optimal solution would be to simply link to the notebooks, which are already running on pre-installed kernels and of course each participant gets a copy of the notebook.

Binder would be the perfect way to do this I think, unfortunately due to company policies the notebooks are not allowed to be in a public repo, but only in a private or company internal gitlab.

What options do I have?

You can run your own private BinderHub: BinderHub — BinderHub 0.1.0 documentation

Howver if you’ve got just one environment containing all notebooks it’ll be easier to reduce the complexity and setup JupyterHub, for example see GitHub - jupyterhub/zero-to-jupyterhub-k8s: Helm Chart & Documentation for deploying JupyterHub on Kubernetes or The Littlest JupyterHub — The Littlest JupyterHub v0.1 documentation

1 Like

And now for something completely different…

In our demo scenario, we deploy the notebook-like RetroLab to a Git(La|Hu)b pages branch in CI. Other approaches include ReadTheDocs (used by the main repo).

We’re very close to being able to host everything (including wheels for the python kernel) offline, so no external CDN calls would be made… unless the user asks for it, e.g. fetch('http://malicio.us')… but they could have done that anyway with a real kernel.

User code is actually executed within the user’s browser. There aren’t a lot of guardrails (as always, very easy to call custom JS) so it’s important Lite sites are served from a separate domain than the main Git(La|Hu)b API… or not, if that’s the whole point of the thing.

We don’t have a solid assessment story at the end, however: one could imagine any number of approaches, from redirecting to existing stores of opportunity e.g. issues, pull requests, mailto links, etc.

3 Likes

Thanks mate for your tips!
If I’m getting it right - I would need to configure a user per participant with (littlest) JupyterHub in order to guarantee that each participant gets a “copy” which he can modify without changing the original file, correct?

1 Like

Exactly, each user gets their own environment. You can use something like nbgitpuller — nbgitpuller 0.1b documentation to populate/update your training notebooks and data if you want.

1 Like