You moved everything to a VPS. It is cheaper, faster, and under your control.
Then one night your site goes down and you only find out when a customer emails you at 2 a.m.
This post is the smallest monitoring and alerting stack that actually gets used by solo founders and small teams who self-host.
It is not a 47-metric Prometheus + Grafana + PagerDuty architecture. It is the boring, reliable version that tells you the server is down or the disk is full before your users notice.
What you actually need to monitor
For most indie setups the critical signals are simple:
- Is the server reachable?
- Is the web service responding with 200?
- Is disk space under 80%?
- Are the important processes still running?
- Are there any new security updates that require a reboot?
Everything else (CPU load graphs, memory heatmaps, 500 custom metrics) is nice-to-have until you have the basics covered and actually look at the alerts.
The minimal stack that works in 2026
1. Uptime / HTTP check
Use a simple external ping service that hits your domain every 5 minutes and alerts on failure or slow response.
Options that stay free or cheap for low volume: - UptimeRobot (free tier is still generous) - Freshping - Or self-hosted with a small script + cron that curls and emails on failure
2. Disk + basic system alerts
Install a lightweight agent that watches disk, load, and processes.
Common choices:
- monit (simple, config-file based, emails directly)
- netdata (beautiful dashboards, works great on small VPSes)
- Basic cron + df + mail scripts for the ultra-minimal route
3. Security update alerts
Most VPS providers now surface kernel and package updates. The ones that require reboot are the important ones.
A simple weekly cron that runs unattended-upgrades --dry-run and emails you when action is needed is often enough.
The alerting rule that matters most
Only alert when a human actually needs to do something.
Bad alerts (the kind everyone eventually mutes): - “CPU was above 60% for 3 minutes” - “Disk was at 72%” - “Response time was 800ms”
Good alerts: - “Site returned 5xx for 5 consecutive checks” - “Disk is at 92% — you have ~48 hours before it fills” - “Security updates require reboot (kernel)”
The goal is fewer alerts that you actually read and act on.
Quick start recommendation
For most new self-hosted setups in 2026 the fastest path that does not require learning a whole monitoring platform is:
- UptimeRobot (or equivalent) for HTTP uptime
- Netdata or monit for disk + process alerts
- One weekly cron for security updates
Total setup time: under an hour.
You will sleep better knowing the server will tell you when something is wrong instead of waiting for customer emails.
This post follows the revenue publishing workflow. Distinct from all existing checklist/hardening posts. Ready for generator + deploy.