Toggle navigation
Install
About
Resources
Documentation
NBViewer
Widgets
Blog
Donate
JupyterHub
Technical Reference
JupyterHub
Technical Reference
JupyterHub
Installation Guide
Installation Guide
Quickstart
Using Docker
Installation Basics
Getting Started
Getting Started
Configuration Basics
Networking basics
Security settings
Authentication and User Basics
Spawners and single-user notebook servers
External services
Technical Reference
Technical Reference
Technical Overview
Security Overview
Authenticators
Spawners
Services
Writing a custom Proxy implementation
Using JupyterHub's REST API
Upgrading JupyterHub and its database
Configuration examples
The JupyterHub API
The JupyterHub API
Application configuration
Authenticators
Spawners
Proxies
Users
Services
Services Authentication
Tutorials
Tutorials
Upgrading to JupyterHub version 0.8
Troubleshooting
Troubleshooting
Behavior
Errors
How do I...?
Troubleshooting commands
Contributors
A Gallery of JupyterHub Deployments
A Gallery of JupyterHub Deployments
Academic Institutions, Research Labs, and Supercomputer Centers
Service Providers
Miscellaneous
Changelog
Changelog
Unreleased
0.8
0.7
0.6
0.5 - 2016-03-07
0.4
0.3 - 2015-11-04
0.2 - 2015-07-12
0.1 - 2015-03-07
JupyterHub
Installation Guide
Getting Started
Technical Reference
Technical Overview
Security Overview
Authenticators
Spawners
Services
Writing a custom Proxy implementation
Using JupyterHub's REST API
Upgrading JupyterHub and its database
Configuration examples
The JupyterHub API
Tutorials
Troubleshooting
Contributors
A Gallery of JupyterHub Deployments
Changelog
Technical Reference
ΒΆ
Technical Overview
The Subsystems: Hub, Proxy, Single-User Notebook Server
How the Subsystems Interact
The Process from JupyterHub Access to User Login
Default Behavior
Customizing JupyterHub
Security Overview
Semi-trusted and untrusted users
Protect users from each other
Mitigate security issues
Security audits
Authenticators
The default PAM Authenticator
The OAuthenticator
Additional Authenticators
Technical Overview of Authentication
JupyterHub as an OAuth provider
Spawners
Examples
Spawner control methods
Spawner state
Spawner options form
Writing a custom spawner
Spawners, resource limits, and guarantees (Optional)
Services
Definition of a Service
Properties of a Service
Hub-Managed Services
Launching a Hub-Managed Service
Externally-Managed Services
Writing your own Services
Hub Authentication and Services
Writing a custom Proxy implementation
Subclassing Proxy
Starting and stopping the proxy
Adding and removing routes
Using JupyterHub's REST API
What you can do with the API
Create an API token
Add API tokens to the config file
Make an API request
Enabling users to spawn multiple named-servers via the API
Learn more about the API
Upgrading JupyterHub and its database
Databases: SQLite (default) or RDBMS (PostgreSQL, MySQL)
The upgrade process
Upgrade checklist
Configuration examples
Using GitHub OAuth
Using a reverse proxy