My self-hosting setup: from EC2 to home lab

Cover Image for My self-hosting setup: from EC2 to home lab
Marcos Stival
Marcos Stival

For years I hosted my apps on AWS EC2. It worked, but the monthly cost kept adding up, and I was also reading a lot about self-hosting on places like r/selfhosted, r/homelab, and Hacker News. Eventually I decided to try it myself.

I bought three small PCs and installed Ubuntu Server on each one. I set static IPs on the LAN so that services don’t jump around between machines, and so I could keep a clean mental map of where everything lives.

The next hurdle was the public IP. Like most people, my ISP gives me a dynamic IP by default. I asked DIGI (great company and prices) for an exclusive/private IP, which they offer for 1€/month. With that in place, I configured port forwarding on the router for HTTP and HTTPS to point at the server running my internal proxy.

For deployment, I started with k3s and Argo CD, but after a while it felt too tedious to manage and deploy everything. I switched to Dokploy, which is a great open-source PaaS, and now I can deploy apps and databases locally with a lot less friction. It also makes rollbacks and environment variables less painful compared to my earlier setup.

Dokploy dashboard on the homepage
Dokploy dashboard on the homepage

To avoid IP changes or downtime when power goes out at home, I also bought a small UPS to keep the network gear and proxy server alive long enough for short outages.

Right now the stack is simple, stable, and cheap to run. The main trade-offs are time spent learning the networking details and making sure power and backups are covered, but for me it’s been totally worth it.