For the longest time I've ran my websites using a VPS and set up everything from nginx to gunicorn using Ansible. This worked great but is kind of outdated.
Then I tried Coolify. The ease of which I could add a new Postgres database, Umami instance or Redis instance blew my mind. I'd been using Ansible for that, too! After a few days of using it though, I realized there was too much magic going on for my liking.
On x.com, Ben Katz posted an article about self-hosting. While I don't do everything in that post, I extracted immense value from his investigation into different self-host options.
This lead me to try Dokku. A week later I have 5 of my (Django) applications running on Dokku. Including a complete monitoring stack (Loki, Grafana, Prometheus).
My takeaway is this:
-
If you're a beginner getting into self-hosting, Coolify is really good. It does a lot of "magic" under the hood such as registering SSL certificates. You can easily back-up your container data to S3. It's a really great tool.
-
If you're comfortable around the command line, Dokku is the superior experience. It requires a bit more effort (e.g. you need a separate redis, postgers and letsencrypt plugins) but you have complete control over how you run your containers. I had the idea for jilles.link after reading Simon Willson's blogmarks post and had a Django application (this one!) up and runnning in production in a few hours.
Amazing.