A collection of Helm charts for self-hosted media - primarily built around the Servarr family of charts, with some complementary charts here and there.
All charts share the common base (media-servarr-base) so configuration patterns are consistent across every application.
| Chart | Description |
|---|---|
bazarr |
Automatic subtitle downloader; companion to Sonarr and Radarr โ bazarr.media |
cleanuparr |
Removes stalled, orphaned, and unwanted items from download clients โ cleanuparr.github.io |
flaresolverr |
Proxy to bypass Cloudflare protection; used by Prowlarr โ github.com/FlareSolverr |
homarr |
Dashboard for self-hosted services โ homarr.dev |
jellyfin |
Open-source media server for movies, TV, and music โ jellyfin.org |
lidarr |
Music library manager โ lidarr.audio |
profilarr |
Quality profile and custom format manager for the *arr stack โ github.com/Dictionarry-Hub/profilarr |
prowlarr |
Indexer manager and proxy for the *arr stack โ prowlarr.com |
radarr |
Movie library manager โ radarr.video |
readarr (deprecated) |
Book library manager โ readarr.com |
sabnzbd |
Usenet download client โ sabnzbd.org |
sonarr |
TV series library manager โ sonarr.tv |
tinymediamanager |
Media metadata scraper and manager โ tinymediamanager.org |
transmission |
BitTorrent download client โ transmissionbt.com |
Each chart has its own README.md under ./charts/<name>/ with per-app installation and configuration details.
- Kubernetes
>=1.24 - Helm
>=3.12 - (Optional) Prometheus Operator CRDs if enabling
metricswhere available (see exportarr)
Add the Helm repository:
helm repo add media-servarr https://media-servarr.shw.al/charts
helm repo updateList available charts:
helm search repo media-servarrInstall a chart (Sonarr as an example):
helm install sonarr media-servarr/sonarr -f my-values.yamlUpgrade an existing release:
helm upgrade sonarr media-servarr/sonarr -f my-values.yamlThe media-servarr-base library gives every chart the same building blocks: secret injection (inline or by reference), config-as-code via a ConfigMap-mounted config file, declarative PersistentVolumeClaims (including binding to a pre-existing PV via volumeName), ingress with optional TLS, an optional Exportarr metrics sidecar for the *arr apps, and the usual pod-scheduling knobs.
For the full list of value keys, their types, and inline documentation:
- Per-chart guides โ each chart has its own
README.mdwith an installation walkthrough and worked examples. - JSON Schema โ
values.schema.jsonvalidates every value path. Editors with the YAML Language Server pick it up automatically via the modeline at the top of eachvalues.yaml. - Default values โ
values.yamlis the canonical reference for defaults and shape.
A distinctive pattern used in these charts is the config-as-code with secret substitution: application config lives in values.yaml, gets rendered to a ConfigMap, and secrets are substituted at pod start, allowing use to use secrets and configmap without having to commit their values:
secrets:
- name: apiKey
ref: 'my-api-key'
application:
config:
filename: config.xml
mountPath: /config/config.xml
secrets: [apiKey] # substituted as $apiKey in contents
contents: |
<Config>
<ApiKey>$apiKey</ApiKey>
</Config>