Skip to main content

An infrastructure for hosting notebooks beind an open-edX MOOC platform

Project description

# notebook hosting architecture

This git repo contains a collection of utilities, that together make up the architecture behind that is designed as a notebook-serving infrastructure.

First use case is for hosting notebooks in the context of MOOCs. See e.g.

# Open-edX teacher side

On the edx side, teacher would create a bloc typed as ipython notebook - note that the present repo does not address the code for the edx extension that supports this type of blocs (ref?); it is reaily available at this point (jan. 2017) at




# Open-edX student side

Here’s what a student would see;


# nbhosting side

Here’s the general principle of how of works

  • Open-edX forges a URL, like the one shown above, with student replaced with the hash of some student id
  • This is caught by nginx, that runs forefront; the ipythonExercice/ prefix is routed to a django application, that primarily does this * create a linux user if needed * create a copy of that notebook for the student if needed * spawns a (docker) jupyter instance for the couple (course, student) * redirects to a (plain https, on port 443) URL that contains the (http/localhost) port number that the docker instance can be reached at

As a summary:



A lot remains to be done, incuding using github’s issues for tracking what remains to be done ;) For now see [doc/](doc/

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for nbhosting, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size nbhosting-0.1.0.tar.gz (15.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page