Code Monkey home page Code Monkey logo

jupyterhub's Introduction

JupyterHub: A multi-user server for Jupyter notebooks

Questions, comments? Visit our Google Group:

Google Group Build Status Documentation Status

JupyterHub, a multi-user server, manages and proxies multiple instances of the single-user IPython Jupyter notebook server.

Three actors:

  • multi-user Hub (tornado process)
  • configurable http proxy (node-http-proxy)
  • multiple single-user IPython notebook servers (Python/IPython/tornado)

Basic principles:

  • Hub spawns proxy
  • Proxy forwards ~all requests to hub by default
  • Hub handles login, and spawns single-user servers on demand
  • Hub configures proxy to forward url prefixes to single-user servers

Dependencies

JupyterHub requires IPython >= 3.0 (current master) and Python >= 3.3.

Install nodejs/npm, which is available from your package manager. For example, install on Linux (Debian/Ubuntu) using:

sudo apt-get install npm nodejs-legacy

(The nodejs-legacy package installs the node executable and is currently required for npm to work on Debian/Ubuntu.)

Next, install JavaScript dependencies:

sudo npm install -g configurable-http-proxy

(Optional) Installation Prerequisite (pip)

Notes on the pip command used in the installation directions below:

  • sudo may be needed for pip install, depending on the user's filesystem permissions.

  • JupyterHub requires Python >= 3.3, so pip3 may be required on some machines for package installation instead of pip (especially when both Python 2 and Python 3 are installed on a machine). If pip3 is not found, install it using (on Linux Debian/Ubuntu):

      sudo apt-get install python3-pip
    

Installation

JupyterHub can be installed with pip:

pip3 install jupyterhub

If you plan to run notebook servers locally, you may also need to install the Jupyter IPython notebook:

pip3 install notebook

Development install

For a development install, clone the repository and then install from source:

git clone https://github.com/jupyter/jupyterhub
cd jupyterhub
pip3 install -r dev-requirements.txt -e .

If the pip3 install command fails and complains about lessc being unavailable, you may need to explicitly install some additional JavaScript dependencies:

npm install

This will fetch client-side JavaScript dependencies necessary to compile CSS.

You may also need to manually update JavaScript and CSS after some development updates, with:

python3 setup.py js    # fetch updated client-side js (changes rarely)
python3 setup.py css   # recompile CSS from LESS sources

Running the server

To start the server, run the command:

jupyterhub

and then visit http://localhost:8000, and sign in with your unix credentials.

To allow multiple users to sign into 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.

Getting started

See the getting started document for the basics of configuring your JupyterHub deployment.

Some examples

Generate a default config file:

jupyterhub --generate-config

Spawn the server on 10.0.1.2:443 with https:

jupyterhub --ip 10.0.1.2 --port 443 --ssl-key my_ssl.key --ssl-cert my_ssl.cert

The authentication and process spawning mechanisms can be replaced, which should allow plugging into a variety of authentication or process control environments. Some examples, meant as illustration and testing of this concept:

Getting help

We encourage you to ask questions on the mailing list:

Google Group

and you may participate in development discussions or get live help on Gitter:

Gitter

Resources

jupyterhub's People

Contributors

minrk avatar ssanderson avatar willingc avatar carreau avatar ellisonbg avatar rgbkrk avatar jhamrick avatar jdavidheiser avatar dsblank avatar dblockow-d2dcrc avatar ckald avatar shreddd avatar evanlinde avatar zoltan-fedor avatar tsaeger avatar betatim avatar toobaz avatar peterruppel avatar nthiery avatar ksolan avatar krishnapg avatar fperez avatar dietmarw avatar cwaldbieser avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.