uptime-kuma-helm icon indicating copy to clipboard operation
uptime-kuma-helm copied to clipboard

A demonstration of a Helm 3 Chart to deploy uptime-kuma on OpenShift and Kubernetes.

trafficstars

[[uptime-kuma-helm-chart]] = Uptime Kuma Helm Chart

image:https://github.com/k3rnelpan1c-dev/uptime-kuma-helm/actions/workflows/container-build.yaml/badge.svg[🏗️ Container Image Build, link="https://github.com/k3rnelpan1c-dev/uptime-kuma-helm/actions/workflows/container-build.yaml"] image:https://img.shields.io/maintenance/yes/2025[Maintenance] image:https://img.shields.io/github/license/k3rnelpan1c-dev/uptime-kuma-helm[GitHub]

This repo contains the automation to repackage link:https://github.com/louislam/uptime-kuma[uptime-kuma] into a non-root OCI container image as well as a simple Helm 3 Chart to deploy on OpenShift, but also on Kubernetes.

The Helm Chart will deploy a single Pod as part of a StatefulSet, you can configure persistence and optionally deploy a OpenShift Route or regular K8s Ingress alongside.

== Helm Repo

[IMPORTANT]

As of version 1.3.0 of this repository/chart there is now a Helm Repository.

[source,bash] .Adding the Helm repository to your Helm

helm repo add k3 https://k3rnelpan1c-dev.github.io/uptime-kuma-helm/ helm repo update

[source,bash] .Installing the Chart from the repo

helm install test-uptime k3/uptime-kuma

or a specific version

helm install test-uptime k3/uptime-kuma --version 1.3.0

== Service Monitor

To use the ServiceMonitor you can enable it by adding serviceMonitor.enabled=true to your values.yaml

=== Usage

To use this you will have to startup uptime-kuma, go to Settings -> API Keys -> Create a key and copy the token. Then add a secret to your namespace that looks like the source file below. Make sure you fill in the username and the password. The username should be the username you use to login. The password should be the token you just generated. If you do not use Authentication in Kuma you can skip this part.

[source,yaml]

apiVersion: v1 kind: Secret metadata: name: uptime-kuma-credentials type: Opaque data: username: password:

== Custom Image

The custom image within this repo is built with the intent to repackage uptime-kuma in an OpenShift compatible way (i.e. to support and work properly with arbitrary UIDs), therefor the image is also a non-root image. It is used within this chart and its sources can be fund under the container folder within this repo or here:

[source,dockerfile]

include::./container/Containerfile[]

I published a prebuilt version of this to link:https://quay.io/repository/k3rnel-pan1c/uptime-kuma?tab=info[Quay.io] and reference that within the Chart, feel free to use that or build it yourself :wink:.

Alternatively, the image is also pushed to link:https://github.com/k3rnelpan1c-dev/uptime-kuma-helm/pkgs/container/uptime-kuma[ghcr.io] (GitHub Container registry) so there is a backup mirror when you run into issues with Quay.

== Support

IMPORTANT: Please note that this is plainly an UNOFFICIAL way to install uptime-kuma. So please do not expect to get help and or support in the official uptime-kuma issues or other forms of help sections!

This Helm Chart and the image where validated against Open Shift 4.x, yet they should work fine with regular Kubernetes.

I will try to keep this Chart and container image updated and operational, yet it may take me a moment to get to the latest uptime-kuma release (~1-2 days usually).