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:
@@ -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
|
||||
Reference in New Issue
Block a user