Why Self-Hosting Your SaaS Stack Isn't Crazy (If You Do It Right)

Running €2,440 MRR worth of SaaS products on a €40/month server. The real costs, risks, and technical details of self-hosting.

Share
Why Self-Hosting Your SaaS Stack Isn't Crazy (If You Do It Right)

I run €2,440 MRR worth of SaaS products on a single €40/month VPS. My entire operational stack costs less than most people pay for Notion + Vercel + Heroku.

The Cost Comparison

ServiceCloud OptionCloud CostSelf-Hosted
CMSGhost Pro€25/moGhost (Docker)
WikiNotion Team€8/userOutline
Project MgmtLinear€8/userVikunja
File StorageDropbox€12/moFileBrowser
SearchAlgolia€30/moElasticSearch
Reverse ProxyCloudflare Pro€20/moCaddy
MonitoringDatadog€15/moCustom scripts
EmailMailgun€35/moMicrosoft Graph
Total~€195/mo€40/mo

Annual savings: €1,860. Over 3 years: €5,580.

My Actual Stack

One VPS: 8GB RAM, 4 vCPUs, 200GB SSD.

  • Caddy — reverse proxy with auto-HTTPS
  • Docker — every service containerized
  • Ghost — blog (you're reading this on it)
  • Outline — internal wiki
  • Vikunja — project management
  • ElasticSearch — full-text search
  • FileBrowser — file management
  • Custom Python — email, social posting, monitoring

Total RAM: ~5.2GB. CPU usually at 2-3%. The server is bored.

The Risks

Server Goes Down

Automated daily backups to OneDrive. Full rebuild from backup in under 2 hours. All Docker configs in git.

Security Breach

  • UFW firewall — only ports 22, 80, 443
  • SSH key-only authentication
  • All services behind Caddy (no direct port access)
  • Encrypted secrets vault (AES-256)
  • Fail2ban + automatic security updates

As secure as AWS? No. Secure enough for a blog and project manager? Yes.

Bus Factor

Everything documented. Docker compose files, Caddy config, backup scripts — all in git with READMEs.

Scaling

I serve hundreds of users, not millions. A single VPS handles it with headroom. When I need to scale, I'll migrate the specific service that needs it.

When Self-Hosting Makes Sense

  • You're technical (Docker and SSH are in your vocabulary)
  • You're bootstrapping (every €100/month matters)
  • You want control (no vendor lock-in, no surprise pricing)
  • Your scale is modest (under 10,000 users)
  • You value learning

When It Doesn't

  • You're not technical
  • You need five-nines uptime
  • You're scaling fast
  • Compliance requires it (SOC2, HIPAA, PCI)
  • Your time is worth more than the savings

The 30-Minute Setup

  1. Get a VPS — Hetzner, Contabo, DigitalOcean. €10-40/month.
  2. Install Dockerapt install docker.io docker-compose-v2
  3. Install Caddy — automatic HTTPS, simple config
  4. Point DNS — A records for subdomains → VPS IP
  5. Docker compose up — each service gets its own file
  6. Set up backups — daily cron to offsite storage
  7. Set up firewall — UFW, allow only SSH + HTTP + HTTPS

The Bottom Line

Self-hosting trades money for time and expertise. If you have the skills and modest scale, it's one of the highest-leverage things you can do as an indie builder.

I save €1,860/year. I have full control. I understand my infrastructure. When something breaks, I know where to look.

That's not crazy. That's engineering.

Considering open-sourcing my Docker setup. Let me know if that'd be useful.