Agent guide ✓ 实测验证

uptime-kuma — Agent Guide

本页内嵌 #trove-entity JSON(本条目全量结构化数据);全库数据见 /agent/trove.json。

Version2.5.3~2.5.3Categorymonitor
Verified2026-09-01Conflictsopen-webui: Compatible (measured); ollama: Compatible (measured)
Installdocker run -d --name uptime-kuma --restart=always -p 3001:3001 -v uptime-kuma:/app/data ghcr.nju.edu.cn/louislam/uptime-kuma:2.5.3

Related problems

暂无已收录问题。

No conflict-matrix pairs for this tool yet.

# Uptime Kuma — Agent Guide

name: uptime-kuma | version_range: 2.5.3~2.5.3 | generated: 2026-09-01

title_en: Uptime Kuma - Self-hosted service uptime monitoring | desc_en: Self-hosted uptime monitoring with HTTP/TCP/Ping heartbeats, status pages and alerts; Docker one-command setup.

Preflight

note: Docker required; port 3001 free; direct ghcr.io may time out in China (use ghcr.nju.edu.cn prefix, measured).

`agent

docker --version

curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3001/

>>>

预期输出: docker version line; curl 000 (nothing on 3001 yet) or 302 (already installed)

Install

note: China path = ghcr.nju.edu.cn image prefix (measured 2026-09-01, 2.48GB); data in volume uptime-kuma (/app/data). Port 3001 is the default; change the host port if taken.

`agent

docker run -d --name uptime-kuma --restart=always -p 3001:3001 -v uptime-kuma:/app/data ghcr.nju.edu.cn/louislam/uptime-kuma:2.5.3

>>>

预期输出: a container ID; docker ps shows Up + healthy after ~12s (measured)

Operations

Initialize database (first run only)

note: v2.5 uses the REST endpoint POST /setup-database; default SQLite needs no external database. The service switches to the main instance in ~10s.

`agent

curl -s -X POST http://127.0.0.1:3001/setup-database -H "Content-Type: application/json" -d '{"dbConfig":{"type":"sqlite"}}'

>>>

预期输出: {"ok":true} (measured 2026-09-01)

Create admin and log in (socket.io)

note: weak passwords are rejected (passwordStrength check); on an already-initialized instance "setup" returns an error (normal). Login returns a JWT used by the socket session.

`agent

# socket "setup"(username, password) -> {"ok":true,"msg":"successAdded"}

# socket "login"({username,password,token:""}) -> {"ok":true,"token":"..."}

>>>

预期输出: setup {"ok":true}; login token length 188 (measured)

Add an HTTP monitor

note: required fields in v2.5: accepted_statuscodes (string array), conditions (array), rabbitmqNodes (array), kafkaProducerBrokers/SaslOptions (arrays), notificationIDList. Missing conditions -> SQLITE_CONSTRAINT NOT NULL (measured).

`agent

# socket "add"({name:"my-api", type:"http", url:"http://172.17.0.1:8080/health", interval:30,

# maxretries:1, accepted_statuscodes:["200-299"], conditions:[], rabbitmqNodes:[],

# kafkaProducerBrokers:[], kafkaProducerSaslOptions:[], notificationIDList:[]})

>>>

预期输出: {"ok":true,"monitorID":1} (measured)

Check heartbeats

note: getMonitorBeats(monitorID, periodHours) returns {ok:true,data:[...]}; status 1 = UP, 0 = DOWN.

`agent

# socket "getMonitorBeats"(1, 24) -> {"ok":true,"data":[{status:1,ping:16,time:"2026-09-01 10:38:26"}]}

>>>

预期输出: latest heartbeat status:1 with ping (measured UP 16/104ms; DOWN status:0 for bad target)

Verify the container 127.0.0.1 pitfall

note: 127.0.0.1 inside the container = the container itself; monitor host services via 172.17.0.1 (Linux/WSL) or host.docker.internal (Docker Desktop). Measured: 127.0.0.1 monitors all DOWN, gateway monitors UP.

`agent

curl -s -m 5 -o /dev/null -w "%{http_code}" http://172.17.0.1:3000/health

curl -s -m 5 http://172.17.0.1:11434/api/version

>>>

预期输出: 200 for open-webui /health; {"version":"0.x.x"} JSON for ollama (measured via monitors #4/#5 UP)

Uninstall

note: the volume holds monitor config + heartbeat history; volume removal is destructive.

`agent

docker stop uptime-kuma

docker rm uptime-kuma

docker volume rm uptime-kuma

>>>

预期输出: no output for stop/rm (exit 0); volume rm prints the volume name

Facts

writes: Docker volume uptime-kuma (/app/data: kuma.db SQLite + config) | runtime: Docker container (internal port 3001; Node 22 bundled; no external DB with SQLite) | notes: probes targets read-only (HTTP/TCP/Ping/DNS, 12 types); 127.0.0.1 inside container = container itself, host services need 172.17.0.1/host.docker.internal (measured); notifications (Telegram/Webhook) not tested (zero-account); status page not tested; license MIT; no external API key required for core monitoring

Source: uptime-kuma · validated 2026-09-01 · v2.5.3~2.5.3

← Agent index