Deploy Muon on Kubernetes
Muon runs as stateless application nodes backed by PostgreSQL — scale the backend horizontally with Helm.
Can Muon run on Kubernetes?
Yes. Muon is designed to run as stateless backend nodes backed by PostgreSQL, installable with a Helm chart, with ingress, TLS and horizontal autoscaling.
It also supports AWS EKS, Azure AKS and Google GKE, as well as any conformant Kubernetes cluster.
What a Muon deployment looks like on Kubernetes.
A production Muon install is a handful of Kubernetes resources. The backend and frontend are stateless deployments; all durable state lives in PostgreSQL, so the cluster stays easy to scale and reason about.
Two commands to a running cluster.
Add the Muon chart repository, then install the chart. This deploys the backend, dashboard, tracker and supporting resources into your current namespace.
# add the Muon chart repository helm repo add muon https://charts.muon.run # install Muon into the current namespace helm install muon muon/muon
Override values (image tags, ingress host, database URL, replica counts) with --set or your own values.yaml.
The backend is stateless — scale it horizontally.
Muon backend nodes keep no local state; every request reads and writes PostgreSQL. That means you can add replicas at any time and traffic spreads across them with no coordination. Scale manually, or let a HorizontalPodAutoscaler do it for you.
# scale the stateless backend to five replicas kubectl scale deployment/muon-backend --replicas=5
For automatic scaling, enable a HorizontalPodAutoscaler (HPA) on muon-backend keyed on CPU or request load. As you add backend replicas, PostgreSQL becomes the throughput ceiling — see the production recommendations below.
Running Muon at scale.
The stateless design keeps the cluster simple. Most production hardening is about the database and the edge.
- Use managed PostgreSQL. Amazon RDS/Aurora, Cloud SQL, Azure Database for PostgreSQL or Neon — so backups, failover and patching are handled for you.
- External object storage for exports. Send report and data exports to S3-compatible object storage rather than local pod disk.
- Enable the HPA. Autoscale muon-backend on load so ingest keeps up with traffic spikes.
- Ingress with TLS. Terminate TLS at the ingress with cert-manager and automatic certificate renewal.
- Database backups. Because all state lives in Postgres, schedule automated snapshots or pg_dump backups.
- Set resource limits. Give backend and frontend pods sensible CPU/memory requests and limits so scheduling and autoscaling behave predictably.
- Separate read replicas later. For heavy reporting, add PostgreSQL read replicas so analytical queries do not contend with ingest.
Runs on any conformant Kubernetes.
Muon is not tied to one provider. Point the chart at any cluster with an ingress controller and a PostgreSQL database.
Cloud marketplace packaging for one-click installs is planned.
Where to go from here.
- Just trying Muon out? Start simpler with the Docker Compose deployment guide.
- Want the performance context? Read Muon vs Umami: the internal benchmark.
Questions, answered directly.
Does Muon provide a Helm chart?
Is the Muon backend stateless?
Which managed Kubernetes services are supported?
Do I need Redis to run Muon?
How do I handle backups on Kubernetes?
Ship Muon on your cluster.
Start simple with Docker, or go straight to Helm on Kubernetes. Backend, dashboard, tracker and charts — all open source.