Self-host Zero to JupyterHub with Kubernetes
4.4.4Helm chart for deploying JupyterHub on Kubernetes
- Stars
- 1 725
- Storage
- 1Gi
- Requires
- Helm, Kubernetes, SQLite (via PVC)
quay.io/jupyterhub/k8s-hubWhat is Zero to JupyterHub with Kubernetes?
Zero to JupyterHub with Kubernetes is a Helm chart and guide that lets you run JupyterHub on your own Kubernetes cluster. It gives organizations a way to provide shared, reproducible Jupyter notebook environments to many users — students, researchers, or data teams — with persistent storage and configurable authentication. The chart bundles JupyterHub itself plus a configurable HTTP proxy, the KubeSpawner for launching user pods, and support for PVC-backed home directories. It works on any Kubernetes 1.28+ cluster (cloud or on-prem) with Helm 3.5+. Container images come from the quay.io/jupyterhub registry for the hub, proxy, single-user servers, and helper components. The project is community-maintained with backing from UC Berkeley, Cal Poly, Simula Research Institute, and 2i2c.
Should you self-host Zero to JupyterHub with Kubernetes?
Zero to JupyterHub with Kubernetes scores 64/100 on selfhost.directory (how scoring works) and ranks #4 of 11 in Container Orchestration. It has 1 725 GitHub stars.
It shipped 9 stable releases in the past year. The latest, 4.4.4, came out on 20 October 2026. New versions land roughly every 5 weeks.
Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Other-licensed and written mostly in Python.
Its closest alternative on selfhost.directory is Docker Engine (80/100, 72 220 stars). It scores higher overall, so compare the two before you pick. See Zero to JupyterHub with Kubernetes vs Docker Engine side by side.
Features
- Auto HTTPS with Let's Encrypt
- Configurable authentication
- Custom user images
- High availability considerationsFull HA requires additional JupyterHub work; sqlite-pvc backend limits parallel hub pods.
- Multi-user JupyterHub
- Network Policies
- Persistent user storage
- Prometheus Metrics
- Resource limits and guarantees
Zero to JupyterHub with Kubernetes README
FAQ
Does the chart support high availability?
Full HA is limited because JupyterHub isn't designed to run in parallel; sqlite-pvc backend requires Recreate deployment strategy which prevents multiple hub pods.
Can I use a static PVC for user storage?
Yes, the chart supports both dynamic and static PVC provisioning for user home directories.
How do I enable Prometheus metrics scraping?
Set hub.networkPolicy.interNamespaceAccessLabels to 'accept' and configure Prometheus pod labels, or add explicit ingress rules for the Prometheus/vmagent pod.
What version of JupyterHub is installed in the Helm Chart?
Each Helm chart release packages a specific JupyterHub version. Check the Helm chart repository release notes for the exact versions.
How does billing for this work?
JupyterHub itself doesn't handle billing; costs are managed through your cloud provider. See the cost projection guide for considerations.
I thought I had deleted my cloud resources, but they still show up. Why?
You probably deleted the specific nodes but not the Kubernetes cluster controlling them. Kubernetes will recreate nodes to maintain the desired resource state.
More in Kubernetes
Aerokube MoonMoon is a self-hosted commercial browser automation platform for Kubernetes/OpenShift running Selenium, Playwright, Cypress, and Puppeteer tests.
agenttierAgentTier is a self-hosted Kubernetes platform providing isolated sandboxes for AI agents and developers with browser terminals and gVisor isolation.
apl-coreApp Platform for Linode Kubernetes Engine
Argo CDOpen-source, self-hosted GitOps CD for Kubernetes that keeps clusters in sync with Kustomize, Helm, Jsonnet or YAML manifests in Git, with web UI, CLI, SSO and RBAC.
CanineOpen-source, self-hosted PaaS that runs on your own Kubernetes cluster: git-push deploys, Let's Encrypt SSL, rollbacks, workers and cron jobs, team access control.
carto-selfhosted-helmCARTO Self-Hosted is a commercial geospatial analytics platform deployed on Kubernetes via Helm, keeping sensitive data within your network for compliance and security.
cloudflare-tunnel-ingress-controllerOpen-source, self-hosted Kubernetes Ingress Controller that exposes Services through Cloudflare Tunnel, automating tunnels, DNS records and cloudflared connectors.
CompartmentCompartment is a self-hosted, open-source Kubernetes deployment platform for teams to run internal tools and apps on their own infrastructure with SSO and RBAC.
ctkSelf-hosted, open-source tool to design Docker Compose and Kubernetes configs visually in the browser, with AI agent help via MCP.
DexOpen-source, self-hosted OIDC and OAuth 2.0 identity service that fronts LDAP, SAML, GitHub, Google and other IdPs, so every app just speaks OpenID Connect.
docker-registry-proxyA self-hosted caching proxy for Docker that centralizes registry config and auth, caches layers/manifests from any registry, and helps avoid rate limits.
dstackdstack is a self-hosted, open-source control plane for GPU compute across clouds, Kubernetes, and bare-metal. It streamlines AI development, training, and inference.
0 comments