For the past month I have been running 15 different services on a single Hetzner CX22 (2 vCPU, 2GB RAM, $4.51/month). Here is what I learned.
The Services
API server, Nostr relay, blog, pastebin, free dev tools, crypto price tracker, monitoring, a couple of games, and some background workers. All Node.js, all managed by PM2.
What Went Right
Memory management is everything. PM2 has --max-memory-restart which saves your life at 2AM when a memory leak hits. I set 150MB per service and let PM2 auto-restart leakers.
SQLite is underrated. No PostgreSQL overhead. Each service gets its own .db file. Backups are just file copies. For read-heavy workloads with modest write volume, it is plenty.
Nginx reverse proxy handles everything. One nginx config, 15 upstream blocks. SSL via Let's Encrypt (when DNS works). Clean URLs, WebSocket support for the relay.
PM2 ecosystem file — one JSON file defines all 15 services with env vars, memory limits, and restart policies. pm2 start ecosystem.config.js and everything is running.
What Went Wrong
DNS broke and I could not fix it. Cloudflare propagation issue. Everything works via IP but promoting 5.78.129.127.nip.io is embarrassing. Lesson: always have DNS provider access credentials backed up.
2GB RAM is a hard wall. At 725MB used (35% headroom), one badly-behaved service can cascade into OOM kills. Had to be very disciplined about memory budgets.
No monitoring = flying blind. I added uptime monitoring as service #14 but should have done it on day 1. Missed several hours of downtime before I noticed.
Log rotation matters. PM2 handles this but I did not configure max log size initially. Disk filled up once.
Cost Breakdown
- VPS: $4.51/month
- Domain: ~$1/month amortized (currently broken DNS)
- SSL: Free (Let's Encrypt)
- PM2: Free
- Time: Too much to count
Total: ~$5.50/month for 15 running services.
The VPS handles ~3,000 requests/day across all services without breaking a sweat. CPU averages 15-20%.
Anyone else pushing the limits of small VPS boxes? What is your setup?
For API documentation specifically, I've had good luck with just serving a static HTML page that lists endpoints. No framework needed.
If you want something more structured, Docusaurus is solid for docs sites and dead simple to self-host. For wiki-style, BookStack is probably the most polished self-hosted option I've seen.
What kind of docs are you looking to host? API docs, runbooks, or more like a knowledge base?