ml-hub  by ml-tooling

Multi-user hub for spawning and managing multiple ML workspace instances

created 6 years ago
319 stars

Top 86.1% on sourcepulse

GitHubView on GitHub
Project Summary

ML Hub provides a multi-user development platform for machine learning teams, simplifying the setup and management of isolated workspace instances. It targets ML teams needing to provision and control access to computational environments, offering a centralized hub for Jupyter notebooks and associated tools.

How It Works

ML Hub is built upon JupyterHub, extending it with custom Spawners for Docker and Kubernetes. It leverages Nginx for secure routing of HTTPS and SSH traffic to workspace containers. The platform allows administrators to create, manage, and distribute workspaces, configure resource limits (CPU, memory), and enable secure SSH tunneling into user environments.

Quick Start & Requirements

  • Docker: docker run -p 8080 -v /var/run/docker.sock:/var/run/docker.sock -v jupyterhub_data:/data mltooling/ml-hub:latest
  • Kubernetes: Via Helm chart (helm upgrade --install mlhub mlhub-chart-2.0.0.tgz --namespace mlhub)
  • Prerequisites: Docker, Kubernetes (for k8s mode), Helm (for k8s deployment).
  • Configuration: Customization via jupyterhub_user_config.py and config.yaml (for Helm).
  • Docs: Getting Started, Helm Chart, Configuration

Highlighted Details

  • Custom Spawners enhance DockerSpawner and KubeSpawner with user/server labeling and resource configuration forms.
  • Docker mode isolates users via separate Docker networks for enhanced security.
  • Includes a cleanup service for managing orphaned containers and expired workspaces.
  • Supports SSH tunneling into workspace containers for direct access and command execution.

Maintenance & Community

Maintained by @raethlein and @LukasMasuch. Contribution guidelines and a Code of Conduct are provided. Bug reports and feature requests are handled via GitHub issues.

Licensing & Compatibility

Licensed under Apache 2.0. This license is permissive and generally compatible with commercial and closed-source applications.

Limitations & Caveats

Mounting GPUs is not currently supported in Kubernetes mode. The "Days to live" flag for workspaces is informational only. The default auto-generated SSL certificate requires manual trust in browsers.

Health Check
Last commit

3 years ago

Responsiveness

1+ week

Pull Requests (30d)
0
Issues (30d)
0
Star History
4 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.