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.
- Added 8 variables inside docker-compose, only 7 get recognized
- Why my docker-compose works locally and not on Coolify? Oh yeah it has its own network stuff. Then tell me beforehand!
- Error messages like "Oops something is not okay, are you okay?" 0% helpful information, 100% condescending crap
I'm not sure why this software keeps getting recommended. Even in videos like these, the guy admits its not ready yet: https://www.youtube.com/watch?v=taJlPG82Ucw&t=3126s
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.
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?
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.
I would kind of prefer appimages / flatpak's though ?
I think appimages are the best way if we can get aside from the fact of some limitiations it has if I remember like if you build the project on X then code can only run on linux versions on Y where there is some relation b/w X and Y , I know its very vague... It was some reddit post.
Man , I have watched / read so many posts that I only vaguely remember things but I really don't have exact bookmarks and it just feels so repetitive and kind of humiliating to say these again and again....
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.
I was amazed to find that a) nobody maintained the project after I left, there were only two minor fixes because their house was on fire, and b) I really took the time to write almost complete documentation on all the important topics, which helped me get back on track faster.
You are absolutely right, and I have experienced this most of the time. The problem is that it is an uphill battle to explain to most stakeholders why you are "wasting" so much time on non-customer facing documentation.
It is hard enough to convince even technical stakeholders (e.g. product owners) to write automated tests.
While at the time I mostly think it's bad, later on it forces them to pay me twice as much, so I guess it's not as bad as I always think in those moments :D
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
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.
It uses docker stop once the new container is healthy with a 30 second timeout, which I believe lets existing connections drain out.
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.
It's still there but feels like something different from what it once was.
Right now I’m in the progress of rolling out a new platform powered by Cloud Native Buildpacks that allow you to build an OCI image locally. Here’s some language specific getting started (local) tutorials https://github.com/heroku/buildpacks#heroku-cloud-native-bui...
Nice to hear about the buildpacks. I use Containerfiles but since switching to Podman and Fedora/RockyLinux I've seen stuff about OpenShift which supports buildpacks. https://github.com/sclorg/s2i-base-container/
A semi-successful but not heavily monetized side project on Heroku could cost you an arm and a leg, while running the same thing on some Hetzner box under Dokku, along with a couple of others, may be not that much noticeable.
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.
As for user experience, Vercel has a lot of UX talent but it hasn't been a great user experience for me. I had a glitch on their end that prevented the dashboard from loading for me and it took over a week to resolve, and transferring a domain out turned out to be a manual process. Meanwhile I have had great user experiences with spartan open source projects.
Just comparing exact performance and price and features.
A blank linux VPS has a different UI/UX.
Why does it seem like you're deliberately misunderstanding? Do you work for a platform?
If I am a user looking for some place to host my application, I do not care that one service can be self hosted. I have already made my decision that I am going to host it somewhere else, so I am not going self host the PaaS just to host my application myself.
It can still be self hostable, just put it in the developer documentation and not necessarily promoting it so much on the main page.
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.
Overall it’s good software that just does what it says it will. My needs aren’t particularly complex, but they aren’t totally trivial either. It does a great job orchestrating things without me needing to worry much about the inner workings.
I’ve done these things manually for a long time and I would be fine continuing to do that, but… I’ve got a job, kids, other hobbies, etc. It has been great to have a simple control plane to automate a lot of it for me. I find it makes it more likely for me to build and deploy something in the first place, which is what really counts for me at the end of the day.
The discord has also been a good resource. They’re very helpful and the vibe is very positive in my experience. It has been, and still seems like an ecosystem worth investing in.
Good for 1-click installs that “don’t need” a lot of maintenance, like Ghost, Plausible, etc.
Had some issues with spikes in CPU usage (similar case: https://github.com/coollabsio/coolify/issues/3226) Monitoring is not enough but I just go straight to the container im looking for and htop it.
For not 1-click I still sometimes feel like bumping into a brick wall, and go for a standalone docker-compose setup outside of coolify. Coolify is too high-level to debug small Docker intricacies (or maybe it’s that I’m bad with that).
One thing I've noticed is I've starting using much more open source software for various things. When you can just jump into the UI, paste in the github link, and have it running on a wildcard domain in 60 seconds I find myself giving OSS a try more often before looking elsewhere.
- prefect for ai and other automations.
- metabase
- postiz
- open webui
- jupyter notebook
- few experimental Db
backup is an issue but the best way I have found is to create a dedicated folder for your containers volume and edit docker compose in coolify UI to use this path for all volumes. Now you can backup coolify data and this container volumes folder.
You can assign a wildcard subdomain to it and it can then assign subdomains easily to any project with ssl. Pretty nifty.
Think of coolify as ui for docker and other network things on server. I use lazydocker to manage containers via command line too on server when coolify won't bend to my will. So both combined together gives a solid control and ease.
So I came to the conclusion that if I have to dig through abstractions built by someone else, only to find out that in the end I have to manually restart the underlying containers anyway, I might as well stick to using Docker directly.
And truth be told, it’s not even that difficult to handle it all yourself. And it’s definitely very educational. It gives me a nice feeling of being in control and knowing my server. And on top of that it’s fun too.
We are working on a new UI, and to be even more mature, and a lot of other things, because now I am not doing this alone as I used to for years.
There's also Korifi which implements the Cloud Foundry API on Kubernetes but it's still in progress and its future might be uncertain.
https://stacktape.com is a Heroku/Vercel-like PaaS platform that deploys directly to your own AWS account.
It supports both serverless (lambda functions), and serverful (AWS ECS Fargate or EC2) deployments. Besides that, it supports other AWS infrastructure resources, such as RDS MySQL/Postgres, Redis, ElasticSearch, etc..
You can deploy from console, using git-push-to-deploy, or even use preview deployments (ephemeral environments for every PR).
Compared to alternatives, it's both very easy to use, and flexible/extensible at the same time. You can use it to quickly deploy anything in a few minutes, yet it will be sufficient to cover even complex infrastructure needs you might run into in the future.
- Situation on the SWE hiring market. It's way harder to find a job.
- I personally know people from SW dev agencies that are all saying its very hard to find an opportunity (project) to work on.
- In fact, I'm 99% convinced that we're in a recession, even though its not official. Companies are cutting costs left and right. And think about it this way. When a company invests in a software, it's an investment for them, which will eventually pay for itself in a few years. But if the company is struggling to just stay alive, investments are the first thing they cut.
https://github.com/caprover/caprover/blob/master/LICENSE
It’s deceptive, because it starts out saying APACHE LICENSE but then adds a bunch of nonfree provisions to it, making it NOT Apache licensed.
It’s especially galling when all of these people are trying to nickel and dime their users with this open core nonsense while their business wouldn’t exist if not for docker, k8s, postgres, mysql, node, php, all being open source.
I would recommend Elestio (eles[dot]io) as an alternative which isn't open source, or self-hostable, but met my primary goal of drastically reducing cloud costs. And you can bring your own cloud/server, though I'm choosing to also rent from Hetzner through Elestio.
I'm running two redis databases on machines with 3 cpus, 4gb ram, and 80gb storage for about $80 total (the machines are billed hourly, but you get the max monthly bill up front).
I tried using coolify and I gave up due to every ~third redis connection failing to connect.
No idea what was up with that, ended up going with CapRover.
Great stuff, thanks for your efforts and keep up the good work !
We're solving slightly more than what Coolify are by providing Auth, analytics, event tracking, an admin dashboard and more.
Does it just manage things?
Is it actually open source with usable instructions, or is it magic like Superbase that requires digging through GitHub issues to find the secret truck to getting things to work.
How does it compare to Captain Rover ( which was awesome until it just stopped working one day, luckily my backup script captured my blog before this happened).
At this point I'll just give Render 7$ a month.
When it's 3am I don't want to figure this out by myself. In a Corp environment I'll let the dev ops team sort it out.
Yes, Coolify is completely open source and all features are completely free - the cloud and self-hosted versions are completely the same and the hosting is pretty simple.
I’ve been using them and it’s been the easiest. They have a bunch of templates for open source projects, so u can click and deploy them easily
Thank you to the developers, you really have a keen eye for detail.
Edit: Latest "post" (xeet?) https://mobile.x.com/heyandras/status/1901894087604916396 I could find about revenue
I don't think the number of people who want to FTP stuff is very high anymore, we are all storing our code in git and therefore want to deploy on a commit or tag. We probably care about SSL, maybe we need to build our code before it can be deployed and so on.