How I self-host in 2024

🎧 Listen

I'm a sucker for side projects. There's nothing quite like building something to learn about it.

Over the last 5+ years I've accumulated a little over 15 small web apps and websites. Almost all of them are hosted on a small Hetzner server and deployed using a mix of ssh, docker-compose, and Caddy.

Some months ago my small server started giving me some problems. The 4 vCPUs and 16 GB RAM weren't enough, and hiccups became more frequent. I also want to run more and more small LLMs on it, which turned out to be challenging. The whole "ssh with root using github actions" started to look like more of a limitation than a feature.

It was time for an upgrade.

Coolify apps

First, I needed to upgrade my hardware. Not sure if Hetzner is the cheapest out there, but after using them for 5+ years I can definitely say they're reliable. I went with their server auction, which is a great (and sustainable) way of getting a nice refurbished server for a fair price. For about 30 EUR/month, I upgraded to a nice Intel i7 with 64GB RAM(!). Should be more than enough.

With better hardware, I needed to decide whether I would keep my old setup, or upgrade to something a bit more streamlined (god I hate that word). Turns out, there are quite some open source PaaS alternatives. From Dokku, CapRover, to DHH's Kamal. The one who caught my eye the most was Coolify. Without much due diligence, it seemed fit most of what I needed: Open source, easy to install, active project, with a polished interface, integrates with GitHub, and supports docker-based deployments. That's not an easy list to check-off.

The migration was pretty smooth, except for a couple of more complicated Django applications with databases on docker volumes. Since everything was already running on containers, it was pretty much plug-and-play. In a couple of days everything was migrated.

Kuma screenshot

There are a lot of things I love about Coolify. It scans my GitHub repos and redeploys when needed via webhooks. It also sends me Telegram notifications when something gets updated to a new version. Finally, it also provides a wide range of other applications you can deploy (Databases, S3-compatible storages, and a wide range of other services).

Don't get me wrong - I love the Cloud. But essentially, the Cloud is just someone else’s computer. So why shouldn’t it be my computer? Self-hosting everything means I can pay a fixed price for my hardware, and not for the number of applications that run on it. And even though I did like my little hacked-together setup, I love being able to use, AND contribute to a promising open source project!

There's something incredible about what a 1-man team can accomplish with the support of the open source community.


April 28, 2024
Subscribe Reply