I've been using Coolify for like a month and a half now. It's been working pretty well, but I've run into a couple annoyances. The UI is not great, it requires a separate service to backup volumes, and I cannot for the life of me come up with a good way to cache open graph images generated by my Eleventy build between builds. This was a simple thing with Netlify, but Coolify seems to aggressively delete the cache. I've turned off the daily cache clean, but ideally, I would want more control of what gets cached between builds. With how infrequently I post to my blog, there is rarely a cache of the images.
So that got me looking at Dokploy. They have in their docs some info on using the NIXPACKS_BUILD_CACHE_DIRS environment variable. This is also what I'm attempting with Coolify, but I'm kinda thinking that if they have it in their docs, it's better supported?
I've spent like 24 hours with Dokploy, but have some initial thoughts. The UI looks nicer and it can backup volumes. This is nice for my apps that use SQLite instead of another database. The Traefik config is nicer to look at too. You can easily browse all the files it creates for each of your services. Dokploy also has an integration with GitTea for automatic deployments. This is a theoretical win since I don't self-host GitTea, but it's something I've thought about. Coolify only supports GitHub. Coolify can use webhooks, but that is more setup. Dokploy has a lot going for it.
But, there are a couple downsides. Coolify exposes the NGINX config that nixpacks will use to host a site. This made it super simple for me to add redirects and other things to make my blog work. I've yet to figure out how to do the same with Dokploy. I've tried mounting a file and including the config in my repo. I'm sure it's possible, but I'm not there yet. It also needs an external registry to handle rollbacks on failed builds. It caught me off guard when one of my builds failed and the app was just not running anymore. Coolify has rollbacks built in. I'm sure I could get it setup, but that's one more dependency. Plus, the caching seems to be the same deal as Coolify. I think the main difference is Dokploy has automatic cleanup turned off by default.
I have no immediate plans to switch over to Dokploy, but I'll still investigate it. I'd like to test out caching more with the cleanup turned off[1]. Are there other services I should look into? How difficult would it be to build something like this myself? I'm using these for my personal apps like my blog, not stuff like Plex and other self-hosted services—I do those with Synology. My requirements/wishlist are automatic deploys when I push to a repo, caching between builds, volume backup, and automatic rollbacks. I also like how these build the images too instead of using something like a GitHub action for that. But I suppose that is an option, especially if I self-host GitTea. Something pretty to look at is also a bonus.
Despite all these headaches, it's still really cool that all this is possible.
In Coolify, doesn't seem like you can turn it off, but I did set it to cleanup at 80% disk capacity instead of daily. Maybe I'll do monthly or something. ⤾