Every website I run — including this one — lives on a single Ubuntu server sitting in my home. No AWS, no Vercel, no Netlify. Just a box, an internet connection, and Cloudflare Tunnel.
People ask me why. Here’s the honest answer.
You Learn the Full Stack
When something breaks at 2am, there’s no support ticket to file. You debug nginx configs, read systemd journal logs, and figure out why that Node.js process is eating memory. This is the kind of knowledge that makes you a better architect — you understand what’s actually happening under the abstractions.
It’s Cheaper Than You Think
A decent mini PC costs less than a year of cloud hosting for multiple sites. My server runs:
- howlingglobal.com — Astro SSR on Node.js
- calgaryhomeestimate.com — FastAPI + React
Total monthly cost: electricity. That’s it.
Cloudflare Tunnel Changes Everything
The old argument against self-hosting was “you’re exposing your home IP.” Cloudflare Tunnel eliminates that entirely. The server makes an outbound-only connection to Cloudflare’s edge — zero public ports, zero port forwarding, zero risk of direct attacks.
Traffic flow:
User → Cloudflare CDN (SSL, WAF, DDoS protection)
→ Cloudflare Tunnel (outbound connection from server)
→ nginx on localhost
→ Application
You get enterprise-grade security for free.
The Setup Is Simpler Than You’d Expect
My entire deployment workflow:
- Write code on my MacBook
git push- SSH into server,
git pull && npm run build sudo systemctl restart howling-global
That’s it. No CI/CD pipeline, no Docker registry, no Kubernetes cluster. Just git and systemd.
When NOT to Self-Host
Self-hosting isn’t for everything. If you need:
- Global edge distribution — use a CDN or edge platform
- Auto-scaling — cloud is the right call
- SLA guarantees — your home internet will go down occasionally
- Team collaboration — managed platforms reduce friction
For personal projects and small business sites? Self-hosting is hard to beat.
The Bottom Line
Self-hosting forces you to understand every layer of the stack. That understanding makes you better at designing systems — whether they run on your home server or across three AWS regions.
If you’re an IT professional who hasn’t set up a server from scratch, I’d strongly recommend it. The lessons stick.
