JupyterHub Instructor Guide

JupyterHub logo

JupyterHub is an interactive, customizable computing tool that lets you harness the functions of high-performance computers for teaching and learning at UBC. The tool provides a web-based computational workspace (a “notebook”) for students, instructors, and researchers to collaborate with shared data and to develop related resources, visualizations, and real-time high-performance features such as instant computer-generated figures.

UBC supports two versions of JupyterHub: Jupyter Open and Jupyter Course. Jupyter Open is a free, standard instance of JupyterHub; no Canvas integration is available and your students will access the content through Jupyter Open with their UBC CWL (Campus-Wide Login). Jupyter Course is a paid, more customizable version of JupyterHub; content is tied to a specific Canvas course and your students will access it through Canvas.

What can I use it for?

You can use JupyterHub for a variety of computational course work and collaborations:

  • Creating and sharing notebooks that integrate code, equations, computational output, visualizations, and other multimedia, along with explanatory text
  • Conducting data-science tasks, such as data cleaning and transformation, numerical simulation, exploratory analysis, statistical modeling, machine learning, and deep learning
  • Distributing and collecting assignments that use high-performance computing
Jupyter Open Jupyter Course
Access Immediate Not immediate You will need to request and set up Jupyter Course with us first. Once Jupyter Course is turned on in your Canvas course, you can access it through Canvas.
Cost Yes Free. Partial Faculties/Departments provide funding per student per course per term. Please contact your Instructional Support Unit to discuss funding availability.
Bandwidth Yes Low demand on internet connections. Yes Low demand on internet connections.
Canvas Integration No None. Yes Works in coordination with Canvas.
Privacy Yes Verified by UBC’s Privacy Impact Assessment process. Yes Verified by UBC’s Privacy Impact Assessment process.
Similar UBC-Supported Tools N JupyterHub is the only centrally-supported tool for writing and sharing code and other data through Jupyter notebooks.

This tool guide was last reviewed in August 2022 with version 3.4.3 of JupyterHub.

What do I need to use JupyterHub?

A supported web browser

Whether you use Jupyter Open or Jupyter Course, JupyterHub runs in your web browser and supports using the latest versions of Chrome, Edge, or Firefox.


For Jupyter Course, additional requirements apply:

Funding for Jupyter Course

Note first there is a cost for using Jupyter Course at UBC. The cost is charged per student per course per term. You can check with your Instructional Support Unit to see if funding is available.

A Jupyter course

If you are using Jupyter Course, a Jupyter course must be requested and created through the LT Hub, as outlined below.

Tips

  • If multiple people are collaborating, you can use a UBC GitHub repository to ensure changes to shared Jupyter notebooks are saved correctly. GitHub repositories are places for projects where files are stored, built on, and tracked with version control. GitHub is a separate tool from JupyterHub, which you can learn more about in our GitHub instructor guide.

How do I use JupyterHub?

Click any bar below for instructions and tips for using JupyterHub.

Expand All

Set up JupyterHub

UBC supports two versions of JupyterHub: Jupyter Open and Jupyter Course. Jupyter Open is a free, standard instance of JupyterHub; no Canvas integration is available and your students will access the content through Jupyter Open with their UBC CWL. Jupyter Course is a paid, more customizable version of JupyterHub; content is tied to a specific Canvas course and your students will access it through Canvas.

  1. Access Jupyter Open, and log in with your UBC CWL.
  2. Your JupyterHub server will start up, and you can begin adding content such as notebooks and files.
  1. To use Jupyter Course, you will first need to contact us in the LT Hub to request a Jupyter course.
    • Please note that funding will need to be approved by your faculty or department. If you can include the name of a financial contact with your request, it will expedite the process.
  2. Once we have given you access, you can add Jupyter Course to your Canvas course:
    • Log in to your Canvas course, and click Assignments in the Course Navigation.
    • Click +Assignment in the upper right side of the screen.
    • Enter the assignment name as “JupyterHub Link”.
    • Scroll down to submission type and select External Tool from the drop-down menu.
    • In the tool URL box, paste in the Jupyter course link provided by the LT Hub.
    • Check Load This Tool In A New Tab.
    • Click Save & Publish.
  3. Access the “JupyterHub Link” assignment, load the tool in a new window, and click Start My Server when prompted.
  4. Your JupyterHub server will start up, and you can begin adding content such as notebooks and files.

