Self-Hosted Monitoring & Uptime
Beszel, Uptime Kuma, Gatus — lightweight homelab-grade monitoring.
Lighter-weight than the full Prometheus stack. Single-container, beautiful UI, just enough for a homelab or small team.
Server / system monitoring (CPU / RAM / disk / containers)
- ★ Beszel — lightweight server-monitoring hub with historical data, alerts, Docker container stats, web UI. The newcomer that actually deserves the hype. Single small container. Default for homelabs in 2026.
- ★ Netdata — per-second metrics, beautiful auto-discovery UI; agent-based. Free; cloud option for fleet view.
- Glances — Python; CLI + web mode; quick to set up.
- Cockpit — Red Hat; web admin UI bundled with most distros.
- Scrutiny — disk SMART monitor with WebUI.
Uptime / endpoint monitors
- ★ Uptime Kuma — the homelab default; HTTP / TCP / DNS / Ping / DB / push checks; status pages; many notification channels.
- ★ Gatus — YAML-configured uptime + status page; great for IaC-driven setups; conditions language is powerful.
- Healthchecks — dead-man's-switch / cron monitor (also covered in Status Pages).
- OpenStatus — open-source status page + monitoring; modern.
- Statping-ng — actively-maintained Statping fork.
- Cachet — long-running OSS status page.
Slim Prometheus alternatives (homelab-scale)
- VictoriaMetrics single-node — drop-in Prometheus alternative; tiny resource footprint.
- Grafana + Beszel + Uptime Kuma datasources — assemble your own dashboard.
Notification channels (most tools support these)
- Slack / Discord / Telegram / Mattermost / Rocket.Chat / Matrix.
- Apprise (
@caronc/apprise) — universal notifications adapter; many tools wrap this. - ntfy — push notifications via simple HTTP; pair with iOS / Android app.
- Gotify — alternative push server.
What a typical homelab stack looks like
- Beszel for system metrics across all your boxes (one hub + an agent per host).
- Uptime Kuma for "is this URL up?" + status page for friends/family.
- Healthchecks for cron job monitoring (backups, scheduled tasks).
- ntfy for phone push when something fires.
- All behind Tailscale + Cloudflare Tunnel for remote access.
Patterns to adopt
- ★ One hub, agents on each box. Beszel works exactly like this; Netdata Cloud does too.
- Group dashboards by purpose — "Media servers," "Production," "Storage."
- Notification routing — page-worthy alerts to phone push; informational to chat.
- Monthly review — silence stale alerts; tune thresholds.
- Don't double-alert on the same condition from multiple tools.
Pick this if…
- Default homelab system monitor: Beszel.
- Default homelab uptime monitor: Uptime Kuma.
- YAML-config / IaC-friendly: Gatus.
- Cron / dead-man's switch: Healthchecks.
- Per-second deep host metrics: Netdata.
- Phone push for alerts: ntfy or Gotify.
- Bigger / production scale: Prometheus stack.