# uptime-kuma — service uptime monitor on esh-docker-vm.
#
# Adopted into this repo 2026-08-18. It had been running unmanaged on the
# host since 2025 and was only noticed because its homepage label put it in
# the wrong group: it was ALSO listed manually in the homepage stack's
# services.yaml under Monitoring, so the dashboard rendered two Uptime Kuma
# cards — the labelled one in Apps (with the widget) and the manual one in
# Monitoring (without). The label is now the single source of truth and the
# manual entry is gone.
#
# ⚠️ The compose is preserved as it ran, not normalised. Two deliberate
#   deviations from the house conventions, left alone because this commit is
#   a homepage fix and not a rewrite of a service that has been up for a
#   year:
#     - `restart: always` rather than `unless-stopped` (always revives on
#       daemon start even after a deliberate manual stop)
#     - no healthcheck block (the image ships its own, which is why
#       `docker ps` reports healthy)
#
# The data volume `uptimekuma_uptime-kuma` holds every monitor definition
# and all history. Recreating the container is safe; deleting that volume
# is not.

name: uptimekuma

services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - uptime-kuma:/app/data
    labels:
      # Monitoring, NOT Apps — this is the group the dashboard's own layout
      # reserves for Backrest / Beszel / Dozzle / this. See the note above.
      - homepage.group=Monitoring
      - homepage.name=Uptime Kuma
      - homepage.icon=mdi-arrow-up-bold-circle
      - homepage.description=Service Monitoring (esh)
      - homepage.href=http://10.0.50.45:3001
      - homepage.siteMonitor=http://10.0.50.45:3001
      - homepage.widget.type=uptimekuma
      - homepage.widget.url=http://10.0.50.45:3001
      - homepage.widget.slug=nethealth
    networks:
      - tnet

volumes:
  uptime-kuma: {}

networks:
  tnet:
    name: traefik-net
    external: true
