Skip to content

Uptime Kuma

Deploy Uptime Kuma on Kubernetes using the official louislam/uptime-kuma Docker image. Self-hosted monitoring with HTTP/TCP/DNS/Ping checks, 90+ notification services, and customizable status pages.

Key Features

  • 20+ monitor types — HTTP(s), TCP, Ping, DNS, Docker, WebSocket, and more
  • 90+ notification services — Telegram, Discord, Slack, Email, Pushover, and more
  • Status pages — public status pages with custom domains
  • SQLite or MariaDB — embedded SQLite (default) or MySQL subchart
  • External database — connect to existing MariaDB instances
  • Scheduled backups — SQLite tar or mysqldump with S3 upload
  • Ingress support — TLS with cert-manager
  • 2FA — built-in two-factor authentication

Installation

HTTPS repository:

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install uptime-kuma helmforge/uptime-kuma -f values.yaml

OCI registry:

helm install uptime-kuma oci://ghcr.io/helmforgedev/helm/uptime-kuma -f values.yaml

Basic Example (SQLite)

# values.yaml — default values are sufficient
# SQLite is used by default, no database configuration needed

After deploying, access the setup wizard via kubectl port-forward svc/<release>-uptime-kuma 3001:80.

MariaDB Mode

database:
  type: mariadb

mysql:
  enabled: true
  auth:
    password: 'change-me'

External Database

database:
  type: mariadb
  external:
    host: mariadb.example.com
    name: uptime_kuma
    username: uptime_kuma
    existingSecret: uptime-kuma-db-credentials

mysql:
  enabled: false

Key Values

KeyDefaultDescription
uptimeKuma.port3001Application port
database.typesqliteDatabase type (sqlite, mariadb)
mysql.enabledfalseDeploy MySQL subchart
persistence.enabledtrueEnable persistence for /app/data
persistence.size2GiPVC size
ingress.enabledfalseEnable ingress
backup.enabledfalseEnable S3 backups
service.port80Service port

More Information

See the source code and full values reference on GitHub.