Why I Started a Homelab
Honestly, it started with a very simple thought: Hosting your own server at home is just… cool.
Not AWS. Not Vercel. My own machine. My own control. I wanted to:
- Host my own websites.
- Run my own services.
- Actually understand what happens behind the scenes.
What I Wanted to Learn
This wasn’t just a project; it was curiosity pushing me. I wanted to move past theory and dive into:
- Client-Server Architecture: How they actually maintain a connection.
- DNS Flow: What happens when you type a domain into a browser.
- Networking: Moving beyond textbook definitions to actual packets and ports.
- Practical DevOps: Learning the tools by necessity, not just as buzzwords.
Instead of watching another 10-hour tutorial, I decided: I’ll just build my own setup and figure things out as I go.
My current setup is simple, but it works:
- OS: Ubuntu 24.04.4 LTS x86_64
- CPU: Intel i5-3470 (4) @ 3.600GHz
- GPU: Intel HD Graphics
- Memory: 7833MiB
- Packages: 940 (dpkg)
- Orchestration: Docker + Docker Compose
- Web Server: Caddy + Nginx
- Connectivity: Cloudflare + Cloudflare Tunnel
- Domain: My own custom
.devdomain

The Fun Part: Minecraft Server 🎮
One of the best parts of this whole journey? I hosted my own Minecraft server for my friends and me.
No third-party hosting. No monthly subscriptions to server providers. Just:
- My server.
- My configuration.
- My world.
How Things Actually Work (So Far)
At a high level, here is the path a request takes:
User → Internet → Cloudflare → Tunnel → My Server → Caddy → Website
Problems I Faced
This is where the real learning lived. The highlights include:
- Things Breaking Randomly: Learning to check logs instead of just refreshing the page.
- Port Conflicts: Realizing Port 80 is a crowded place and learning how services bind to IPs.
- 502 Bad Gateway Errors: This was my "final boss." Fixing it taught me more about reverse proxies than any blog post ever could.
- Deployment Confusion: Learning how to manage Docker builds and git branches without losing my mind.
What I Learned
- Servers are simple… until they’re not.
- Networking is everywhere.
- Debugging is the real skill.
- You don’t truly understand a system until you’ve broken it yourself.
What’s Next?
This is just the start. The roadmap looks like this:
- Go Local: Move everything to a dedicated Ubuntu home machine.
- Expansion: Self-host more services (dashboards, media, etc.).
- Automation: Set up proper CI/CD pipelines. (already did for my portfolio)
- Observability: Monitor logs and performance in real-time.
Final Thoughts
This isn’t some "perfect" enterprise setup. It’s messy. It breaks. It’s confusing. But it’s mine. And honestly, that’s what makes it worth it.

COMMENTS_ARCHIVE
Loading archive...