Overview
Uptime Kuma is a self-hosted uptime monitoring tool (MIT-licensed) — outside-in HTTP(s), TCP, DNS, and ping checks against your apps and third-party dependencies, alerts through 90+ notification providers, and public status pages. This template deploys a single stateful workload with its SQLite database on a persistent volume, served on the canonical*.cpln.app endpoint. The admin account is created by the first visitor to the URL — complete the first-visit setup immediately after installing.
Architecture
- Uptime Kuma — A single-replica stateful workload serving the dashboard, monitoring engine, and status pages on port
3001(HTTP + WebSocket). - SQLite on a persistent volume — All state (monitors, users, notification settings, heartbeat history) lives in a SQLite database on the workload’s volume set; there is no database dependency.
What Gets Created
- Stateful Uptime Kuma Workload — A single replica serving the dashboard, monitoring engine, and status pages on port
3001. - Volume Set — A 10 GiB persistent volume mounted at
/app/dataholding the SQLite database, uploads, and generated keys. A final snapshot is kept for 7 days on delete. - Identity — The workload identity, with no grants — this template creates no secrets and no policies.
This template does not create a GVC. You must deploy it into an existing GVC.
Prerequisites
None — a default install needs no secrets, cloud accounts, or external resources. Install the template using your preferred method:UI
Browse, install, and manage templates visually
CLI
Manage templates from your terminal
Terraform
Declare templates in your Terraform configurations
Pulumi
Declare templates in your Pulumi programs
First-Visit Setup
Uptime Kuma has no way to preset admin credentials — the admin account is created through a setup wizard by the first person to open the URL. The template preselects SQLite, so the wizard asks only for the admin username and password.1
Wait for the workload to become ready
A fresh install is typically ready within a minute. Find the canonical endpoint under
status.canonicalEndpoint of the {release}-uptime-kuma workload.2
Open the endpoint and create the admin account
Visit
https://<canonical>.cpln.app — you are redirected to the setup wizard. Choose an admin username and a strong password.Configuration
The defaultvalues.yaml for this template:
Uptime Kuma Instance
image— The Uptime Kuma container image.resources— CPU and memory for the Uptime Kuma container.volumeset.capacity— Volume size in GiB (minimum 10) for the SQLite database, uploads, and generated keys.
Access
publicAccess.enabled— Serve the dashboard and status pages on the canonical*.cpln.appHTTPS endpoint (default). The dashboard is gated by Uptime Kuma’s own login; status pages are public by design. Set tofalsefor an internal-only instance (external requests are blocked at the edge; in-GVC callers still reach it perinternalAccess).internalAccess.type— Internal firewall scope of the Uptime Kuma workload:
Connecting
Monitors, Notifications, and Status Pages
Everything Uptime Kuma monitors is configured in the app UI after login — none of it is deploy-time configuration:- Monitors — HTTP(s), TCP port, DNS, and ICMP ping checks all work out of the box; the workload has unrestricted outbound access, so it can reach any public target as well as in-GVC workloads by their internal hostnames.
- Notifications — 90+ providers (Slack, email, webhooks, PagerDuty, and more), configured per monitor or globally in the UI. Webhook targets inside the GVC work using internal
*.cpln.localhostnames. - Status pages — Published at
/status/{slug}on the same endpoint, publicly reachable without login.
Resetting the Admin Password
If you lose the admin password, run upstream’s documented recovery command inside the container:Important Notes
- Complete the first-visit setup immediately after install — until an admin account exists, anyone who can reach the endpoint can create it; once one account exists the wizard is permanently disabled. See First-Visit Setup.
- Single instance only — upstream supports exactly one instance (no clustering), so the workload is pinned to 1 replica and there is no replicas knob. A restart means a brief monitoring gap; monitors resume automatically on boot, and all data survives on the volume set.
- No cloud backups in this template — durability is the persistent volume plus a 7-day final snapshot on uninstall. Uninstalling and reinstalling starts a fresh instance.
- Do not switch the database to MariaDB in place — upstream does not support migrating an existing SQLite instance; a MariaDB-backed deployment must be a fresh install.
- Forgot the admin password? Reset it from inside the container — see Resetting the Admin Password.
External References
Uptime Kuma on GitHub
Upstream source repository
Uptime Kuma Wiki
Official documentation wiki
Environment Variables
Environment variables reference
Docker Tags
Image tags and variants reference
Uptime Kuma Template
View the source files, default values, and chart definition