README.md31 lines · main
1# `infra/uptime/` — Uptime Kuma deployment
2
3Uptime Kuma runs as a Docker swarm service outside the main Dokploy
4application layout — it's infra, not a briven app. This directory
5captures the deploy commands + operational runbook lives at
6`docs/runbooks/uptime-kuma.md` (local, gitignored minus
7`MIGRATION.md`).
8
9## Deploy from scratch
10
11```bash
12ssh root@<kvm> "
13 docker volume create briven-uptime-kuma-data
14 docker service create \
15 --name briven-uptime-kuma \
16 --network dokploy-network \
17 --mount type=volume,source=briven-uptime-kuma-data,target=/app/data \
18 --replicas 1 \
19 louislam/uptime-kuma:1
20"
21```
22
23Then drop `infra/traefik/uptime.yml` into `/etc/dokploy/traefik/dynamic/` and add the Cloudflare DNS record.
24
25## Updating the image
26
27```bash
28ssh root@<kvm> "docker service update --image louislam/uptime-kuma:1 briven-uptime-kuma"
29```
30
31See the runbook for monitors to configure + backup considerations.
Preview

infra/uptime/ — Uptime Kuma deployment

Uptime Kuma runs as a Docker swarm service outside the main Dokploy application layout — it's infra, not a briven app. This directory captures the deploy commands + operational runbook lives at docs/runbooks/uptime-kuma.md (local, gitignored minus MIGRATION.md).

Deploy from scratch

ssh root@<kvm> "
  docker volume create briven-uptime-kuma-data
  docker service create \
    --name briven-uptime-kuma \
    --network dokploy-network \
    --mount type=volume,source=briven-uptime-kuma-data,target=/app/data \
    --replicas 1 \
    louislam/uptime-kuma:1
"

Then drop infra/traefik/uptime.yml into /etc/dokploy/traefik/dynamic/ and add the Cloudflare DNS record.

Updating the image

ssh root@<kvm> "docker service update --image louislam/uptime-kuma:1 briven-uptime-kuma"

See the runbook for monitors to configure + backup considerations.