Skip to content

Homarr

Helm chart for deploying Homarr modern application dashboard on Kubernetes using the official ghcr.io/homarr-labs/homarr container image.

Key Features

  • Official Homarr image from ghcr.io/homarr-labs/homarr
  • Database backends SQLite3 (default), PostgreSQL, or MySQL with auto-detection
  • PostgreSQL and MySQL subcharts optional bundled database deployments
  • Encryption key management auto-generated or existing secret for SECRET_ENCRYPTION_KEY
  • Kubernetes integration optional workload discovery via ENABLE_KUBERNETES
  • External Redis optional external Redis for multi-instance setups
  • S3-compatible backup database-aware CronJob (SQLite tar, pg_dump, mysqldump)
  • Ingress support configurable ingress with TLS

Installation

HTTPS Repository

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install homarr helmforge/homarr

OCI Registry

helm install homarr oci://ghcr.io/helmforgedev/helm/homarr

Basic Example

homarr:
  enableKubernetes: true

postgresql:
  enabled: true
  auth:
    database: homarr
    username: homarr
    password: 'db-password'

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: dash.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: homarr-tls
      hosts:
        - dash.example.com

backup:
  enabled: true
  schedule: '0 3 * * *'
  s3:
    endpoint: https://s3.amazonaws.com
    bucket: my-backups
    prefix: homarr
    existingSecret: homarr-s3-credentials

Key Values

KeyDefaultDescription
homarr.logLevelinfoLog level
homarr.authProviderscredentialsAuth providers (credentials, ldap, oidc)
homarr.enableKubernetesfalseEnable K8s workload discovery
encryption.key""32-byte hex encryption key (auto-generated)
encryption.existingSecret""Existing secret with encryption key
database.modeautoDatabase mode: auto, sqlite, external, postgresql, mysql
database.sqlite.path/appdata/db/db.sqliteSQLite file path
postgresql.enabledfalseDeploy PostgreSQL subchart
mysql.enabledfalseDeploy MySQL subchart
redis.externalfalseUse external Redis
redis.host""External Redis host
persistence.enabledtrueEnable persistent storage
persistence.size1GiVolume size
service.typeClusterIPService type
service.port7575Service port
ingress.enabledfalseEnable ingress
ingress.ingressClassName""Ingress class (traefik, nginx, etc.)
backup.enabledfalseEnable S3 backup CronJob
backup.schedule"0 3 * * *"Backup cron schedule
backup.s3.endpoint""S3-compatible endpoint URL
backup.s3.bucket""S3 bucket name
backup.s3.existingSecret""Existing secret with S3 credentials

Database Auto-Detection

When database.mode is auto (default), the chart detects which database to use:

  1. If database.external.host is set → external database
  2. If postgresql.enabled is truePostgreSQL subchart
  3. If mysql.enabled is trueMySQL subchart
  4. Otherwise → SQLite3 (zero configuration)

Encryption Key

Homarr requires a SECRET_ENCRYPTION_KEY for encrypting integration secrets. The chart auto-generates a 64-character hex key on first install if not provided. To set your own:

openssl rand -hex 32

Then pass it via encryption.key or an existing secret.

More Information