It was 2:47am when my phone buzzed. UptimeRobot. "Your monitor api.myapp.com is DOWN."
I sat up. Grabbed the laptop. Opened Terminal. Started SSHing.
You know the drill.
The SSH spiral
The thing nobody tells you about running production solo is that incidents don't happen during business hours. They happen when you've just fallen asleep, when you're at dinner with your family, or when you're on a flight with no WiFi.
And every time, the response is the same:
- SSH into the server
- Run
systemctl statuson everything - Stare at logs that are 800 lines long
- Google the error message
- Try something
- Break something else
- Fix it at 4am, exhausted, not entirely sure what actually solved it
The worst part? After you fix it, you have no idea why it happened. So it'll happen again.
What I was actually missing
After a year of this, I realized my monitoring setup had a fundamental problem. I had alerts — UptimeRobot pings, CPU thresholds — but I had no intelligence.
The alert tells you something is wrong. It doesn't tell you what, why, or what to do about it.
So at 3am, with a down server, I still had to do all the detective work myself. SSH in, read logs, correlate events, form a hypothesis, test it. Under pressure. Half-asleep.
This is fine if you're a seasoned SRE. For a solo founder shipping features? It's unsustainable.
The three things that actually helped
1. Structured log access without SSH
The biggest time sink isn't the fix — it's the diagnosis. Reading logs line by line. journalctl -u app -n 1000 | grep ERROR. Scrolling. Copy-pasting to ChatGPT.
What you actually need: something that reads your logs, finds the pattern, and tells you what's relevant. Not 800 lines of noise — the 3 lines that matter.
2. Knowing what changed
Most production incidents have a simple trigger: a deploy, a cron job, a traffic spike. If you know "this started happening 2 hours after the last deploy," you're 80% of the way to the fix.
Good monitoring correlates your incidents with events. Bad monitoring just tells you a number crossed a threshold.
3. Confirmation before action
The thing that made me most anxious about 3am incidents wasn't the problem itself — it was the fear of making it worse. systemctl restart api — what if that's the wrong service? pm2 reload all — what if that kills the database connection?
The safety net that actually works: something that shows you exactly what it's about to do, and asks for your confirmation before running it.
What good VPS monitoring looks like in practice
Here's the scenario I used to dread: site goes down, I get an alert.
Before: SSH → stare at logs → Google → guess → fix (maybe) → sleep at 4am.
Now: Get alert → open Telegram → "why is my site down?" → get a structured response in 15 seconds telling me nginx isn't running because of a config syntax error on line 47 → confirm the fix → done in 3 minutes.
The difference isn't magic. It's having something that:
- Has access to your actual server (not generic ChatGPT advice)
- Runs the right diagnostic commands automatically
- Reads the relevant logs and explains them
- Proposes a fix and asks before executing
# What the agent actually runs under the hood when you ask "why is my site down?"
ping -c 1 your-server.com
nc -zv your-server.com 80
nc -zv your-server.com 443
systemctl status nginx
tail -n 50 /var/log/nginx/error.log
You don't write this. You don't even see it. You just ask a question and get an answer.
The tools I evaluated
I looked at three categories:
Enterprise tools (Datadog, New Relic, PagerDuty) — powerful, but built for teams with dedicated SREs and managed cloud infrastructure. Overkill for a solo founder on a $20/mo VPS. And the pricing will make you cry.
DIY agents (open-source LLM setups, shell scripts + ChatGPT) — I tried these. The problem is stability. An LLM that can run arbitrary shell commands on your production server is a liability, not an asset. One hallucinated command away from disaster.
The gap in the middle — what I actually needed: something purpose-built for VPS, with a fixed set of validated operations, confirmations before execution, and a simple chat interface. No Kubernetes, no managed cloud, no DevOps certification required.
The honest answer for solo founders
You don't need Datadog. You don't need to learn Prometheus. You don't need to hire a DevOps engineer.
You need:
- Automatic alerts when something breaks (uptime, memory, disk)
- Diagnosis in plain English when it does
- Safe, confirmed actions to fix it — from your phone, at 3am
That's it. Everything else is enterprise complexity that doesn't apply to your situation.
If you're running a VPS — whether it's a side project, a client's app, or your main product — and you're still doing the 3am SSH dance, I built mttrly specifically for this. Free watchdog tier, AI diagnosis from $39/mo. Takes 5 minutes to install.
No cloud migration required.