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, UBC-hosted, standard instance of Jupyterhub. It does not integrate with Canvas, and your students will access the content through Jupyter Open with their UBC CWL (Campus-Wide Login). Jupyter Open works well for courses that do not need specific customization. It offers a general-purpose computing environment with a standard set of tools and libraries suitable for individual assignments, exploratory data analysis, and basic programming.

Jupyter Course is a paid, UBC-hosted, more customizable version of JupyterHub. Its content is tied to a specific Canvas course, allowing your studies to access it directly through Canvas. Jupyter Course is designed for courses that require specific computing tools or environments, want Canvas integration for assignments, or have larger computational resource needs.

Within the Jupyter offerings at UBC, JupyterLab functions as the interactive development environment that you and your students will access through Jupyter Open and Jupyter Course. JupyterLab facilitates the management of notebooks, code, and data and offers a suite of tools and features all in one interface.

What can I use it for?

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

  • Creating and sharing interactive notebooks that integrate code, equations, computational output, visualizations, and multimedia, along with narrative text
  • Performing data science tasks, including data cleaning, data transformation, numerical simulations, statistical modeling, and both machine learning and deep learning applications
  • Distributing assignments and projects that use high-performance computing, offering students hands-on experience with real-world data and computational challenges
  • Supporting the use of computation tools in any curriculum design, accommodating coding and data analysis skills in technical and non-technical academic subjects
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.
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 March 2024 with version 3.6.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, Firefox, or Safari.

While current versions of Opera may work, we recommend switching to an officially supported browser to avoid any technical difficulties.


For Jupyter Course, additional requirements apply:

A Jupyter course

If you are using Jupyter Course, a Jupyter course that is tied to your Canvas course must be requested and created through the Lt Hub, as outlined below.

Funding for Jupyter Course

Please note that there is a cost associated with using Jupyter Course at UBC. Fees are charged per student, per course, per term. We recommend consulting with your Instructional Support Unit to determine if funding is available.

How do I use JupyterHub?

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

Expand All

Set up JupyterHub

Once you have determined which version of JupyterHub you will be using, follow the steps below to get set up.

  1. Launch 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 at 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.
    • In the tool URL box, paste in the Jupyter course link provided by the LT Hub.
    • Check the Load This Tool In A New Tab box.
    • Click Save & Publish.
  3. Access the “JupyterHub Link” assignment, click to 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:
    • Log in to Jupyter Open 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 the top left corner of JupyterHub, click the plus icon.
  3. In the "Launcher" tab that opens, choose the notebook or file type that you would like to make.
  4. A new notebook or file with the name “Untitled” will open. To rename the notebook or file, right-click the name in the panel on the left, and select Rename.
  5. Add content to the notebook or file. When you make changes, a dark circle will appear in the right corner of the tab's name. This icon replaces the 'X' button for closing the tab and serves as a visual indicator of unsaved changes.
  6. To save your changes, click File from the top toolbar, then select Save All.

Tips

  • You can use a variety of file types and programming languages when adding content to JupyterHub. Languages include 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:
    • Log in to Jupyter Open 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, click to load the tool in a new window, and click Start My Server when prompted.
  2. In the top left corner of JupyterHub, click the up arrow icon 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. When you make changes, a dark circle will appear in the right corner of the tab's name. This icon replaces the 'X' button for closing the tab and serves as a visual indicator of unsaved changes.
  5. To save your changes, click File from the top toolbar, then select Save All.

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:
    •  Log in to Jupyter Open 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, click to load the tool in a new window, and click Start My Server when prompted.
  2. From the panel on the left, right-click the notebook that 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 then download the notebook file from Canvas and upload it to JupyterHub. Once the notebook file is uploaded, students can open and edit the file.

Tips

  • If multiple people are collaborating on a Jupyter notebook, you can use a UBC GitHub repository to ensure that changes are saved correctly. Once you download your notebook from JupyterHub, drag and drop the .ipynb file into your GitHub repository, and then 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 in our UBC GitHub instructor guide.

JupyterHub FAQ

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

The cost to use Jupyter Course varies depending on the customization required for each specific course. The approximate cost is $20 per student, per course, per term, with the assumption that a term will last four months. For more precise estimates and further details, please contact us at the LT Hub.

There is no cost to use Jupyter Open.

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 Course, a snapshot of the students’ notebooks in your Jupyter Course will be taken by default on the date that you tell the LT Hub the assignment is due. The LT Hub will share the link to retrieve these snapshots, so you can grade and add comments to the assignments before sending them back to students through Jupyter Course. For more details on setting up assignments and accessing students’ notebooks, contact us at the LT Hub.

For Jupyter Open, no snapshot feature is available. You can instruct your students to download their modified notebook from JupyterHub. Students can then manually submit their notebook file to the assignment on Canvas.

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

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

There is no need to contact us to use Jupyter Open. You and your students can immediately log in with your UBC CWL and start using it for assignments and labs in the course. However, you will need to provide commands for downloading any required data or additional packages. If you would like assistance with understanding how to do this, please contact us at the LT Hub.

Currently, Jupyter Open is configured to support only a single, standard image. To use a custom Docker image tailored to your course's needs, please contact us about using Jupyter Course instead.

Only UBC CWL (Shibboleth) authentication is available with Jupyter Open. If other logins are desired, please contact us about using Jupyter Course instead, which is compatible with other authentication types such as LTI.

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:

Learn more


Tell us about this guide