SYS://EDA.001 LOC: IT / +1 UTC --:--:--
AVAILABLE FOR SELECTED PROJECTS v4.2026
← Back to writing
How I Replaced Paid Hosting With a €100 Home Server
19 March 2026 Self-HostingInfrastructureDockerDriftDNS

How I Replaced Paid Hosting With a €100 Home Server

I was spending €150–200 per year on VPS hosting plus €10–15/month on SaaS subscriptions. A €100 mini PC changed that. Here's the full breakdown.

Also published on Medium

I was spending €150–200 annually on hosting for underutilized projects, plus €10–15 monthly on SaaS subscriptions like password managers and file sync services. I wasn’t paying for what I used. I was paying for the comfort of not thinking about it.

A €100 mini PC changed that.

The slow bleed of cloud costs

Every year I’d audit my subscriptions and find the same thing: half a dozen services I was paying for that were solving problems I could solve differently. A VPS running at 8% CPU utilization. A cloud storage subscription for files I access twice a month. A managed service for something I could host myself in an afternoon.

The friction to change always felt higher than the cost to continue. Until it didn’t.

The actual problem with home hosting

The primary obstacle to home hosting isn’t hardware or networking — it’s that residential ISPs assign dynamic public IPs that change unpredictably.

Every time the IP changes, every DNS record you’ve set up points to the wrong address, and your services go dark. Most developers who try home hosting abandon it at this exact point. The solution exists; they just haven’t found it yet.

More on that shortly.

The hardware

A fanless x86 mini PC (€80–120) consuming approximately 10W runs 60 Docker containers smoothly. Unlike Raspberry Pi alternatives, it offers x86 compatibility and adequate RAM without SD card failure risks.

At roughly €2–3 monthly in electricity, payback happens in under three months compared to the cheapest equivalent cloud setup.

The stack

Docker

Containerization isolates services and enables reproducibility. If something breaks, you tear down the container and bring it back up. No dependency conflicts, no state bleed between services, no “it worked on the other machine” problems.

Running 60 services on a single machine sounds ambitious until you realize most of them are idle 95% of the time. Docker makes this manageable.

Nginx Proxy Manager

This handles reverse proxying and SSL certificate management without manual Nginx configuration. You get a clean UI to manage routing rules, and it automatically issues and renews Let’s Encrypt certificates for every domain you configure.

No certificate expiry alerts. No renewal scripts. It just works.

Cloudflare

Using Cloudflare’s free DNS tier masks your home IP address while providing DDoS protection and caching. Your domain resolves to Cloudflare’s edge network, not your home connection. Attackers and scrapers have no direct path to your machine.

The API integration is what makes dynamic DNS automation possible.

Solving the dynamic IP problem with DriftDNS

This is the piece that most home hosting guides gloss over, and it’s the one that actually determines whether your setup works reliably.

DriftDNS is a self-hosted DDNS manager that runs as a Docker container alongside your other services. It monitors your public IP address and automatically updates your DNS records at Cloudflare (and AWS Route53) when the IP changes.

What makes it worth running over a shell script: visibility. You get a dashboard, logs, and status per domain. When something breaks, you can see whether it’s a DNS issue or something else. And unlike most DDNS solutions, it’s self-contained — no third-party service tracking your IP.

How the pieces fit together

Requests follow this path:

Domain → Cloudflare DNS → home IP → router → mini PC → Nginx Proxy Manager → Docker container

DriftDNS keeps the “Cloudflare DNS → home IP” step accurate automatically. Nginx Proxy Manager handles routing from the machine’s external port to the right container. Cloudflare handles caching and protection at the edge.

Each layer has a clear job. When something breaks, the failure is isolated.

The numbers

Cost
Mini PC (one-time)€100
Monthly electricity€2–3
Equivalent cloud setup€30–60/month
Annual cloud cost€360–720/year

The mini PC paid for itself in the first two months.

Tools you need

Everything in this stack is free to use:

Cloudflare has paid tiers with additional features, but nothing in this stack requires them.

Honest tradeoffs

Reliability: If your internet goes down, your services go down. For anything with real SLA requirements, this isn’t the right architecture. For personal projects and developer tools, planned or brief downtime is tolerable.

Bandwidth: Residential upload speeds can become a bottleneck at scale. On fiber, this rarely affects personal projects. Know your ISP’s limits before committing to anything bandwidth-intensive.

Setup time: Initial configuration requires a weekend. Ongoing maintenance is minimal — mostly pulling updated Docker images and occasionally adjusting routing rules.

Final thoughts

This setup suits personal projects and developer tools rather than production systems requiring guaranteed uptime. The tooling has matured significantly — five years ago this required significantly more manual configuration.

If you’re currently paying for a VPS that runs at single-digit CPU utilization, or a collection of SaaS subscriptions for services you could self-host, the economics of this approach are hard to argue with.

The barrier to entry is a weekend and €100. The savings compound every month afterward.

← All articles Read on Medium