Deploy Homarr on Kubernetes — a modern application dashboard with real-time
status monitoring, Docker/Kubernetes integration, and a drag-and-drop widget editor. Connects to media
servers (Plex, Jellyfin), *arr apps (Sonarr, Radarr), and many other services.
encryption.existingSecret protects all integration credentials — losing the key invalidates every integration
Homarr uses SECRET_ENCRYPTION_KEY to encrypt the API keys and passwords stored for every dashboard integration
(Plex, Sonarr, Radarr, etc.). Without encryption.existingSecret, a reinstall generates a new key and permanently
invalidates all saved integration credentials. Always provide a stable encryption.existingSecret before the first
deployment.
Key Features
Embedded Redis — no separate Redis required (external Redis optional for multi-instance)
Supported database backends — SQLite (default) or PostgreSQL with deterministic auto-detection
Integration encryption — all service credentials encrypted via SECRET_ENCRYPTION_KEY
Kubernetes workload discovery — optional live workload status in the dashboard
Auth providers — local credentials, LDAP, and OIDC
Database-aware backup — tar for SQLite (/appdata) or pg_dump for PostgreSQL
The chart defaults to Homarr v2.6.0. Back up /appdata and any external
database before upgrading. Homarr v2 supports SQLite and PostgreSQL, but not
MySQL. Existing MySQL installations must complete Homarr’s official
MySQL-to-SQLite conversion
and deploy and validate the resulting SQLite database before completing this
chart upgrade. The converter does not populate PostgreSQL; switching afterward
requires a separate, operator-controlled and validated migration. The chart
deliberately rejects the obsolete MySQL configuration instead of starting an
incompatible application image. Review the
upstream v2.6.0 release
before a production rollout.
Homarr includes embedded Redis — no external Redis required for single-instance deployments
Homarr ships with an embedded Redis process. External Redis is only needed if you are running multiple Homarr replicas
sharing a common cache (requires PostgreSQL, not SQLite).
Parameter
Type
Default
Description
redis.external
boolean
false
Use an external Redis instead of the embedded one.
redis.host
string
""
External Redis hostname.
redis.port
integer
6379
External Redis port.
redis.existingSecret
string
""
Existing secret with external Redis password.
redis.existingSecretKey
string
redis-password
Key for the password in the existing secret.
Persistence
Parameter
Type
Default
Description
persistence.enabled
boolean
true
Enable PVC for /appdata (SQLite DB + dashboard config + themes).
persistence.size
string
1Gi
PVC size.
persistence.storageClass
string
""
StorageClass for the PVC.
persistence.existingClaim
string
""
Use an existing PVC.
Service and Ingress
Parameter
Type
Default
Description
service.type
string
ClusterIP
Service type.
service.port
integer
7575
Service port (non-standard).
service.ipFamilyPolicy
string
null
Service IP family policy.
service.ipFamilies
array
[]
Ordered Service IP families.
ingress.enabled
boolean
false
Enable an Ingress resource.
ingress.ingressClassName
string
""
Ingress class name.
ingress.annotations
object
{}
Ingress annotations.
ingress.hosts
array
[]
Host and path rules.
ingress.tls
array
[]
TLS configuration.
The official Homarr image listens on fixed container port 7575.
service.port may expose a different Kubernetes Service port, but the named
target port continues to route to that fixed application listener.
Health Probes and ServiceAccount
Parameter
Type
Default
Description
startupProbe.path
string
/api/health/ready
Startup health endpoint.
livenessProbe.path
string
/api/health/live
Liveness health endpoint.
readinessProbe.path
string
/api/health/ready
Readiness health endpoint.
serviceAccount.create
boolean
false
Create a dedicated ServiceAccount.
serviceAccount.automountServiceAccountToken
boolean
false
Mount an API token for scoped workload discovery.
Gateway API
Use gateway.enabled to render a native Kubernetes
Gateway APIHTTPRoute for Homarr. Ingress stays disabled by default and can coexist
with the route when a migration needs both objects.
Homarr’s Service supports Kubernetes
dual-stack networking through optional
service.ipFamilyPolicy and service.ipFamilies values. Defaults omit both fields so existing installs inherit cluster
defaults.
service: ipFamilyPolicy: PreferDualStack
Backup
Database-aware backup: SQLite archives the full /appdata directory with tar.
PostgreSQL uses pg_dump.
Parameter
Type
Default
Description
backup.enabled
boolean
false
Enable scheduled S3 backup CronJob.
backup.schedule
string
"0 3 * * *"
Cron schedule.
backup.archivePrefix
string
homarr
Prefix for backup archive filenames.
backup.s3.endpoint
string
""
S3-compatible endpoint URL.
backup.s3.bucket
string
""
Target bucket name.
backup.s3.existingSecret
string
""
Existing secret with S3 credentials.
backup.database.postgresDumpArgs
string
""
Extra arguments for pg_dump.
extraManifests
array
[]
Extra Kubernetes manifests.
External Secrets
Homarr can render an External Secrets OperatorExternalSecret that projects
SECRET_ENCRYPTION_KEY and AUTH_SECRET into the Kubernetes Secret configured by encryption.existingSecret.