Uptime Kuma: self-hosted uptime monitoring and status pages. Signed; SBOM and SLSA v1 provenance.
5.2K
readystack/uptimekuma:2.5.8-CE-ubuntu24.04-r3
Source, recipe and records
2.5.8): https://github.com/louislam/uptime-kuma/tree/0bd417b981d7dd4e7a0ecaa5afcd90c274d74ecaA cosign-signed build of github.com/louislam/uptime-kuma 2.5.8 (MIT), built clean-room from official upstream source by ReadyStack.
Who: Individuals, small teams and IT administrators who want to know when their websites and services go down.
Why: Uptime Kuma is an easy-to-use, self-hosted monitoring tool. It checks websites, ports, DNS records and containers at short intervals, sends notifications when something fails, and publishes status pages.
Use case: A small agency hosts websites for its clients. Uptime Kuma checks each site and its certificate, notifies the team by email or chat when one stops responding, and gives each client a status page for their own site.
About the upstream project, written from its own description: https://github.com/louislam/uptime-kuma
Signature, user and attestations below were measured on the published digest sha256:7d314ce0a8a066029fd94099eb1c6bb9e6f43a4b1be1ad4e9beab7305bb03a09 on 2026-10-31.
04daa92344a52dbc) on this release's index digest sha256:7d314ce0a8a066029fd94099eb1c6bb9e6f43a4b1be1ad4e9beab7305bb03a09; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/uptimekuma:2.5.8-CE-ubuntu24.04-r3.uptimekuma).This image follows the ReadyStack release-tag convention:
The current release is 2.5.8-CE-ubuntu24.04-r3 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement.
Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.
Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html
Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.
# ✓ current release
docker pull readystack/uptimekuma:2.5.8-CE-ubuntu24.04-r3
# ✗ unsupported (do not pull)
docker pull readystack/uptimekuma:internal-...
This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/uptimekuma:2.5.8-CE-ubuntu24.04-r3 (the signature is recorded in the public Sigstore transparency log). Support: [email protected], as set out in the ReadyStack Agreement.
Single container. A Node.js (Express + socket.io) self-hosted uptime/status monitor with an embedded SQLite database under /app/data by default. The image IS the complete running instance for that default (no external DB, no sidecar needed). An external MariaDB is technically reachable through environment variables (tested — see Database in the handbooks), but it is not the tested/supported deployment for this release.
docker run -d --name uptime-kuma -p 127.0.0.1:3001:3001 -e UPTIME_KUMA_DB_TYPE=sqlite -v uptime-kuma-data:/app/data readystack/uptimekuma:2.5.8-CE-ubuntu24.04-r3
Starts the Node.js server in the foreground under dumb-init. The -p 127.0.0.1:3001:3001 publishes the port on the host's loopback only, on purpose: the image itself listens on every interface inside the container (UPTIME_KUMA_HOST=0.0.0.0), and on a brand-new data volume the FIRST visitor to reach the port becomes the permanent administrator, with no password or token of the operator's choosing checked first — see First boot in the handbooks before changing it. UPTIME_KUMA_DB_TYPE=sqlite skips an extra unauthenticated database-selection screen that otherwise appears on a brand-new volume (tested — see Database in the handbooks). Visit http://127.0.0.1:3001 from the host, create the administrator account, and only then republish the port to whatever interface it actually needs: stop and remove the container and re-create it with the same -e UPTIME_KUMA_DB_TYPE=sqlite and -v uptime-kuma-data:/app/data, changing only the -p (see First boot in the handbooks for the check to run). Never re-create it without that -v: the image declares no volume, so a container started without one keeps its data in its own writable layer, docker rm deletes it, and the next container opens a new, unclaimed setup window (tested). A fresh volume answered GET /api/entry-page with HTTP 200 about 3 seconds after docker run in testing. The archive ships no ReadyStack Compose file; the compose.yaml files inside docs/source-acquisition/source/ and vendored/uptimekuma-src/ are upstream's (they run louislam/uptime-kuma:2 and publish 3001 on every interface), so do not use them.
The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/uptimekuma. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:ebeeb9cac9ea189741b3531ae70fa8e3cf593f694375e4f4e1e27b68d57b1f14 on 2026-10-31.
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:7d314ce0a…
Size
135.3 MB
Last updated
about 17 hours ago
docker pull readystack/uptimekuma:2.5.8-CE-ubuntu24.04-r3