A "Classroom" Spawner

I would like for all the users of a Hub to be redirected to the same instance of JupyterLab, as opposed to each user getting their own instance. I am planning to start working on a Spawner that will do this; however, I am wondering if anyone has already done this. Is anyone aware of an implementation that I can use?

Also, please let me know if anyone has any guidance on how to best implement this. For example, could this be implemented as a “service”?

The general idea here is for multiple students to join a teacher for collaborative “office hours”.

There’s an example in the JupyterHub docs of running a shared notebook as a service

In conjunction with c.JupyterHub.default_url you might not even need a custom spawner.


@manics Thank you. I got it working; the implementation seems to make sense. I can start the service as a non-privileged user and everything seems to work perfectly - the logs don’t indicate anything isn’t working. As you suggested, I configured default_url to send authenticated users to the “classroom” service and it’s working as expected; it doesn’t seem to be starting user servers, which is nice. Collaboration has been working perfectly too.

Now, I just need to containerize it and we can have collaborative office hours… :slight_smile:

Thanks again for all the help you have given me over the years. If you’re ever in Ann Arbor, let me know if you want to drop by for tea.

1 Like

Here are the details of this implementation: GitHub - faranalytics/collaborative_jupyterlab