github SikamikanikoBG/homelab-monitor v0.5.0
v0.5.0 — Alerting (Discord + ntfy.sh), configured from the UI

latest releases: v0.25.0, v0.24.0, v0.23.0...
one month ago

Closes #2.

What's new

A new Alerts tab in the dashboard turns on push notifications for things the
collector already detects — no env vars, no compose edits, no restart.

  • Discord — paste a webhook URL; alerts arrive as a coloured embed
    (red = critical, orange = warning).
  • ntfy.sh — set a topic (and optionally a self-hosted ntfy server); alerts
    arrive with severity-based priority and tags.
  • Either channel can be used; both are optional. A Send test alert button
    verifies the wiring end-to-end.

Events that fire (all already computed today)

  • 🔴 Container unhealthy / exited non-zero / dead
  • 🔴 systemd unit failed
  • 🟠 GPU VRAM pressure (free < PRESSURE_FREE_MB)
  • 🔴 GPU OOM events (from the existing events table / oom_scan)
  • 🟠/🔴 Disk crossing a configurable threshold (default 90 %, 95 % = critical)

Notifications are edge-triggered: one ping per state change, recovery
clears the key so the next failure re-fires exactly once. No flapping spam.

How it's stored

Settings live in the existing SQLite DB (new settings table), so they
persist across restarts and image rebuilds via the same ./data bind mount.
The Discord webhook is treated as a secret — the API only round-trips a
*_set: true/false flag, never the value.

Acceptance (from #2)

  • With a Discord webhook set, a container going unhealthy or a GPU OOM posts
    once, not repeatedly. ✅
  • No config → no calls, no errors (plug-and-play preserved). ✅

🤖 Generated with Claude Code

Don't miss a new homelab-monitor release

NewReleases is sending notifications on new releases.