The PrepArr Helm chart deploys a complete media automation stack. Install it from the Helm repository or from a local checkout.
helm install media-stack oci://ghcr.io/robbeverhelst/charts/preparr --version <version> -f values.yaml
helm install media-stack ./helm/preparr -f values.yaml
Find the chart on ArtifactHub.
| Parameter | Description | Default |
|---|
global.namespace | Kubernetes namespace for all resources | preparr |
| Parameter | Description | Default |
|---|
preparr.image.repository | PrepArr container image | ghcr.io/robbeverhelst/preparr |
preparr.image.tag | Image tag | latest |
preparr.image.pullPolicy | Image pull policy | IfNotPresent |
preparr.health.port | Health check server port | 9001 |
preparr.logLevel | Log level (debug, info, warn, error) | info |
| Parameter | Description | Default |
|---|
postgresql.enabled | Deploy PostgreSQL | true |
postgresql.image.repository | PostgreSQL image | postgres |
postgresql.image.tag | PostgreSQL version | 16-alpine |
postgresql.auth.username | Database superuser | postgres |
postgresql.auth.password | Database password | postgres123 |
postgresql.auth.database | Default database | servarr |
postgresql.service.type | Service type | ClusterIP |
postgresql.service.port | Service port | 5432 |
postgresql.logDatabaseEnabled | Create a separate _log database for each Servarr instance | true |
postgresql.persistence.enabled | Enable persistent volume | false |
postgresql.persistence.size | Volume size | 8Gi |
postgresql.persistence.storageClass | Storage class | "" |
Disable the built-in PostgreSQL and point to an external instance:
externalHost: "postgres.database.svc.cluster.local"
password: "external-db-password"
| Parameter | Description | Default |
|---|
sonarr.enabled | Deploy Sonarr | true |
sonarr.image.repository | Sonarr image | linuxserver/sonarr |
sonarr.image.tag | Sonarr version | latest |
sonarr.apiKey | API key (auto-generated if omitted) | — |
sonarr.adminPassword | Admin password | adminpass |
sonarr.service.type | Service type | NodePort |
sonarr.service.webui.port | Web UI port | 8989 |
sonarr.service.webui.nodePort | NodePort | 30989 |
sonarr.reconciliation.enabled | Enable sidecar reconciliation | true |
sonarr.reconciliation.interval | Reconciliation interval (seconds) | 30 |
sonarr.reconciliation.watch | Watch config file for changes | true |
sonarr.storage.tv.enabled | Create TV media PVC | true |
sonarr.storage.tv.size | PVC size | 50Gi |
sonarr.config | Configuration as code (JSON structure) | See values.yaml |
| Parameter | Description | Default |
|---|
radarr.enabled | Deploy Radarr | true |
radarr.image.repository | Radarr image | linuxserver/radarr |
radarr.image.tag | Radarr version | latest |
radarr.apiKey | API key (auto-generated if omitted) | — |
radarr.adminPassword | Admin password | adminpass |
radarr.service.type | Service type | NodePort |
radarr.service.webui.port | Web UI port | 7878 |
radarr.service.webui.nodePort | NodePort | 30878 |
radarr.reconciliation.enabled | Enable sidecar reconciliation | true |
radarr.reconciliation.interval | Reconciliation interval (seconds) | 30 |
radarr.storage.movies.enabled | Create movie media PVC | true |
radarr.storage.movies.size | PVC size | 100Gi |
| Parameter | Description | Default |
|---|
prowlarr.enabled | Deploy Prowlarr | true |
prowlarr.image.repository | Prowlarr image | linuxserver/prowlarr |
prowlarr.image.tag | Prowlarr version | latest |
prowlarr.apiKey | API key (auto-generated if omitted) | — |
prowlarr.adminPassword | Admin password | adminpass |
prowlarr.service.type | Service type | NodePort |
prowlarr.service.webui.port | Web UI port | 9696 |
| Parameter | Description | Default |
|---|
qbittorrent.enabled | Deploy qBittorrent | true |
qbittorrent.image.repository | qBittorrent image | linuxserver/qbittorrent |
qbittorrent.image.tag | qBittorrent version | latest |
qbittorrent.auth.username | Web UI username | admin |
qbittorrent.auth.password | Web UI password | adminpass |
qbittorrent.service.type | Service type | NodePort |
qbittorrent.service.webui.port | Web UI port | 8080 |
adminPassword: "sonarr-pass"
adminPassword: "radarr-pass"
adminPassword: "prowlarr-pass"
adminPassword: "secure-password"
implementation: "QBittorrent"
tag: "0.15.0" # Pin version
storageClass: "network-nfs"
helm install media-stack oci://ghcr.io/robbeverhelst/charts/preparr --version <version> -f values.yaml
helm upgrade media-stack oci://ghcr.io/robbeverhelst/charts/preparr --version <version> -f values.yaml
helm uninstall media-stack
kubectl delete namespace preparr
helm install test oci://ghcr.io/robbeverhelst/charts/preparr --version <version> --dry-run --debug
# Template output (from local checkout)
helm template test ./helm/preparr > output.yaml