Your Mac Mini Is a Better Server Than Any VPS You Can Afford
I just replaced three hosting providers with a Mac Mini sitting on my desk.
Not as a dev server. Not for testing. As the actual production server, serving a real website to real visitors over HTTPS, with CDN caching, DDoS protection, and automatic SSL renewal.
Total monthly cost: forty-two cents. In electricity.
The Setup That Shouldn’t Work
Here’s what’s running on a Mac Mini M4 with 16GB of RAM:
- A Ghost CMS serving a production website
- A Cloudflare Tunnel connecting it to the internet
- Docker containers managed by OrbStack
- All of it behind Starlink satellite internet with CGNAT
If you know what CGNAT means, you know why this shouldn’t work. If you don’t: my internet provider doesn’t give me a public IP address. There’s no way for the outside world to reach my machine directly. Every hosting guide on the internet says you need a VPS for this.
They’re wrong.
Cloudflare Tunnel Changes Everything
Cloudflare Tunnel is the piece that makes this possible. It creates an outbound connection from your machine to Cloudflare’s edge network. No inbound ports needed. No public IP needed. No port forwarding. No dynamic DNS.
Your machine reaches out to Cloudflare. Cloudflare handles the rest – SSL termination, CDN caching, DDoS protection, DNS routing. When someone visits your domain, the request goes to Cloudflare’s nearest edge server, travels through the tunnel to your machine, and the response goes back the same way.
The free tier gives you 50 tunnels with unlimited bandwidth.
Setting it up took about ten minutes:
- Install cloudflared (one Homebrew command)
- Authenticate with Cloudflare (one browser click)
- Create a named tunnel (one CLI command)
- Route your domain (one CLI command)
- Write a config file (five lines of YAML)
That’s it. My domain now resolves to a Ghost blog running on hardware I own, in my house, behind satellite internet.
The Math That Makes VPS Pricing Absurd
Let’s do the comparison.
A typical VPS for hosting Ghost + analytics + a few more sites: - 4 vCores, 8GB RAM, 240GB storage - $8-15/month depending on provider and term - $96-180/year
A Mac Mini M4: - 10 CPU cores (4 performance + 6 efficiency) - 16GB unified memory - 228GB storage - Idle power consumption: ~5 watts - Annual electricity cost: ~$5
The Mac Mini has more compute than any VPS under $30/month. It costs less per year in electricity than a single month of VPS hosting.
And you own it. No monthly bill. No provider deciding to “retire” your instance. No surprise price increases. No terms of service changes. Your data stays in your house.
What About Uptime?
This is the honest part. A VPS in a data center has: - Redundant power - Redundant networking - 99.99% uptime SLAs
My Mac Mini has: - Starlink (99.9% uptime in my experience) - A single power supply - Whatever weather is happening outside
For a personal blog, a side project, a portfolio, a small business site – this doesn’t matter. If my site goes down for five minutes during a thunderstorm, nobody notices. Cloudflare’s CDN caches static assets anyway, so cached pages keep serving even if my tunnel drops.
For a law firm’s primary client portal? I’d want a backup. But that backup could be a $3/month VPS that only activates when the tunnel goes down. Not a $15/month primary server.
What Can’t Run Behind a Tunnel
One real limitation: Cloudflare Tunnel doesn’t proxy SMTP traffic on the free tier. Port 25 is blocked. If you need to self-host email, you still need a machine with a public IP.
Same for SIP/RTP telephony. If you’re building a VoIP system, the Mac Mini handles the compute, but the actual phone line needs a small VPS.
This creates the optimal architecture for a solo builder: Mac Mini for web, compute, AI, and databases. Tiny VPS ($3-5/month) for email and telephony only. Everything else runs on hardware you own.
The Real Cost Comparison
Before (three providers): - Shared hosting for email: $264/year - VPS for analytics: $24/year - PaaS for the blog: $36/year - Total: $324/year
After (Mac Mini + backup VPS): - Mac Mini electricity: $5/year - Cloudflare Tunnel: $0/year - Backup VPS for email: $36-60/year - Total: $41-65/year
That’s a 80% cost reduction. And I got more compute, not less.
How to Do This Yourself
You need: 1. Any Mac (or Linux box) on any internet connection 2. A Cloudflare account (free) 3. A domain name 4. Docker (OrbStack on Mac, or plain Docker on Linux)
The full setup – from bare Mac Mini to production Ghost blog with analytics – can be done in an afternoon. The commands are boring: brew install, docker run, cloudflared tunnel create. The insight is that you should bother.
Most solo builders are paying $20-50/month for hosting they don’t need. A machine you already own, plus a free tunnel, gets you further than most VPS tiers.
The forty-two cents is just electricity. The real cost savings is never worrying about a hosting bill again.