Start
Upgrading & rollback
Upgrade commands, node capabilities and release-specific rollback notes.
Upgrade through the installer
curl -fsSL https://ninedeploy.com/install.sh | bash
# Installer-managed Docker
curl -fsSL https://ninedeploy.com/install.sh | bash -s -- --docker
# Pin a release
curl -fsSL https://ninedeploy.com/install.sh | bash -s -- --version v0.15.8
# Track main
curl -fsSL https://ninedeploy.com/install.sh | bash -s -- --channel mainBare-metal upgrades snapshot the database and master key, rebuild, migrate and gate readiness on /health. Installer-managed Docker installs keep an image pin, so a plain compose pull re-pulls the same release; re-run --docker to upgrade. The dashboard's self-update button is available on systemd bare-metal panels.
Updates since 0.15.0
- Migration 0072 adds image transfers and node-placement columns; 0073 adds optional SSH host-key pinning to sources. Existing services retain their behavior until you enable new features.
- Update node agents separately: v0.15.2 for builds, private clones and volumes; v0.15.3 for node databases; v0.15.4 for Swarm; v0.15.6 for node KeyDB/Dragonfly. Agent v0.15.5 adds clone fixes and Railpack preflight.
- Swarm and SSH host-key pinning are opt-in. Existing template deployments keep the Compose files they were created with, including after the catalog expansion.
- Nixpacks builds with a push registry and secrets are now refused; choose Dockerfile/Railpack or clear the registry. deploys watch exits 1 for failed or cancelled deploys.
Rollback
Rollback from 0.15.8 to 0.15.7 boots on the migrated database, but host-key pinning stops being enforced. Read docs/ROLLBACK.md before rolling back farther: Swarm stacks and node resources need the multi-node runbook, and releases before 0.15.6 cannot fully manage KeyDB/Dragonfly or deliver Teams/Resend channels.
The canonical guides live in the repository's QUICKSTART.md.