Releasing EchOS
This document explains how releases work — for the maintainer (you) and for users.The big picture
EchOS uses git tags to drive releases. When you push a tag likev0.2.0, GitHub Actions takes over and does everything automatically:
How to cut a release (maintainer)
1. Make sure main is in a good state
2. Choose a version number
EchOS uses Semantic Versioning:| Change | Version bump | Example |
|---|---|---|
| Bug fixes, small improvements | patch | v0.1.0 → v0.1.1 |
| New features, new plugins | minor | v0.1.0 → v0.2.0 |
| Breaking changes (config schema, API) | major | v0.1.0 → v1.0.0 |
3. Tag and push
4. Check the results
After ~10-15 minutes:- GitHub Release created at
https://github.com/albinotonnina/echos/releaseswith an auto-generated changelog - Docker image available at
ghcr.io/albinotonnina/echos:0.2.0and:latest - Your VPS running the new version (
ssh your-server 'cd echos/docker && docker compose ps')
If something goes wrong mid-release
The three jobs (docker, release, deploy) run independently after the image is built. If deploy fails but the image published fine, you can redeploy manually:What other users get
When someone else self-hosts EchOS, they don’t need to clone the source or build anything. Theirdocker-compose.yml just references the pre-built image:
install.sh and run it directly with Node: