This is a prototype JupyterHub server configuration using docker intending to provide Jupyter environments to a class, with authentication handled by an Apache server using CoSign. When a valid user signs in, the JupyterHub server creates a new user for them, and populates their home directory with the repository for the Data, Design and Society course, along with some other miscellaneous Jupyter notebooks for demonstration purposes.
Each user must have access to a all the requirements for Data, Design and
Society. The livinglabstack
container inherits from Jupyter's
Data Science Notebook and installs the remaining requirements
using a mixture of conda and pip.
All of the remaining notebooks inherit from this one, and it could be used locally by students who know how to use docker, with the same instructions as those from the Jupyter container.
This installs JupyterHub with the Living Lab Stack, from the forked version of JupyterHub used for Data, Design and Society. This contains some small modifications for the interface at the landing page.
There are two authentication containers that can be used. Firstly, we can authenticate using GitHub's OAuth by installing the OAuthenticator plugin. Second, we can install our own remote user authenticator, which will look for a user name to be passed by the Apache server handling authentication. After authentication, it will run a script to populate the user's home directory.
How to start this server, and the required storage containers, is described in its own README.
Finally, we have a utility container that is authenticated to run
maintenance jobs in the container. At the moment, it is only configured to
update the dds-notebooks
repositories of all users periodically.