NOTES / INFRA
Running four products on one VPS with Dokploy and Docker — the actual setup and monthly cost
2026-03
Most of what I run — TechPluse, MyLedger's backend services, AI Workspace as it comes together, and a handful of smaller tools — lives on one VPS. Not because that's the "correct" architecture in some abstract sense, but because it's the setup that lets me spend money on the products instead of on infrastructure I don't need yet.
The shape of it
One VPS, Docker for containers, Dokploy on top handling deploys and reverse proxying so I'm not hand-writing nginx configs for every new service. Each product is its own container — one service per container, not a shared monolith — so a bad deploy on one product can't take the others down with it. Caddy handles TLS automatically per domain, which removes an entire category of "the cert expired at 3am" problem I used to have to think about.
Secrets are environment-isolated per container rather than shared globally. It's a small discipline that pays for itself the first time you rotate a key for one product and don't have to worry about whether it was reused somewhere else.
Backups, and the part everyone skips
Nightly Postgres backups, which is the easy half. The half that actually matters is the restore drill — running a monthly test restore to confirm the backup is actually usable, not just present. A backup nobody has ever restored from is a hope, not a plan. This is the single most common gap I see in setups like this, including in earlier versions of my own — it's invisible right up until the day you need it.
Monitoring
Uptime Kuma watching each service, alerts routed to Telegram. Nothing fancy — the point isn't sophistication, it's that I find out about an outage from a message on my phone instead of from a user.
Why not just use managed platforms for everything
I do, for the portfolio itself — static hosting on a platform like Vercel or Cloudflare Pages is the right call when there's no backend state to own. But for products with real backend logic, a self-managed VPS is currently cheaper than the equivalent managed services would be at this scale. I'm not trying to be a dedicated infrastructure specialist — deployment is one part of taking a system from a requirement to something real, not the point of it on its own. But if I'm going to own a product end to end, that includes knowing what's actually running it.
The honest tradeoff: this setup makes me the on-call engineer for four products. That's a cost. It's one I've decided is worth paying while I'm the only one who needs to be woken up.