Why Monitor Your VPS?
If you're self-hosting, you're the operations team. Without monitoring, you won't know something is wrong until users complain — or worse, until the server goes down.
Netdata: Real-Time Monitoring
Netdata is an open-source monitoring tool that installs in seconds and provides thousands of metrics out of the box:
- CPU, RAM, disk, network utilization
- Docker container metrics
- Per-process resource usage
- Disk I/O and latency
- Network connections and bandwidth
- System logs
Installation
One command:
curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel
After installation, Netdata runs on port 19999:
http://your-server-ip:19999
Securing the Dashboard
Never expose Netdata to the public internet. Options:
1. Firewall restriction: Only allow your IP
sudo ufw allow from YOUR_HOME_IP to any port 19999 comment 'Netdata'
2. Reverse proxy with auth: Put it behind Coolify's Traefik with basic auth
3. Netdata Cloud: Connect to their free cloud dashboard (no port exposure needed)
Docker Container Monitoring
Netdata automatically detects and monitors Docker containers. You'll see:
- CPU and memory usage per container
- Network I/O per container
- Container health status
- Restart counts
This is invaluable when running Coolify + Mailcow + multiple apps.
Key Metrics to Watch
For a self-hosted stack:
| Metric | Warning | Critical |
|---|---|---|
| CPU usage | > 80% sustained | > 95% |
| RAM usage | > 85% | > 95% |
| Disk usage | > 80% | > 90% |
| Disk I/O wait | > 20% | > 40% |
| Load average | > vCPU count | > 2x vCPU count |
Alerting
Netdata includes built-in alerts. Configure notifications to email, Slack, Discord, or Telegram.
Edit /etc/netdata/health_alarm_notify.conf:
# Email notifications
EMAIL_SENDER="netdata@yourdomain.com"
DEFAULT_RECIPIENT_EMAIL="your@email.com"
# Discord webhook
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/..."
Alternatives
If Netdata isn't your style:
- Prometheus + Grafana: More powerful but more complex to set up
- Uptime Kuma: Simple uptime monitoring (great alongside Netdata)
- Glances: Terminal-based monitoring (no web UI)
Our Recommendation
Install both Netdata (real-time server metrics) and Uptime Kuma (external uptime checks). Together they cover:
- "Is the server healthy?" (Netdata)
- "Is the service reachable?" (Uptime Kuma)
Our complete guide includes monitoring setup as part of the full stack — including alerts, dashboard configuration, and integration with Coolify.
Want the Complete Setup Guide?
This blog post covers the basics. Our premium guide includes step-by-step commands, exact configurations, and the solutions to every gotcha we encountered.