Review, 26 October 2026, about 9 minutes
Coolify after six months on my own hardware
I moved eleven small services off a hand-rolled pile of Compose files and onto Coolify in April. This is what held up, what broke, and who I would point at it.
- Verdict
- Keep running
- Cost to me
- £0 licenceSelf-hosted on a box I already ran. A paid hosted control plane exists; I did not use it.
- Licence
- Apache 2.0Open source, self-hostable without restriction.
- Tested on
- One mini PC, one VPSDebian 12, Docker, six months of daily use.
Sample post written for this build. The setup and opinions read as Lance's notebook; confirm details before quoting.
The short version
Coolify is a web panel that sits on top of Docker and does the jobs I used to do with shell scripts: pull a repo, build it, put it behind a reverse proxy with a certificate, keep the environment variables somewhere sensible, and back up the database. It does those jobs well enough that I stopped opening a terminal for routine deploys.
It is not magic, and it is not Kubernetes. When it fails you are debugging Docker and Traefik underneath it, so you still need to know what those are. If you do, it removes a lot of tedium.
What I tested
- A static site built from a Git push, with preview deploys for pull requests.
- A Node API with a Postgres database, using Coolify's own database resource and scheduled backups to S3-compatible storage.
- An existing
docker-compose.ymlstack (Open WebUI and a few helpers) imported as-is. - Adding a second server over SSH and moving one service across.
- Three minor upgrades of Coolify itself, and one restore of the Postgres backup into a fresh instance.
What held up
Git-push deploys and certificates simply worked, every time, for six months. The Compose import was better than I expected: it read my file, let me set domains per service, and left the rest alone. Environment variables live in one place with a clear split between build-time and run-time values, which fixed a class of mistake I made regularly by hand.
The restore is the test that matters. I pointed a fresh Coolify at the backup bucket, restored, and the API came up against the restored database on the first attempt. That alone moved the verdict from "worth a weekend" to "keep running".
What broke, or annoyed me
- One upgrade changed proxy defaults and two services lost their custom headers until I re-applied them. The release notes mentioned it; I had not read them.
- Build logs are fine for success and thin for failure. For anything subtle I ended up on the server running
docker logs. - The panel itself is a single point of control. It is not in the request path, but losing it means losing the easy way to change anything. Back up the Coolify instance as well as the apps.
How it compares
I have run each of these for at least a fortnight on the same kind of workload. The table is about fit, not a ranking.
Self-hosted deploy tools I have used
Coolify is the tool under review
| Tool | How you drive it | Compose files | Several servers | Licence | Who I would point at it |
|---|---|---|---|---|---|
| Coolify | Web panel, Git push | Imports and runs them | Yes, over SSH | Apache 2.0 | Small teams and solo developers who want a panel and still understand Docker |
| Dokploy | Web panel, Git push | Yes, plus Swarm stacks | Yes, via Docker Swarm | Apache 2.0 with extra terms; read the repo | People who want Swarm underneath and a newer, lighter panel |
| CapRover | Web panel, CLI | Partial, through its own format | Yes, via Docker Swarm | Apache 2.0 | Existing users; it is stable and simple, but I found it slower to move with |
| Kamal | CLI and a config file in the repo | No; its own config | Yes, that is its design | MIT | Teams who want deploys in code review and no panel at all |
The table scrolls sideways.
Who should use it
If you run a handful of web services on one to three machines and you already know Docker, Coolify is the most comfortable of the options above. If your deploys need to be reviewed in pull requests, Kamal fits better. If you have no idea what a reverse proxy is, any of these will hide that from you until the day it matters, which is a reason to learn it first.
I am keeping it. The best thing I can say about a piece of infrastructure is that I forgot it was there, and for most of the six months I did.