Add felhom-hub: multi-customer dashboard service

- Hub service receives reports from customer controllers
- SQLite store with 90-day retention and auto-prune
- REST API: POST /api/v1/report, GET /api/v1/customers
- Dark theme dashboard with status overview table
- Customer detail page with system, storage, containers, backup, health
- Bearer token auth for report ingest, bcrypt auth for dashboard
- K8s manifest for felhom-system namespace (Deployment, Service, Ingress, PVC)
- Dockerfile with multi-stage build

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-16 13:19:25 +01:00
parent 13c5c874d2
commit 77b5a4ce4e
13 changed files with 1816 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# =============================================================================
# Felhom Hub Configuration
# =============================================================================
# Location: /etc/felhom-hub/hub.yaml (or mount as ConfigMap in k8s)
#
# The hub receives health reports from customer controllers and serves
# a multi-customer overview dashboard for the operator.
# =============================================================================
# --- Authentication ---
auth:
# Bcrypt hash for dashboard login (Viktor only)
password_hash: ""
# --- API ---
api:
# Bearer token required for report ingest (POST /api/v1/report)
report_api_key: ""
# --- Data retention ---
retention:
max_days: 90 # Keep 90 days of report history
prune_schedule: "04:30" # Daily prune time (Europe/Budapest)
# --- Alerting thresholds ---
alerting:
stale_threshold: "30m" # Customer considered stale if no report for this duration
# --- Server ---
server:
listen: ":8080"
data_dir: "/data" # SQLite database location