Add public status dashboard at cloud.ladkau.de

Shows live service health (green/red links) and server CPU, RAM, and
disk usage with progress bars. Reads host stats from /host/proc,
checks service endpoints every 30 s, and serves a frosted-glass UI
over a configurable background image (ansible/roles/dashboard/files/bg.jpg).
This commit is contained in:
ml
2026-06-28 10:14:51 +02:00
parent b15754ba2f
commit fdcc0079cb
9 changed files with 341 additions and 3 deletions
@@ -0,0 +1,29 @@
# Managed by Ansible — do not edit manually
services:
dashboard:
image: python:3.12-alpine
container_name: dashboard
command: python /app/app.py
restart: unless-stopped
volumes:
- {{ dashboard_data_dir }}/app.py:/app/app.py:ro
- {{ dashboard_data_dir }}/bg.jpg:/app/bg.jpg:ro
# Host proc/sys for CPU and RAM stats
- /proc:/host/proc:ro
# Host root filesystem (read-only) for disk stats
- /:/host:ro
networks:
- traefik_public
labels:
- "traefik.enable=true"
# Catch all traffic to cloud.ladkau.de not matched by the more specific
# Traefik dashboard router (which has PathPrefix /dashboard and /api)
- "traefik.http.routers.status.rule=Host(`{{ domain_cloud }}`)"
- "traefik.http.routers.status.entrypoints=websecure"
- "traefik.http.routers.status.tls.certresolver=letsencrypt"
- "traefik.http.services.status.loadbalancer.server.port=8080"
- "traefik.http.routers.status.middlewares=rate-limit@docker"
networks:
traefik_public:
external: true