# Verified compose for Uptime Kuma, tested 2026-10-26 by the SelfHostBench lab (3 runs; the figures are the median). # Lab host: AMD EPYC 9V45 96-Core Processor, 2 vCPU, 7.8 GiB RAM, x86_64, Docker 28.0.4. # Floating image tags below were replaced by the version resolved at test time; # the registry digest is in the comment on each image line. # Measurements: uptime-kuma.json (schema 3). # Lab difference: Adds a `target` container (nginx 1.30.6-alpine, answers 200 on every path, no access log) that the 30 monitors watch, so the test sends no traffic outside the Compose network. The published file has Uptime Kuma alone. # Uptime Kuma 2.5.7: self-hosted uptime monitor. Single container, SQLite in /app/data. # Pinned to a full v2 release so upgrades are a deliberate step (the floating `2` tag follows the v2 stable line; `latest` still pointed at v1 as of 2026-10). # UPTIME_KUMA_DB_TYPE=sqlite picks the database up front. Without it v2 opens a "setup database" wizard (SQLite or MariaDB) on the first visit # and does not start until you have answered it. Wiki: https://github.com/louislam/uptime-kuma/wiki/Environment-Variables services: uptime-kuma: image: louislam/uptime-kuma:2.5.7 # sha256:4b95dbe7ac5343b768f8e04e3035ccd59997872b1a35ab9b0f082d2cc279070e (version 2.5.7, from exec) restart: unless-stopped environment: # Use the built-in SQLite database (/app/data/kuma.db) and skip the database wizard. The first visit then asks for the admin account only. UPTIME_KUMA_DB_TYPE: sqlite volumes: # Monitors, history and settings. Back this up. - kuma-data:/app/data ports: - "127.0.0.1:3001:3001" volumes: kuma-data: