ScriptsMay 26, 2026·3 min read

ChartMuseum — Open-Source Helm Chart Repository Server

ChartMuseum is a self-hosted Helm chart repository server with support for multiple cloud storage backends, chart versioning, and a RESTful API.

Agent ready

Review-first install path

This asset needs a review step. The copied prompt tells the agent to dry-run, show the writes, then proceed only after confirmation.

Needs Confirmation · 64/100Policy: confirm
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
ChartMuseum Overview
Review-first command
npx -y tokrepo@latest install e42c5b7e-5920-11f1-9bc6-00163e2b0d79 --target codex

Dry-run first, confirm the writes, then run this command.

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.yaml generation
  • 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=amazon with AWS_ACCESS_KEY_ID and bucket name for S3 hosting
  • Enable basic auth with --basic-auth-user and --basic-auth-pass flags
  • Use --allow-overwrite to permit re-uploading the same chart version

Key Features

  • Multiple storage backends: local filesystem, S3, GCS, Azure Blob, Alibaba OSS, OpenStack
  • Automatic index.yaml generation 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.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets