I am gonna be that guy and say it would be nice to share the actual code vs using images to display what the code looks like. It's not great for screenreaders and anyone who want to quickly try out the functionality.
This is pretty neat. I think using the compose yaml file to document what should be running is pretty powerful at smaller scales (though I'm hesitant to place data in docker volumes as people tend to delete things at will and then are shocked that their data is gone).
I once spoke with the manager of the Compose project and it was news to them that folks used it in production for deploys. The lack of tooling around zero-downtime restarts makes that frustrating, so it's exciting to see projects that introduce that in some fashion.
There are just a ton of features that evolved separately from the core project. Plugins allow folks to do things in the project that the maintainers didn't envision or have time to maintain - that's actually how the datastores came to be. I think being extensible has made some things more difficult - particularly maintenance of the main project - but also made it have longevity for folks as they can mold the system to work as they'd like (the plethora of community plugins speak to that). It's a bit like how programming languages have modules or packages you can install/import into your app.
The datastore plugins were initially external as there was a ton of movement in maintaining them and it was at a different pace from the main project, though I'm now working on ways to bring them back into the core as they've stabilized quite a bit over the past decade.
Lots of these companies are YC companies, and they tend to use other YC products. For those that aren't, its easier to just use what other big names are using, and having YC as a backing name is quite useful in that regard.
Dokku is multi node. It supports docker-local (single node) and k3s (multi-node) as schedulers, with most features implemented as expected when deploying to k3s.
Dokku supports distributed compute via our k3s scheduler plugin. This can setup its own k3s cluster or connect to an existing Kubernetes cluster and deploys helm charts on this clusters for your app.
This is great. Dokku (of which I am the maintainer) has a hokey solution for this with our letsencrypt plugin, but thats caused a slew of random issues for users. Nginx sometimes gets "stuck" reloading and then can't find the endpoint for some reason. The fewer moving knobs, the better.
That said, its going to take quite some time for this to land in stable repositories for Ubuntu and Debian, and it doesn't (yet?) have DNS challenge support - meaning no wildcards - so I don't think it'll be useful for Dokku in the short-term at least.
I tried dokku (and still am!) and it is so hard getting started.
For reference,
- I've used Coolify successfully where it required me to create a Github app to deploy my apps on pushes to master
- I've written GH actions to build and deploy containers to big cloud
What I would love to see for Dokku is tutorials for popular OSS apps and set-objective/get-it-done style getting started articles.
I'd LOVE an article that takes me from baremetal to a reverse proxy+a few popular apps. Because the value isn't in using Dokku, it's in using Dokku to get to that state.
I'm trying to use dokku for my homeserver.
Ideally I want a painless, quick way to go from "hey here's a repo I like" to "deployed on my machine" with Dokku. And then once that works, peek under the hood.
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.