./update.sh
It downloads the newest release's image before it changes anything, then:
- backs up (
scripts/backup.sh); - switches the checkout to the new release;
- adds any new settings to
.envand movesKYOUBE_VERSIONandKYOUBE_CORE_VERSIONto the new release; your other settings are never changed; - restarts;
- offers to install any harness your agents use that is not installed;
- runs
kyoube doctor.
--version <x.y.z> picks a release (not one older than the release you are on), and --yes answers every
question. An update that stops part way continues when you run ./update.sh again, without a second
backup. Harnesses, their logins and kept system packages carry over (Harnesses).
If an update goes wrong, ./update.sh --rollback goes back to the previous release and restores the
backup taken just before the update. Anything written since then is replaced, because databases only
migrate forward; the .env it replaces is kept as .kyoube/env.before-rollback. A rollback that stops
part way is finished by running ./update.sh --rollback again.
An install built from source (./install.sh --edge) updates with ./update.sh --edge, which
fast-forwards the current branch and rebuilds. docs/upgrading.md covers moving to
1.1 from an earlier install, and moving KyoubeAI to a new core release.