How to share notebooks with other users on jupyterhub

Hello,

what are my options to share notebooks with other users within my organization, within the same jupyterhub instance ? By that I mean the ability for other users to not only clone the notebook itself, but also to spawn the associated kernel (special docker images in our case). That is, I want others to be able to execute those published notebooks.

I’ve read about extensions like voila or cdsdashboards, but I’m unable to make them work due to version-related incompatibilities.

Are there any established routes or setups to do the above ? I can’t imagine being the only one with such a request…

Many thanks,

The easiest is to have a shared folder (either read-only or read-write) that everyone can access. You could also use nbgitpuller, a startup script to copy a repository of notebooks, or RTC collaboration

Thanks, but that doesn’t serve quite the use-case I have in mind. In particular, the original notebooks should remain immutable (so operating out of a shared directory doesn’t seem a good idea). Also, most of the users may not even be tech-savy enough to wanting to know about notebooks. They only want to see (and execute) the dashboard.

Not sure if this is helpful, but we are creating our own open source analytics workspace management solution that deals with this issue by leveraging kubernetes capabilities alongside the existing kubernetes kubespawner.

The workspace management solution stores a workspace definition as a kubernetes custom resource alongside binding definitions which bind a user to a workspace. These definitions are read by our extended version of the jupyter hub container image which uses it to display the list of available workspaces, by default a workspace will provision two storage accounts.

The first storage is dedicated to the workspace and can be edited by the workspace. The second storage is presented to the notebook as a read-only so that we can provide shared scripts.

We are also in the very early days of developing a management portal to manage all of this.

That said that’s just how we are using it at the moment, the scripts can be easily modified for other use cases as well and we’re hoping we can encourage others in the community to contribute.

The documentation is still very much a work in progress but if you’re interested do feel free to have a look:

2 Likes

Thank you very much for sharing that information.

Just for the record: I discovered Nebari, and specifically, stumbled over Create, deploy, and share dashboards and apps | Nebari which seems to cover exactly the use-case I have in mind. It deprecates one of the packages I have been trying to use ( cds dashboards) in favour of an “app launcher”, which I’m going to explore a bit, to see whether that would be a viable alternative.

I’d love to hear from anyone who has used such a setup and could share his experience.

Kind regards,

2 Likes