All Projects → jupyterhub → Jupyterhub Deploy Teaching

jupyterhub / Jupyterhub Deploy Teaching

Licence: bsd-3-clause
Reference deployment of JupyterHub and nbgrader on a single server

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Jupyterhub Deploy Teaching

Ansible Jupyterhub
Ansible role to setup jupyterhub server (deprecated)
Stars: ✭ 14 (-92.78%)
Mutual labels:  ipython, ansible, jupyter-notebook, jupyter, jupyterhub
Nbgrader
A system for assigning and grading notebooks
Stars: ✭ 1,000 (+415.46%)
Mutual labels:  jupyter-notebook, jupyter, teaching, jupyterhub
Awesome Jupyter
A curated list of awesome Jupyter projects, libraries and resources
Stars: ✭ 2,523 (+1200.52%)
Mutual labels:  ipython, jupyter-notebook, jupyter, jupyterhub
Telepyth
Telegram notification with IPython magics.
Stars: ✭ 54 (-72.16%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Signals And Systems Lecture
Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples
Stars: ✭ 166 (-14.43%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Ipywebrtc
WebRTC for Jupyter notebook/lab
Stars: ✭ 171 (-11.86%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Jupyterlab Lsp
Coding assistance for JupyterLab (code navigation + hover suggestions + linters + autocompletion + rename) using Language Server Protocol
Stars: ✭ 796 (+310.31%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Sci Pype
A Machine Learning API with native redis caching and export + import using S3. Analyze entire datasets using an API for building, training, testing, analyzing, extracting, importing, and archiving. This repository can run from a docker container or from the repository.
Stars: ✭ 90 (-53.61%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Ipybind
IPython / Jupyter integration for pybind11
Stars: ✭ 63 (-67.53%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Helm Chart
A store of Helm chart tarballs for deploying JupyterHub and BinderHub on a Kubernetes cluster
Stars: ✭ 123 (-36.6%)
Mutual labels:  jupyter-notebook, jupyter, jupyterhub
Sqlcell
SQLCell is a magic function for the Jupyter Notebook that executes raw, parallel, parameterized SQL queries with the ability to accept Python values as parameters and assign output data to Python variables while concurrently running Python code. And *much* more.
Stars: ✭ 145 (-25.26%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Ipytracer
📊 Algorithm Visualizer for IPython/Jupyter Notebook
Stars: ✭ 138 (-28.87%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Jupyter Server Proxy
Jupyter notebook server extension to proxy web services.
Stars: ✭ 153 (-21.13%)
Mutual labels:  jupyter-notebook, jupyter, jupyterhub
Ansible Jupyter.dockerfile
Building the Docker image with Ansible and Jupyter.
Stars: ✭ 17 (-91.24%)
Mutual labels:  ansible, jupyter-notebook, jupyter
Zero To Jupyterhub K8s
Helm Chart & Documentation for deploying JupyterHub on Kubernetes
Stars: ✭ 888 (+357.73%)
Mutual labels:  jupyter-notebook, jupyter, jupyterhub
Web develop
《Python Web开发实战》书中源码
Stars: ✭ 1,146 (+490.72%)
Mutual labels:  ipython, ansible, jupyter-notebook
Nbstripout
strip output from Jupyter and IPython notebooks
Stars: ✭ 738 (+280.41%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Jupyterhub
Multi-user server for Jupyter notebooks
Stars: ✭ 6,488 (+3244.33%)
Mutual labels:  ipython, jupyter-notebook, jupyterhub
Ipyexperiments
jupyter/ipython experiment containers for GPU and general RAM re-use
Stars: ✭ 128 (-34.02%)
Mutual labels:  ipython, jupyter-notebook, jupyter
Cheatsheets.pdf
📚 Various cheatsheets in PDF
Stars: ✭ 159 (-18.04%)
Mutual labels:  ipython, jupyter-notebook, jupyter

Deploy JupyterHub for teaching

Google Group Documentation Status

The goal of this repository is to produce a reference deployment of JupyterHub for teaching with nbgrader.

The repository started from this deployment of JupyterHub for "Introduction to Data Science" at Cal Poly. It is designed to be a simple and reusable JupyterHub deployment, while following best practices.

The main use case targeted is small to medium groups of trusted users working on a single server.

Design goal of this reference deployment

Create a JupyterHub teaching reference deployment that is simple yet functional:

  • Use a single server.
  • Use Nginx as a frontend proxy, serving static assets, and a termination point for SSL/TLS.
  • Configure using Ansible scripts.
  • Use (optionally) https://letsencrypt.org/ for generating SSL certificates.
  • Does not use Docker or containers

Prerequisites

To deploy this JupyterHub reference deployment, you should have:

  • An empty Ubuntu server running the latest stable release
  • Local drives to be mounted
  • A formatted and mounted directory to store user home directories
  • A valid DNS name
  • SSL certificate
  • Ansible 2.1+ installed for JupyterHub configuration (pip install "ansible>=2.1")
    • Verified Ansible 2.2.1.0 works with Ubuntu 16.04 and Python3

For administration of the server, you should also:

  • Specify the admin users of JupyterHub.
  • Allow SSH key based access to server and add the public SSH keys of GitHub users who need to be able to SSH to the server as root for administration.

For managing users and services on the server, you will:

  • Create "Trusted" users on the system, meaning that you would give them a user-level shell account on the server
  • Authenticate and manage users with either:
    • Regular Unix users and PAM.
    • GitHub OAuth
  • Manage the running of jupyterhub and nbgrader using supervisor.
  • Monitor the state of the server (optional feature) using NewRelic or your cloud provider.

Installation

Follow the detailed instructions in the Installation Guide.

The basic steps are:

  • Create the hosts group with Fully Qualified Domain Names (FQDNs) of the hosts
  • Secure your deployment with SSL
  • Deploy with Ansible ansible-playbook -i hosts deploy.yml
  • Verify your deployment and reboot the Hub supervisorctl reload

Configuring nbgrader

The nbgrader package is installed when JupyterHub is installed using the steps in the Installation Guide.

View the documentation for detailed configuration steps. The basic steps to configure formgrade or nbgrader's notebook extensions are:

  • activate the extension nbgrader extension activate
  • log into JupyterHub
  • run ansible script ansible-playbook -i hosts deploy_formgrade.yml
  • SSH into JupyterHub
  • reboot the Hub and nbgrader supervisorctl reload

Using nbgrader

With this reference deployment, instructors can start to use nbgrader. The Using nbgrader section of the reference deployment documentation gives brief instructions about creating course assignments, releasing them to students, and grading student submissions.

For full details about nbgrader and its features, see the nbgrader documentation.

Notes

Ansible configuration and deployment

Change the ansible configuration by editing ./ansible_cfg.

To limit the deployment to certain hosts, add -l hostname to the Ansible deploy commands:

ansible-playbook -i hosts -l hostname deploy.yml

Authentication

If you are not using GitHub OAuth, you will need to manually create users using adduser: adduser --gecos "" username.

Logs

The logs for jupyterhub are in /var/log/jupyterhub.

The logs for nbgrader are in /var/log/nbgrader.

Starting, stopping, and restarting the Hub

To manage the jupyterhub and nbgrader services by SSH to the server and run: supervisorctl jupyterhub [start|stop|restart]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].