Introduction
ChartMuseum is a self-hosted HTTP server for Helm charts maintained under the Helm project umbrella. It provides a simple way to host a private Helm chart repository with pluggable storage backends including S3, GCS, Azure Blob, and local filesystem. It implements the Helm chart repository specification and adds a REST API for chart management.
What ChartMuseum Does
- Serves Helm chart packages over HTTP with automatic
index.yamlgeneration - Accepts chart uploads via a REST API for CI/CD integration
- Supports cloud storage backends: Amazon S3, Google Cloud Storage, Azure Blob, and more
- Provides basic authentication and bearer token authorization
- Tracks chart versions and allows overwriting or immutable version policies
Architecture Overview
ChartMuseum is a single Go binary that runs an HTTP server. On startup, it scans the configured storage backend for .tgz chart packages and builds an in-memory index. The index is served at /index.yaml per the Helm spec. Uploads via /api/charts are validated, stored in the backend, and reflected in the index. A cache layer reduces storage read latency for frequently accessed index entries.
Self-Hosting & Configuration
- Run as a standalone binary, Docker container, or deploy via the official Helm chart
- Configure the storage backend via environment variables or CLI flags
- Set
--storage=amazonwithAWS_ACCESS_KEY_IDand bucket name for S3 hosting - Enable basic auth with
--basic-auth-userand--basic-auth-passflags - Use
--allow-overwriteto permit re-uploading the same chart version
Key Features
- Multiple storage backends: local filesystem, S3, GCS, Azure Blob, Alibaba OSS, OpenStack
- Automatic
index.yamlgeneration and rebuild on chart upload or deletion - REST API for uploading, listing, and deleting charts from CI/CD pipelines
- Configurable chart immutability to prevent overwriting published versions
- Lightweight single binary that runs anywhere without external dependencies
Comparison with Similar Tools
- Harbor — Full container and chart registry with RBAC, scanning, and replication
- Nexus Repository — Universal artifact manager, heavier but supports more formats
- OCI registries — Helm 3+ supports OCI-based chart storage, no separate server needed
- GitHub Pages — Free static hosting for public chart repos, no upload API
- JFrog Artifactory — Enterprise artifact management with Helm support, commercial
FAQ
Q: Does ChartMuseum support OCI-based Helm charts? A: No. ChartMuseum implements the classic Helm chart repository protocol. For OCI distribution, use an OCI registry like Harbor or GHCR.
Q: Can I use ChartMuseum with Helm 3?
A: Yes. ChartMuseum works with both Helm 2 and Helm 3. Add it as a repo with helm repo add.
Q: How do I integrate ChartMuseum into CI/CD?
A: Use curl or the helm-push plugin to upload packaged charts to the /api/charts endpoint after a successful build.
Q: Is there a web UI for browsing charts? A: ChartMuseum itself is API-only. Community tools like Kubeapps or Monocular provide a web UI on top.