How to create a publicly distributed Jupyter Notebook

Hello, Jupyter community,

I have previously used Jupyter Notebooks created by others, and now I’m thinking about creating my own publicly distributed Jupyter Notebook. I researched the topic and found a few solutions, but honestly, I got even more confused. So, I’m hoping that you could help me clarify my options.

I have an online course (Performance Ninja), which I would like to turn into a Jupyter Notebook. The course is hosted on Github. There I have the source code for the lab assignments that students need to work on. They need to fix the issue by changing the code and submit (git push) their work. It will be picked up by Github Actions and sent to my remote server, which is appropriately configured for performance benchmarking.

I want to make a Jupyter Notebook, which will be a view into my Github repo. It will provide nice interface, ability to focus on the part of the code that matters (kernel of the benchmark), and have a simple way of submitting solutions for automated benchmarking (just hit Shift-Enter).

I was looking at JupyterHub. It should work nicely, but then the issue is that I have to have a public static IP for the JupyterHub server.

Ideally, I would like to be able to trigger Github Actions workflow from the Jupyter Notebook itself. A user (student) would authenticate themselves with Github, change the code and hit Shift-Enter, which will trigger Github Actions (maybe pushing the code to a private branch).

Anyway, I assume, I’m not the first person facing a similar problem. I would be interested to know what is my best option here?

Cross-posted here.
@Denis_Bakhvalov , please when cross-posting, reference the places you are posting the same content. Otherwise you can cause multiple persons to reply with the same advice in multiple locations, wasting multiple volunteers time. Also, by noting where it is cross-posted, you help provide others following in your footsteps more options where to look for suggestions.

1 Like

Yeah, sorry about that. I duplicated the question on SO as I thought that more people would see it.

Totally valid. No problem as long as it’s clear so that resources aren’t getting divided.