- update-health.js: pings every service URL from script.js (single
source of truth) in parallel every minute via cron and writes
health.json; any HTTP response below 500 counts as online, 5xx as
error, timeouts/DNS failures as offline; TLS validity ignored
- Card badges now show real state instead of a static Online label:
grey Checking, green Online (with latency tooltip), amber Error
(HTTP code), red Offline (reason); refreshed every 30 s
- Entrypoint runs a first sweep at boot; nginx serves /health.json
with no-cache; README documents the behavior
- Apply GTK-like color scheme (dark greys, #f76b2f accent) across
cards, buttons, glows and category colors
- Service cards use the official logo icons; Netbird card shows live
reachability + latency instead of a separate top widget
- Top widgets: Today (calendar events with in-progress highlighting),
Git activity (3 rows visible, scrollable), GPU with live ROCm stats
and loaded Ollama models incl. GPU/CPU split
- Open WebUI card: inline prompt line with model selection
- Calendar section grouping events by day below the services
- data.json fetch with boot retry; GPU/Ollama poll every 5 s
- Today entries wrap long titles; README documents widgets,
environment variables and the .env secrets pattern
- update-data.js: cron job that aggregates Google Calendar ICS feeds
(today + upcoming, node-ical), Netbird reachability, Gitea/GitLab
commit stats and Open WebUI models into data.json
- server.js: small Node proxy behind nginx exposing /api/chat
(Open WebUI completions), /api/gpu-stats and /api/ollama
- gitlab-relay.js: prepared HTTP relay for GitLab over a Netbird VPN
(not wired up yet; the setup key was rejected by vpn.ixsol.at)
- docker-entrypoint.sh: starts updater in the background, API proxy,
cron (15 min refresh) and nginx without blocking startup
- nginx: proxy locations + no-cache for data.json
- compose: TZ, token env wiring from .env, gpu-stats service
(python + rocm-smi with device passthrough)
- dockerignore: keep .env out of the build context
Small dependency-free HTTP server that exposes rocm-smi metrics
(utilization, VRAM, temperature, power) as JSON on port 9101.
Runs as the gpu-stats compose service with /opt/rocm mounted and
/dev/kfd + /dev/dri passed through.
Official SVG logos for Open WebUI, ComfyUI, Gitea, Jellyfin, Immich,
Home Assistant, Nextcloud, Vaultwarden, Netbird, GitLab, Odoo (gem360)
and the Dubplate turntable, replacing the emoji placeholders.