ckanext-jupyternotebook Plugin
This plugin integrates JupyterHub with CKAN, allowing users to execute and temporarily edit interactive Jupyter notebooks within the CKAN environment. The plugin makes data exploration and analysis more accessible and integrated.
Features
- Integration of Jupyter Notebooks within CKAN
- Temporary notebook editing and execution
- Utilize DockerSpawner to create isolated Docker containers for each user, ensuring a secure and personalized computational environment.
- Guest user access without login
- Admin-configurable maximum number of concurrent guest users
How it works
- Users access Jupyter notebooks through the CKAN interface.
- Each user is provided with a temporary, isolated Docker container.
- Users can edit notebook cells and install libraries during their session.
- After a predefined timeout, all changes are automatically reverted.
- Guest users can access notebooks without logging in, subject to availability.
Architecture
The extension consists of two main components:
CKAN Extension (ckanext-jupyternotebook)
- Core CKAN plugin functionality
- Views and templates for notebook interaction
- Controllers for handling notebook operations
JupyterHub Component (jupyterhub)
- Runs as a separate Docker container
- Manages notebook instances
- Provides API endpoints for user management
Installation
As usual for CKAN extensions, you can install ckanext-jupyternotebook as follows:
git clone git@github.com:SDM-TIB/ckanext-jupyternotebook.git
pip install -e ./ckanext-jupyternotebook
pip install -r ./ckanext-jupyternotebook/requirements.txt
Configure Environment Variables
Configure the .env file with the following required variables::
CKAN_JUPYTERNOTEBOOK_URL: The base URL for JupyterHub access
CKAN_JUPYTERHUB_BASE_URL: The base path for JupyterHub
CKAN_NETWORK: Docker network name
CKAN_STORAGE_NOTEBOOK: Path to notebook storage