2.5 KiB
Executable File
Stellars JupyterHub for Data Science Platform
Multi-user JupyterHub 4 with Miniforge, Data Science stack, and NativeAuthenticator.
This platform is built to support multiple data scientists on a shared environment with isolated sessions. Powered by JupyterHub, it ensures secure, user-specific access via the NativeAuthenticator plugin. It includes a full data science stack with GPU support (optional), and integrates seamlessly into modern Docker-based workflows.
This deployment provides access to a centralized JupyterHub instance for managing user sessions. Optional integrations such as TensorBoard, MLFlow, or Optuna can be added manually via service extensions.
References
This project spawns user environments using docker image: stellars/stellars-jupyterlab-ds
Visit the project page for stellars-jupyterlab-ds: https://github.com/stellarshenson/stellars-jupyterlab-ds
Quickstart
Docker Compose
- Download
compose.ymlandconfig/jupyterhub_config.pyconfig file - Run:
docker compose up --no-build - Open
https://localhost/jupyterhubin your browser - Add
adminuser through self-sign-in (user will be authorised automatically) - Log in as
admin
Start Scripts
start.shorstart.bat– standard startup for the environmentscripts/build.shalternativelymake build– builds required Docker containers
Authentication
This stack uses NativeAuthenticator for user management. Admins can whitelist users or allow self-registration. Passwords are stored securely.
Deployment Notes
- Ensure
config/jupyterhub_config.pyis correctly set for your environment (e.g., TLS, admin list). - Optional volume mounts and configuration can be modified in
jupyterhub_config.pyfor shared storage.
Customisation
You should customise the deployment by creating a compose_override.yml file.
Example below introduces custom config file jupyterhub_config_override.py to use for your deployment:
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
services:
# service for management of a series of users and their jupyterlab
# environments. it is internally managed via a proxy that redirects
# users to their dedicated environments
jupyterhub:
volumes:
- ./config/jupyterhub_config_override.py:/srv/jupyterhub/jupyterhub_config.py:ro # config file (read only)