Create a new Jupyter notebook or file

  1. Open JupyterHub:
    • For Jupyter Open, log in using your UBC CWL.
    • For Jupyter Course, log in to your Canvas course and click Assignments in the Course Navigation. Access the “JupyterHub Link” assignment, load the tool in a new window, and click Start My Server when prompted.
  2. In JupyterHub, click the plus icon in the top left corner.
  3. From the "Launcher" tab that opens, choose the notebook or file type you would like to make.
  4. A new notebook or file with the name “Untitled” will appear in the panel on the left. To rename the notebook or file, right-click it, and select Rename.
  5. Add content to the notebook or file. A black circle will appear beside the tab name at the top when there are unsaved changes.
  6. To save your changes, click File from the top toolbar, then select either Save Notebook or Save File.

Tips

  • You can use a variety of file types and programming languages when adding content to JupyterHub, including Python, Java, JavaScript, C++, Julia, and R.
  • The markup language Markdown is also supported for use with JupyterHub. For information on the language and how-to instructions for using it, explore Jupyter’s Markdown documentation or the UBC basic Markdown walk-through.

Upload an existing Jupyter notebook or file

Instead of creating a new notebook or file in JupyterHub, you can upload existing content.

  1. Open JupyterHub:
    • For Jupyter Open, log in using your UBC CWL.
    • For Jupyter Course, log in to your Canvas course and click Assignments in the Course Navigation. Access the “JupyterHub Link” assignment, load the tool in a new window, and click Start My Server when prompted.
  2. Click the up arrow icon on the top left to upload a file.
  3. Select the file you would like to upload, and click Open.
  4. The file will appear in the panel on the left. Double-click the file name to open and edit the file. A black circle will appear beside the tab name at the top when there are unsaved changes.
  5. To save your changes, click File from the top toolbar, then select either Save Notebook or Save File.

Share a Jupyter notebook with students

The simplest way to share a Jupyter notebook with students is to upload a copy of the file to Canvas for students to download and use in JupyterHub.

  1. Open JupyterHub:
    • For Jupyter Open, log in using your UBC CWL.
    • For Jupyter Course, log in to your Canvas course and click Assignments in the Course Navigation. Access the “JupyterHub Link” assignment, load the tool in a new window, and click Start My Server when prompted.
  2. From the panel of files on the left, right-click the notebook you would like to share and select Download. This action will download the notebook to your computer in a Jupyter interactive notebook file format (.ipynb).
  3. Upload the notebook file to your Canvas course where students can find it (e.g., in a module). Refer to our Canvas instructor guide for steps on adding content to your Canvas course.
  4. Students can open and edit the file by accessing JupyterHub the same way that you do.

Tips

  • If multiple people are collaborating on a Jupyter notebook, you can use a UBC GitHub repository to ensure changes are saved correctly. Once you download your notebook from JupyterHub, drag and drop the .ipynb file into your GitHub repository, and share the repository link with collaborators. Make sure the visibility of your repository is either set to public or internal to your UBC GitHub organization, so others can view the file. Learn more about using UBC GitHub in our GitHub instructor guide.

JupyterHub FAQ

Find UBC-specific answers to frequently asked questions by clicking any bar below.

The cost to use Jupyter Course is dependent on the customizations required for each specific course. The approximate amount is $20 per student per course per term (where a term is assumed to last four months). For more exact estimates and additional information, contact us in the LT Hub.

There is no cost to use Jupyter Open.

If you use Jupyter Course, a snapshot of the students’ notebooks in your Jupyter Course will be taken by default when the assignment is due. The LT Hub will share the link to retrieve these snapshots, so you can grade and add comments to assignments before sending them back to students through Jupyter Course. For more details on setting up assignments and accessing students’ notebooks, contact us in the LT Hub.

If you use Jupyter Open, no snapshot feature is available. Refer to the steps for sharing a Jupyter notebook in this guide to download and share a copy of the notebook in Canvas. Students will then need to manually submit their modified copy of the notebook when an assignment is due.

For Jupyter Open, we run a customized version of Jupyter Notebook Data Science from Docker Stacks. This version includes four additional plugins and kernels (i.e., specific "computational engines" that execute the code) to expand what you can do with Jupyter Open:

  • Python 3
  • R Language
  • Julia
  • Sage Math 9.5

For Jupyter Open, the following resources are available for computing:

  • CPU Core: 1
  • RAM: 2GB
  • Persistent Storage: 10GB

Where can I get more support with JupyterHub?

Technical support

If you have trouble with Jupyter Open:

If you have questions about Jupyter Course, including available customizations:


Tell us about this guide