AI-powered daily monitoring for self-hosted servers
Complete 32-node workflow with 3 execution paths (daily digest, critical alerts, first-time setup). Import directly into n8n.
Step-by-step README with prerequisites, credential setup, configuration, and testing walkthrough.
Common issues and fixes for SSH, Google Sheets, Discord, and AI analysis problems.
How to swap LLM providers (Claude, Ollama), change notification targets (Slack, Telegram), adjust thresholds, and migrate to Postgres.
Use it, modify it, share it.
Real CPU %, all filesystems, network I/O, top processes, zombies, failed services, Docker ecosystem health -- collected via SSH with no agents to install.
GPT-4o-mini returns structured JSON with severity-tagged findings, each with a title, detail, and CLI fix command. Not generic summaries -- actionable intelligence.
Status header with inline metric fields, severity-tagged findings with code blocks, Docker ecosystem + trends, and footer. Scan in seconds.
Lightweight SSH check fires instantly to Discord if disk, memory, or inodes cross critical thresholds, or if any container goes down.
18-factor deduction algorithm covering disk, memory, CPU, swap, inodes, zombies, failed services, Docker waste, container restarts, and down containers.
First-time setup trigger auto-creates a premium formatted Google Sheet with dark headers, frozen rows, and conditional formatting gradients.
16 metrics stored daily in Google Sheets. AI compares current vs historical data to detect trends before they become incidents.
A single n8n workflow that SSHes into your server, collects 30+ system and Docker metrics, compares them against 7 days of historical data, and has GPT-4o-mini analyze everything with structured, actionable findings.
### The Problem
If you run a homelab, you have done this: SSH in, run htop, check docker ps, glance at disk usage, decide everything is fine, close the terminal. Maybe you do it daily. Maybe you skip weekends. And then you wake up to a dead service because the disk filled up or a container entered a restart loop at 3 AM.
Full monitoring stacks (Prometheus + Grafana + Node Exporter + Alertmanager) solve this properly, but they add 3-4 containers and real configuration overhead. For a single server running a handful of Docker services, that is often more monitoring infrastructure than actual infrastructure.
### The Solution
This workflow SSHes into your server, collects real CPU utilization %, all mounted filesystems, network I/O, top processes, Docker ecosystem health (system df, dangling images, reclaimable space), and 20+ other metrics. It compares everything against 7 days of history stored in Google Sheets, then sends it to GPT-4o-mini.
The AI returns structured JSON with severity-tagged findings -- each with a title, detail explanation, and the exact CLI command to fix it. The digest lands in Discord as a 4-embed dashboard you can scan in seconds: status header with inline metric fields, severity-tagged findings with code blocks, Docker ecosystem stats + trends, and a footer with timestamp and API cost.
A parallel trigger runs every 5 minutes checking critical thresholds. Disk over 90%, memory over 95%, any container down -- instant Discord alert with the command to fix it.
A first-time setup trigger creates a formatted Google Sheet with dark headers, frozen rows, and conditional formatting gradients for 6 key metrics. One click, no manual sheet creation.
n8n (self-hosted, v1.60+), SSH access to target server (private key auth), OpenAI API key, Discord webhook URL, Google Sheets API credentials, Docker on target server (optional)
Learn how this was built, the decisions made, and gotchas to watch for.
Patterns, lessons, and tools from production automation systems. Delivered weekly.