Here we describe the several use-cases we hope to address within this documentation.

Local Laboratory

Here is how one sets up Jupyter on one’s own machine (“local installation”). Since Project Jupyter relies on web frameworks and operates through your browser, the instructions will also apply for installing on a remote server.

The instructions for doing so can be found on the Install Anaconda page.

Classroom Resources

You are a teacher with a small-to-medium sized classroom and want to set up a centralized server for your students to have access to notebooks you wrote. You want:

  • An account for each student that they can use to log in from any (modern) web-browser.
  • The ability to add/remove/edit files in each student’s file-system, perhaps for
    • updates to a classroom github/gitlab/bitbucket repository (without teaching the students git)
    • troubleshooting for projects/homework
  • Isolated environments so that students cannot interfere witth eachothers files
    • Functionality for groups of students to be able to access shared files, collaboration (without git)
  • The ability to control the appearance of the web-browser
    • (This should all be possible but is low priority)
    • Add university branding
    • Restrict features (such as Terminal)
  • Handles simultaneous users (up to the whole class at one time)
  • Be able to control how much resources each student has (CPU, memory, etc)
    • Should be controllable if using Docker (?)


You want to run a short workshop (perhaps at a conference, or on a weekend at your university), and want similar functionality to the classroom environment, but you care less about the permanence of files. Once the workshop is over, you plan to delete everything.

We will cover how this is done. In theory (as of this writing), the same Docker image can be used with slight modifications, then deleted whenever one chooses to do so.

Interactive Publishing

You wrote a scientific paper, developed most of the code in Python (perhaps using Jupyter Notebooks/Lab), and want to write interactive visualizations for your webpage or some online publication.1

  1. We hope to address doing this with R or Julia (or any other kernel), but since there are language-specific tools (such as Shiny for R, Dash for Python), we focus on the most directly-applicable use-case for the author, which is to convert ipywidgets embedded in a notebook into embeddable HTML pages. ^