Files
homelab-optimized/docs/admin/monitoring-setup.md
Gitea Mirror Bot 5d4f7d9d45
Some checks failed
Documentation / Build Docusaurus (push) Failing after 9s
Documentation / Deploy to GitHub Pages (push) Has been skipped
Sanitized mirror from private repository - 2026-03-07 08:33:21 UTC
2026-03-07 08:33:21 +00:00

2.7 KiB

Homelab Monitoring & Alerting Setup

Overview

Service Host Port Purpose
Ntfy Homelab VM 8081 Push notifications
Grafana Homelab VM 3300 Dashboards & alerting
Prometheus Homelab VM 9090 Metrics collection
Uptime Kuma rpi5 3001 Uptime monitoring

Ntfy Setup

Access

  • Web UI: http://192.168.0.210:8081
  • Subscribe to topics: http://192.168.0.210:8081/<topic>
  • alerts - Critical system alerts
  • homelab - General notifications
  • updates - Container update notifications

Mobile App Setup

  1. Install Ntfy app (Android/iOS)
  2. Add server: http://192.168.0.210:8081 (or your public URL)
  3. Subscribe to topics: alerts, homelab

Test Notification

curl -d "Test notification from homelab" http://192.168.0.210:8081/alerts

Grafana Alerting

Access

  • URL: http://192.168.0.210:3300

Configure Ntfy Contact Point

  1. Go to: Alerting → Contact Points → Add
  2. Name: Ntfy
  3. Type: Webhook
  4. URL: http://NTFY:80/alerts (internal) or http://192.168.0.210:8081/alerts
  5. HTTP Method: POST

Configure Email Contact Point (SMTP)

  1. Edit grafana.ini or use environment variables:
[smtp]
enabled = true
host = smtp.gmail.com:587
user = your-email@gmail.com
password = "REDACTED_PASSWORD"
from_address = your-email@gmail.com

Sample Alert Rules

  • CPU > 80% for 5 minutes
  • Memory > 90% for 5 minutes
  • Disk > 85%
  • Container down

Uptime Kuma Notifications

Access

  • URL: http://<rpi5-ip>:3001

Add Ntfy Notification

  1. Settings → Notifications → Setup Notification
  2. Type: Ntfy
  3. Server URL: http://192.168.0.210:8081
  4. Topic: alerts
  5. Priority: high (for critical) or default

Add Email Notification (SMTP)

  1. Settings → Notifications → Setup Notification
  2. Type: SMTP
  3. Host: smtp.gmail.com
  4. Port: 587
  5. Security: STARTTLS
  6. Username: your email
  7. Password: app password
  8. From: your email
  9. To: recipient email
  • All Portainer endpoints (HTTP)
  • Key services: Gitea, Plex, Grafana, etc.
  • External services you depend on

Watchtower Notifications

Watchtower can notify on container updates. Add to compose:

environment:
  - WATCHTOWER_NOTIFICATIONS=shoutrrr
  - WATCHTOWER_NOTIFICATION_URL=ntfy://192.168.0.210:8081/updates

Quick Test Commands

# Test Ntfy
curl -d "🔔 Test alert" http://192.168.0.210:8081/alerts

# Test with priority
curl -H "Priority: high" -H "Title: Critical Alert" \
  -d "Something needs attention!" http://192.168.0.210:8081/alerts

# Test with tags/emoji
curl -H "Tags: warning,server" -d "Server alert" http://192.168.0.210:8081/homelab