release-management
Dokku
release-management | Dokku | |
---|---|---|
1 | 182 | |
- | 26,094 | |
- | 0.8% | |
- | 9.9 | |
- | 10 days ago | |
Shell | ||
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
release-management
-
Ask HN: Solo-preneurs, how do you DevOps to save time?
When it comes to managing your git repo's support for releases, you might like our alternative to git-flow, which we jokingly call "git-ebb":
https://gitlab.com/northscaler-public/release-management
It's a fairly low-tech set of shell scripts that implement a release management strategy that is based on one release branch per minor version. All it does is manage version strings, release commits, release branches & release tags. You can hook your CI/CD into it whenever you're ready for that.
We've used it to great effect on many client projects.
The workflow is pretty simple for a new release (assume a Node.js project in this example):
0. Your main ("main", "master", "trunk", "dev") branch is where all new features go. Assume our next version is going to be "2.3.0", so the version in the main branch starts out at "2.3.0-pre.0". If you need dev prereleases, issue them any time you'd like with `./release nodejs pre`. This will bump the version to "2.3.0-pre.1", "2.3.0-pre.2", etc each time.
1. Ceremony: decide that you're feature complete for your next release.
2. Use the release script to cut a release candidate ("rc"), say, with `./release nodejs rc`. You'll end up with a new branch of the form vmajor.minor, so v2.3 in this example, and the version in that branch will be 2.3.0-rc.0. Appropriate git tags will also be created. The version in the main branch is bumped to 2.4.0-pre.0, for the next minor release.
3. Test your release candidate, releasing more release candidates to your heart's content with `./release nodejs rc`. Meanwhile, developers can start working on new features off of the main branch.
4. Ceremony: decide you're bug-free enough to perform a "generally available" (GA) release.
5. Perform a GA release with `./release nodejs ga`. This will tag a release commit as "2.3.0", push the tag, then bump the version in the release branch (v2.3) to "2.3.1-rc.0".
6. If you find a bug in production, fix it in the release branch, issue as many RCs as you need until it's fixed, then finally release your patch with `./release nodejs patch`. You'll get a release commit & tag "2.3.1", and the version will be bumped to "2.3.2-rc.0". Lastly, cherry pick, (often, literally "git cherry-pick -x ") the change(s) back to the main branch if the bug still applies there; 99% of the time, it will.
7. Repeat ad nauseum.
This allows you at least manage your versions, branches & git tags in a sane & portable way that's low-tech enough for anyone to work on and understand. It's also got plenty of idiot-proofing in it so that it's hard to shoot yourself in the foot.
Further, it's very customizable. After years of use across lots & lots of projects, we recommend using "dev" as your main branch name and as your main branch's prerelease suffix, and using "qa" as your release branch's prerelease suffix. The defaults are "pre" & "rc", and too many folks are using these scripts nowadays for us to change the defaults.
Dokku
-
Open-source alternative to Heroku, Vercel, and Netlify
Would be great to see a comparison to some better known alternatives like
- Dokku [0]
- CapRover [1]
[0] https://dokku.com/
[1] https://caprover.com/
-
Hosting old Node Projects 👴🏼
If you want to dig into it anyways, Dokku is an interesting mention. They provide an Open Source PaaS that you can install on your server to simplify self hosting containers.
-
Deploy Node.js applications on a VPS using Coolify
When I came across Coolify, I thought of giving it a try. I am aware of Dokku, but I never really tried it because it doesn't have a UI. I work primarily as a UI developer, so having a nice UI to work with is a plus for me.
-
The Hater's Guide to Kubernetes
I run all my projects on Dokku. It’s a sweet spot for me between a barebones VPS with Docker Compose and something a lot more complicated like k8s. Dokku comes with a bunch of solid plugins for databases that handle backups and such. Zero downtime deploys, TLS cert management, reverse proxies, all out of the box. It’s simple enough to understand in a weekend and has been quietly maintained for many years. The only downside is it’s meant mostly for single server deployments, but I’ve never needed another server so far.
https://dokku.com/
-
Netlify just sent me a $104K bill for a simple static site
Yeah there are a bunch of selfhostable things:
Caprover (https://caprover.com/)
Dokku (https://github.com/dokku/dokku)
But people still choose Netlify and Vercel for ease of use I think.
Maybe we need something that's just Netlify. The closest I've seen to the "right" UX is Ness:
https://ness.sh
-
The 2024 Web Hosting Report
The modern iteration of these tools has taken the developer experience learnings from the Platform as a Service (PaaS) category, and will bring them to your own VM, giving you your own personal PaaS. Example of this include Dokku, Coolify, Caprover, Cloud66 and many more!
- Ask HN: Is there an open source alternative to Digitalocean app platform?
-
Ask HN: How are you hosting multiple small apps?
Based on the fact that your ideal is to have a similar experience to heroku than managing your own server setting up reverse proxies take a look at these options:
1) https://dokku.com - lets you turn your light sail instance basically into heroku
2) https://render.com
3) https://fly.io
4) If you have aws credits this is their heroku equivalent: https://aws.amazon.com/elasticbeanstalk
above is not what I do but would be the options I would pursue if I understand your preference and requirement correctly.
-
The Best Way to Deploy Your Own Apps
All in all, I really recommend trying out Dokku if you are a developer interested in hosting your own projects. It makes it super easy to get everything you need to get up and running without having to worry about the specifics. And the price is impossible to beat!
-
Zero downtime deployments of containers on locally running server
The installation instructions are on the frontpage of our site. Thats basically all you need to do to install Dokku. As far as using it, we have a simplified tutorial here.
What are some alternatives?
sst - Build modern full-stack applications on AWS
coolify - An open-source & self-hostable Heroku / Netlify / Vercel alternative.
mataroa - Naked blogging platform
CapRover - Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids
nixpkgs - Nix Packages collection & NixOS
Portainer - Making Docker and Kubernetes management easy.
flux2 - Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.
Docker Compose - Define and run multi-container applications with Docker
linuxbrew-core - 💀Formerly the core formulae for the Homebrew package manager on Linux
swarmpit - Lightweight mobile-friendly Docker Swarm management UI
core - MetaCall: The ultimate polyglot programming experience.
porter - Kubernetes powered PaaS that runs in your own cloud.