JupyterHub Workspace

Aims at providing a collaborative workspace for scientists with a low entry barrier to programming. A collection of common code examples for digital humanities offers rapid prototyping, e.g. for visualizations of databases, regular expression text search or natural language processing.

Components

This project extends the Jupyter Hub Notebook framework with an underlying Nextcloud-based filesystem. This enables users to share their notebooks with individuals or within groups.

For authentication the project uses a pluggable OpenID-Connect federator ( coreos/dex ) to allow single-sign-on from different source ID providers (currently LDAP and Github).

  • Jupyter Hub (Python programming in the browser)
  • Nextcloud (Easy data sharing)
  • Dex  (Singe Sign On)

Programming in ...

The Jupyter Hub system comes with Python kernel preinstalled, but allows by design to add other languages, like C+ or  Julia. 

Architecture

The current workspace version consists of three docker-compose files, to somewhat simplify the deployment. Manual tweeking is still necessary. The aim is to implement a CI/CD system for automatic updating and deploying of the infrastructure.

Sources

All relevant data can be found here: https://github.com/maltevogl/jupyterworkspace