Please note that this repository is participating in a study into the sustainability of open source projects. Data will be gathered about this repository for approximately the next 12 months, starting from 2021-06-11.
Data collected will include the number of contributors, number of PRs, time taken to close/merge these PRs, and issues closed.
With JupyterHub you can create a
multi-user Hub that spawns, manages, and proxies multiple instances of the
single-user Jupyter notebook
server.
Project Jupyter created JupyterHub to support many
users. The Hub can offer notebook servers to a class of students, a corporate
data science workgroup, a scientific research project, or a high-performance
computing group.
Visit http://localhost:8000 in your browser, and sign in with your system username and password.
Note: To allow multiple users to sign in to the server, you will need to
run the jupyterhub command as a privileged user, such as root.
The wiki
describes how to run the server as a less privileged user, which requires
more configuration of the system.
Configuration
The Getting Started section of the
documentation explains the common steps in setting up JupyterHub.
The JupyterHub tutorial
provides an in-depth video and sample configurations of JupyterHub.
Create a configuration file
To generate a default config file with settings and descriptions:
jupyterhub --generate-config
Start the Hub
To start the Hub on a specific url and port 10.0.1.2:443 with https:
Important: This jupyterhub/jupyterhub image contains only the Hub itself,
with no configuration. In general, one needs to make a derivative image, with
at least a jupyterhub_config.py setting up an Authenticator and/or a Spawner.
To run the single-user servers, which may be on the same system as the Hub or
not, Jupyter Notebook version 4 or greater must be installed.
The JupyterHub docker image can be started with the following command:
docker run -p 8000:8000 -d --name jupyterhub jupyterhub/jupyterhub jupyterhub
This command will create a container named jupyterhub that you can
stop and resume with docker stop/start.
The Hub service will be listening on all interfaces at port 8000, which makes
this a good choice for testing JupyterHub on your desktop or laptop.
If you want to run docker on a computer that has a public IP then you should
(as in MUST) secure it with ssl by adding ssl options to your docker
configuration or by using a ssl enabled proxy.
Mounting volumes will
allow you to store data outside the docker image (host system) so it will be persistent, even when you start
a new image.
The command docker exec -it jupyterhub bash will spawn a root shell in your docker
container. You can use the root shell to create system users in the container.
These accounts will be used for authentication in JupyterHub’s default configuration.
Contributing
If you would like to contribute to the project, please read our
contributor documentation
and the CONTRIBUTING.md. The CONTRIBUTING.md file
explains how to set up a development installation, how to run the test suite,
and how to contribute to documentation.
JupyterHub is supported on Linux/Unix based systems.
JupyterHub officially does not support Windows. You may be able to use
JupyterHub on Windows if you use a Spawner and Authenticator that work on
Windows, but the JupyterHub defaults will not. Bugs reported on Windows will not
be accepted, and the test suite will not run on Windows. Small patches that fix
minor Windows compatibility issues (such as basic installation) may be accepted,
however. For Windows-based systems, we would recommend running JupyterHub in a
docker container or Linux VM.
Technical Overview | Installation | Configuration | Docker | Contributing | License | Help and Resources
Please note that this repository is participating in a study into the sustainability of open source projects. Data will be gathered about this repository for approximately the next 12 months, starting from 2021-06-11.
Data collected will include the number of contributors, number of PRs, time taken to close/merge these PRs, and issues closed.
For more information, please visit our informational page or download our participant information sheet.
JupyterHub
With JupyterHub you can create a multi-user Hub that spawns, manages, and proxies multiple instances of the single-user Jupyter notebook server.
Project Jupyter created JupyterHub to support many users. The Hub can offer notebook servers to a class of students, a corporate data science workgroup, a scientific research project, or a high-performance computing group.
Technical overview
Three main actors make up JupyterHub:
Basic principles for operation are:
JupyterHub also provides a REST API for administration of the Hub and its users.
Installation
Check prerequisites
A Linux/Unix based system
Python 3.6 or greater
nodejs/npm
If you are using
conda
, the nodejs and npm dependencies will be installed for you by conda.If you are using
pip
, install a recent version (at least 12.0) of nodejs/npm.If using the default PAM Authenticator, a pluggable authentication module (PAM).
TLS certificate and key for HTTPS communication
Domain name
Install packages
Using
conda
To install JupyterHub along with its dependencies including nodejs/npm:
If you plan to run notebook servers locally, install JupyterLab or Jupyter notebook:
Using
pip
JupyterHub can be installed with
pip
, and the proxy withnpm
:If you plan to run notebook servers locally, you will need to install JupyterLab or Jupyter notebook:
Run the Hub server
To start the Hub server, run the command:
Visit
http://localhost:8000
in your browser, and sign in with your system username and password.Note: To allow multiple users to sign in to the server, you will need to run the
jupyterhub
command as a privileged user, such as root. The wiki describes how to run the server as a less privileged user, which requires more configuration of the system.Configuration
The Getting Started section of the documentation explains the common steps in setting up JupyterHub.
The JupyterHub tutorial provides an in-depth video and sample configurations of JupyterHub.
Create a configuration file
To generate a default config file with settings and descriptions:
Start the Hub
To start the Hub on a specific url and port
10.0.1.2:443
with https:Authenticators
Spawners
Docker
A starter docker image for JupyterHub gives a baseline deployment of JupyterHub using Docker.
Important: This
jupyterhub/jupyterhub
image contains only the Hub itself, with no configuration. In general, one needs to make a derivative image, with at least ajupyterhub_config.py
setting up an Authenticator and/or a Spawner. To run the single-user servers, which may be on the same system as the Hub or not, Jupyter Notebook version 4 or greater must be installed.The JupyterHub docker image can be started with the following command:
This command will create a container named
jupyterhub
that you can stop and resume withdocker stop/start
.The Hub service will be listening on all interfaces at port 8000, which makes this a good choice for testing JupyterHub on your desktop or laptop.
If you want to run docker on a computer that has a public IP then you should (as in MUST) secure it with ssl by adding ssl options to your docker configuration or by using a ssl enabled proxy.
Mounting volumes will allow you to store data outside the docker image (host system) so it will be persistent, even when you start a new image.
The command
docker exec -it jupyterhub bash
will spawn a root shell in your docker container. You can use the root shell to create system users in the container. These accounts will be used for authentication in JupyterHub’s default configuration.Contributing
If you would like to contribute to the project, please read our contributor documentation and the
CONTRIBUTING.md
. TheCONTRIBUTING.md
file explains how to set up a development installation, how to run the test suite, and how to contribute to documentation.For a high-level view of the vision and next directions of the project, see the JupyterHub community roadmap.
A note about platform support
JupyterHub is supported on Linux/Unix based systems.
JupyterHub officially does not support Windows. You may be able to use JupyterHub on Windows if you use a Spawner and Authenticator that work on Windows, but the JupyterHub defaults will not. Bugs reported on Windows will not be accepted, and the test suite will not run on Windows. Small patches that fix minor Windows compatibility issues (such as basic installation) may be accepted, however. For Windows-based systems, we would recommend running JupyterHub in a docker container or Linux VM.
Additional Reference: Tornado’s documentation on Windows platform support
License
We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.
All code is licensed under the terms of the revised BSD license.
Help and resources
We encourage you to ask questions and share ideas on the Jupyter community forum. You can also talk with us on our JupyterHub Gitter channel.
JupyterHub follows the Jupyter Community Guides.
Technical Overview | Installation | Configuration | Docker | Contributing | License | Help and Resources