Tried it for a bit. Paid one month of the subscription.
The dashboard is incredibly clunky and at the time they didn't have SSL for db connections (not sure about now). A lot of stuff you need to know what you're doing like configuring tags for Traefik etc.
The deal breaker was it didn't have zero downtime deploys. Any pending request when you update an app is simply killed.
I was expecting something like Heroku or Vercel but this ain't it.
Ended up concluding that if I wanted to run/deploy apps on my own VPS I'd just use Kamal or Dokku. Both have zero downtime deploys, certbot, proxy, etc.
SSL support for DBs was added in a recent release.
A new UI is planned and under development as we speak.
Improvements to zero downtime deployments and our overall deployment flow, including scaling across multiple servers, are under planning and will be released later this year.
That is true, Coolify supports magic variables to make your life easier by automatically creating values like passwords and URLs, but you are not forced to use them, it is just there to make your life easier, some improvements to the naming and docs for the magic vars are planned.
Is this new? I tested it back in October 2024 and it didn't work.
I set up an app that would take a couple of seconds to return a request. Started a long benchmark and did a deploy. Got some errors right after deploying because the pending requests were killed.
Kamal proxy is good enough to sit behind a load balancer. I would not let it be what a client sees. There are some major features missing and it just hasn’t been battle tested enough to be subjected to DDoS type traffic, etc.
Overall, I do like the Kamal approach which basically boils down to the fact that instead of a complicated cluster orchestration system the developers decide which machines code runs on.
Once it has real support for doing DB migrations as a part of its deploys, a proxy that is less magical and more feature rich, and its CLI fixes some poorly documented and frankly somewhat annoying issues it will be a real workhorse.
I am also curious about Dokku + k3s. I have used Dokku for a long time but only on a single host.
Thanks for sharing this. I was thinking of giving it a try, but hearing that zero downtime deployments don't work is a deal breaker for me, which is sad because Coolify looks amazing otherwise.
I do wonder though, why do we even need an alternative to Dokku when it seems to provide everything we need?
If you don't have issues with CLI tools, you're better off with stuff like Ansible, Salt, Chef, Puppet, Nix, Guix, etc. Deploy LGTM or SigNoz alongside your apps and you're good to go.
Thanks for the links.
I didn't know about SwiftWave.
I have a page with a comparison table of self-hosted PaaS on my site: https://dbohdan.com/self-hosted-paas.
It only covers options that don't use Kubernetes.
I have just added SwiftWave.
My goal is to build an intuitive, snappy UI that helps you but doesn’t get in your way. Happy to answer any questions and would love to hear what you think :-)
The core problem of most of the PaaS is the dependency on Swarm (serious workload can't be run on swarm from my experience, disaster recovery too tough).
This is true for most alternatives, but not for Coolify.
I am the second maintainer of Coolify and Andras and I maintain most of Core Coolify while we have 4 other maintainers helping with support and the docs and a few other maintainers who help with CLI and some other stuff.
He did not say "companies vs individuals", he said "single maintainer", which is obviously a high risk factor to consider IMHO.
I wonder why they all start their own projects instead of putting their heads together. They could achieve so much more and make a bit more money on the side, while each of them would have to spend less time on it. It would also attract risk-averse companies.
I've been using Coolify for about a year now and have been very happy with it. It's really low maintenance, it has built in backups for your apps and databases, decent security by default, and is super easy to use. I log into the underlying VMs once per month to do an apt update/upgrade, and that's about it.
I have (re)installed it recently and I can't find the apps backup. The only backup that seems to run in settings is the coolify instance backup.
Moreover I don't see a way to restore a coolify hosted app from the gui (couldn't find one in the doc too).
The documentation around traefik and caddy is lackink a bit. It seems they want you to expose the coolify server directly on the internet. I prefer to host my services behind a cloudflare tunnel and it was a bit janky to setup.
It's low maintenance and stable and certainly has come a long way since I tried it about 2 years ago but there is still many improvements to make.
Just don’t do something stupid like changing system Python, because it will silently fail. I learned this the fun way, by inheriting someone else’s travesty of a setup (spoiler: if you have to hardlink random shared libraries to get stuff to work, that’s a good indicator that maybe you shouldn’t have forcibly upgraded the system’s Python installation), and then finding out that despite reporting success, no packages had been updated in the past year.
Security lost their minds. I was in awe of the miasma of bad decisions that had been made. Perhaps my favorite was that in the script that created this abomination, it blocked Postgres from being updated automatically via editing a file with sed, but they forgot to use -i, so it just, you know, spat out the modified line to stdout and then went on its merry way. This was not an issue however, since as mentioned, unattended-upgrades was broken, so nothing updated.
Same here! Been self hosting on hetzner for about a year now, and support the OSS project for $10/month. Love how it can auto-deploy new git commits, deploy Postgres or any database to the same or separate servers, and you can cram as many apps or docker containers onto a single VPS or move them to a separate server when you need to.
Finally, little utilities like snapdrop or mosquitto are a button click away. Strongly recommended - it’s liberating! I don’t need to re-learn every PaaS vendor’s system - my PaaS comes with me. And a junior can be onboarded to this UI way easier than dokku or kamal IMO.
Another commenter mentioned that zero downtime deployments are not possible, isn't this a loss in your opinion, or did you find a way to do it using Coolify?
I highly recommend Coolify. I evaluated every option when looking for a Heroku alternative, and Coolify is clearly the best as long as you don’t absolutely require zero downtime deploys.
We are hosting over 100 services on it for https://hackclub.com and it’s been great. We’re 3 months in now.
The key is to think about it as a GUI on top of Docker, not as a fully managed solution.
It’s one of those PHP apps that’s weirdly reliable. I see lots of other comments recommending Dokku / Dokploy / others. None of those options are nearly as mature as Coolify in my experience.
I love dokku (and Jose is amazing!). I would also love to know what's different.
The only thing I'm unsure of after reading the comments is that coolify can migrate to another server using a GUI. If that's correct, I don't know how to do it with dokku. But given that it is merely a small, secure and REALLY thoughtful shim over docker, I can imagine doing that myself in a few commands.
I absolutely love dokku so I'm biased but willing to learn.
I’ve been using Dokku for 7 years and counting, both professionally and for hobby stuff. It’s a very mature project that has never gotten in the way, and keeps getting better.
I don't mean it as discouragement but, at least for me, I would choose Heroku or Netlify because I don't want to self host it. I want someone else to manage all those bits for me.
It's good experience building the app though and good to have alternatives available.
I’m glad that the age of platform decay and VC backed companies that these OSS alternatives exist to counter this destructive trend of extraction based vendor lock in.
Vercel, Netlify and Heroku will inevitably not exist in 10-20 years but Coolify will, humming along on a regular VPS.
That's great. I didn't mean any discouragement as much as to say, I would probably not promote its self hosting ability as much. Promote that it's open source and keep working on it because I am sure you'll learn a lot about the field space. If it comes down to it that Heroku, Netlify, Vercel, and all other PaaS companies are gone, I will most likely just do a VPS or server just for my app than launch my own PaaS.
tl;dr if I am looking for a PaaS, I don't care that it's self hostable. I don't want to host it, that's why I am looking.
I use (and love) Heroku in my day job, but when experimenting with Hetzner servers (and the like), it’s nice to have a GUI/framework like Coolify to manage the servers in a similar manner.
> I would choose Heroku or Netlify because I don't want to self host it
Why are people so afraid to self-host? It's usually cheaper and runs better than the hosted services. Get a cheap dedicated server from Hetzner, and you can run all your services there. Servers tend to keep working (usually longer than those cloud services do).
I think most people using Coolify know how to setup those services, it's just faster through Coolify (and, in the future, it will probably come with everything: monitoring, alerting, back-ups, etc.).
It’s because by and large, web devs do not know computing fundamentals, because they’ve had no reason to learn them.
If your language handles memory management for you, why would you learn about it?
If poor performance in your app can be dealt with by spinning up more copies of it, why would you spend time profiling your code?
And, explicitly to your point, if networking can be hand-waved away by tools like ngrok, why would you need to know how it works?
And so on. People who grew up on computers in the 90s, 80s, etc. largely do know these things, because they had to. Understanding those fundamentals, as in any industry, pays dividends.
It’s incredibly frustrating to me that at almost all companies I’ve worked for, when I suggest we self-host something instead of forking over millions to AWS, it’s an instant no. The most honest answer I’ve had so far was “that skill set is difficult to hire for.” It is, I agree – and how do you think we got to this point? By perpetuating the status quo, and enriching the hyperscalers, who seem to have no problem hiring for that skill set.
> when I suggest we self-host something instead of forking over millions to AWS, it’s an instant no.
This is something that bothers me a lot, and I've given up. It's to a point where we're paying thousands of dollars sometimes a year for 200 lines of code.
It also kinda makes it harder to sometimes just practice engineering skills.
For example, I wrote a just in time access request solution at work. However, okta also has one of these. Funny thing is, the one I wrote is a proof of concept - so it's a little rough around the edges but nothing spectacularly wrong.
I then used the okta solution for this and my god, what an absolute mess of software they have.
1. They don't have the ability to have the requester specify a duration of access they want. It all has to be hardcoded.
2. Imagine you request access to group A for 3 hours. 2.5 hours later, you're thinking "Hmm, I think I'm going to need more access. So you make another access request for 3 hours. After half an hour that first access expires, and just removes your access. Even if you still have 2.5 hours left from your second access.
3. Without even trying, I got the backend for setting up the access requests into an inconsistent state. Okta's UI is insisting I can't delete a group because it's used by an access request form. However, when I was making that access request form the save button partially failed, so now there's this dangling foreign key somewhere in their database. Inconsistencies like that in software that's supposed to be the source of truth of access is just absolutely unacceptable.
4. Okta "removes" access by removing you from the group that you had requested. However, if there's any issues with Okta's provisioning code, from Okta's perspective you don't have access but the third party service might still think you do. They don't _remove_ the access from the third party first before removing it from their own source of truth.
What's depressing is that in my proof of concept, before even trying Okta's product I thought about and planned around all of these problems.
---
Anyway rant over, but at least in hiring I am very adamant about the candidate knowing how to get a basic website up and running and understanding NAT/Port Forwarding/HTTP(S) Proxies. Why? Well, when our customers run into issues with our software our engineers need to have the fundamentals to help troubleshoot.
I mean ngrok doesn't handle all your networking pains. It is kind of a quick tool to get a public URL to localhost. But yes, it is painful to find good candidates with some computer networks / OS knowledge. We run a similar service https://pinggy.io
Remember all those horror stories about ridiculous bills from public cloud providers? I also got $4.5k bill once for simple mistake on AWS.
So I decided to build Vercel for your own servers - DollarDeploy, which manages servers and deploys NextJS apps (without docker) and docker compose configs to your server. We don't have self hosted or open source but cloud version starts from $1/mo
Hi, I build NextJs in standalone mode per docs and it works pretty well, we keep it running using pm2 but I want to migrate to systems service. I would say any NextJs should work but we run DollarDeploy ourselves using NextJs 14
What may be mysterious here? You can have multiple versions of Node installed if needed, and every app brings in the entire dependency tree, isolated from everything else.
If you trust your apps enough, you don't even need chroot.
The main selling point of these is deployment, management and application-first approach. Whether you have to first rent a VPS and curl|bash an installation command is not an important detail for many use-cases.
The dashboard is incredibly clunky and at the time they didn't have SSL for db connections (not sure about now). A lot of stuff you need to know what you're doing like configuring tags for Traefik etc.
The deal breaker was it didn't have zero downtime deploys. Any pending request when you update an app is simply killed.
I was expecting something like Heroku or Vercel but this ain't it.
Ended up concluding that if I wanted to run/deploy apps on my own VPS I'd just use Kamal or Dokku. Both have zero downtime deploys, certbot, proxy, etc.
A new UI is planned and under development as we speak.
Improvements to zero downtime deployments and our overall deployment flow, including scaling across multiple servers, are under planning and will be released later this year.
For docker-compose, I had to create a specific one for Coolify because it goes and does its own magic.
Tried Dokploy(similar service), better UI but lacking in docs.
In the right hands, these products could be so much better.
I set up an app that would take a couple of seconds to return a request. Started a long benchmark and did a deploy. Got some errors right after deploying because the pending requests were killed.
Overall, I do like the Kamal approach which basically boils down to the fact that instead of a complicated cluster orchestration system the developers decide which machines code runs on.
Once it has real support for doing DB migrations as a part of its deploys, a proxy that is less magical and more feature rich, and its CLI fixes some poorly documented and frankly somewhat annoying issues it will be a real workhorse.
I am also curious about Dokku + k3s. I have used Dokku for a long time but only on a single host.
Sorry, but FYI this is my biggest pet peeve of all time.
I do wonder though, why do we even need an alternative to Dokku when it seems to provide everything we need?
> Dokku is an extensible, open source Platform as a Service that runs on a single server of your choice. [0]
But they have a "pro" version that mentions something about "servers," plural.[1] So maybe that's the difference between regular and pro?
[0]: https://dokku.com/docs/getting-started/installation/
[1]: https://pro.dokku.com/
If you don't have issues with CLI tools, you're better off with stuff like Ansible, Salt, Chef, Puppet, Nix, Guix, etc. Deploy LGTM or SigNoz alongside your apps and you're good to go.
K8S-based -
https://github.com/cozystack/cozystack
https://github.com/kubero-dev/kubero
https://github.com/pluralsh/plural
DCR-based -
https://github.com/coollabsio/coolify
https://github.com/dokku/dokku/
https://github.com/Dokploy/dokploy
https://github.com/swiftwave-org/swiftwave
Most of these projects are maintained by a single maintainer; for business critical apps look elsewhere.
https://news.ycombinator.com/item?id=41358020 Dokku: My favorite personal serverless platform
Which was nearly immediately preceded by a smaller (62 comments) Coolify discussion also on the front page:
https://news.ycombinator.com/item?id=41356239 Coolify’s rise to fame, and why it could be a big deal
I have a page with a comparison table of self-hosted PaaS on my site: https://dbohdan.com/self-hosted-paas. It only covers options that don't use Kubernetes. I have just added SwiftWave.
My goal is to build an intuitive, snappy UI that helps you but doesn’t get in your way. Happy to answer any questions and would love to hear what you think :-)
The core problem of most of the PaaS is the dependency on Swarm (serious workload can't be run on swarm from my experience, disaster recovery too tough).
Working towards building an orchestrator.
I am the second maintainer of Coolify and Andras and I maintain most of Core Coolify while we have 4 other maintainers helping with support and the docs and a few other maintainers who help with CLI and some other stuff.
I wonder why they all start their own projects instead of putting their heads together. They could achieve so much more and make a bit more money on the side, while each of them would have to spend less time on it. It would also attract risk-averse companies.
Deleted Comment
Moreover I don't see a way to restore a coolify hosted app from the gui (couldn't find one in the doc too). The documentation around traefik and caddy is lackink a bit. It seems they want you to expose the coolify server directly on the internet. I prefer to host my services behind a cloudflare tunnel and it was a bit janky to setup.
It's low maintenance and stable and certainly has come a long way since I tried it about 2 years ago but there is still many improvements to make.
Just curious as the stated reason for the stated reason would become almost unnecessary with that
https://wiki.debian.org/UnattendedUpgrades
Security lost their minds. I was in awe of the miasma of bad decisions that had been made. Perhaps my favorite was that in the script that created this abomination, it blocked Postgres from being updated automatically via editing a file with sed, but they forgot to use -i, so it just, you know, spat out the modified line to stdout and then went on its merry way. This was not an issue however, since as mentioned, unattended-upgrades was broken, so nothing updated.
Finally, little utilities like snapdrop or mosquitto are a button click away. Strongly recommended - it’s liberating! I don’t need to re-learn every PaaS vendor’s system - my PaaS comes with me. And a junior can be onboarded to this UI way easier than dokku or kamal IMO.
We are hosting over 100 services on it for https://hackclub.com and it’s been great. We’re 3 months in now.
The key is to think about it as a GUI on top of Docker, not as a fully managed solution.
It’s one of those PHP apps that’s weirdly reliable. I see lots of other comments recommending Dokku / Dokploy / others. None of those options are nearly as mature as Coolify in my experience.
The only thing I'm unsure of after reading the comments is that coolify can migrate to another server using a GUI. If that's correct, I don't know how to do it with dokku. But given that it is merely a small, secure and REALLY thoughtful shim over docker, I can imagine doing that myself in a few commands.
I absolutely love dokku so I'm biased but willing to learn.
So not completely downtime by definition, is it?
It's good experience building the app though and good to have alternatives available.
Vercel, Netlify and Heroku will inevitably not exist in 10-20 years but Coolify will, humming along on a regular VPS.
tl;dr if I am looking for a PaaS, I don't care that it's self hostable. I don't want to host it, that's why I am looking.
Why are people so afraid to self-host? It's usually cheaper and runs better than the hosted services. Get a cheap dedicated server from Hetzner, and you can run all your services there. Servers tend to keep working (usually longer than those cloud services do).
It's honestly a shocker to me. There's so much knowledge about the stack that gets lost with these services.
If your language handles memory management for you, why would you learn about it?
If poor performance in your app can be dealt with by spinning up more copies of it, why would you spend time profiling your code?
And, explicitly to your point, if networking can be hand-waved away by tools like ngrok, why would you need to know how it works?
And so on. People who grew up on computers in the 90s, 80s, etc. largely do know these things, because they had to. Understanding those fundamentals, as in any industry, pays dividends.
It’s incredibly frustrating to me that at almost all companies I’ve worked for, when I suggest we self-host something instead of forking over millions to AWS, it’s an instant no. The most honest answer I’ve had so far was “that skill set is difficult to hire for.” It is, I agree – and how do you think we got to this point? By perpetuating the status quo, and enriching the hyperscalers, who seem to have no problem hiring for that skill set.
This is something that bothers me a lot, and I've given up. It's to a point where we're paying thousands of dollars sometimes a year for 200 lines of code.
It also kinda makes it harder to sometimes just practice engineering skills.
For example, I wrote a just in time access request solution at work. However, okta also has one of these. Funny thing is, the one I wrote is a proof of concept - so it's a little rough around the edges but nothing spectacularly wrong.
I then used the okta solution for this and my god, what an absolute mess of software they have.
1. They don't have the ability to have the requester specify a duration of access they want. It all has to be hardcoded.
2. Imagine you request access to group A for 3 hours. 2.5 hours later, you're thinking "Hmm, I think I'm going to need more access. So you make another access request for 3 hours. After half an hour that first access expires, and just removes your access. Even if you still have 2.5 hours left from your second access.
3. Without even trying, I got the backend for setting up the access requests into an inconsistent state. Okta's UI is insisting I can't delete a group because it's used by an access request form. However, when I was making that access request form the save button partially failed, so now there's this dangling foreign key somewhere in their database. Inconsistencies like that in software that's supposed to be the source of truth of access is just absolutely unacceptable.
4. Okta "removes" access by removing you from the group that you had requested. However, if there's any issues with Okta's provisioning code, from Okta's perspective you don't have access but the third party service might still think you do. They don't _remove_ the access from the third party first before removing it from their own source of truth.
What's depressing is that in my proof of concept, before even trying Okta's product I thought about and planned around all of these problems.
---
Anyway rant over, but at least in hiring I am very adamant about the candidate knowing how to get a basic website up and running and understanding NAT/Port Forwarding/HTTP(S) Proxies. Why? Well, when our customers run into issues with our software our engineers need to have the fundamentals to help troubleshoot.
So I decided to build Vercel for your own servers - DollarDeploy, which manages servers and deploys NextJS apps (without docker) and docker compose configs to your server. We don't have self hosted or open source but cloud version starts from $1/mo
Edit: just noticed you are in Finland. You might be exactly what I’ve been looking for lately
If you trust your apps enough, you don't even need chroot.