Updates keep your data, and the plugins upgrade themselves on the next start. Databases only migrate forward, though, so take a backup before every update: restoring it is the only way back.
The newest release is at the top of CHANGELOG.md, and every release has a
v<version> tag. The examples below move from 1.0.0 to 1.0.1; use the versions you are moving
between.
Updating a published-image install
-
Back up.
bash scripts/backup.sh -
Check out the new release, so
docker-compose.yml, the scripts and.env.examplematch the image you are about to pull.git fetch --tags git checkout v1.0.1 -
See which settings the release added or changed, and copy any new ones into your
.env.git diff v1.0.0 v1.0.1 -- .env.example -
In
.env, change theKYOUBE_VERSION=line underKYOUBE_IMAGEto the new version (1.0.1). -
Download the new image, and check that the pull succeeded before you go on.
docker compose pull -
Restart on the new image and check it.
docker compose up -d docker compose exec app kyoube doctorEvery
kyoube.*plugin should read=readyat its new version.docker compose logs -f appshows the plugins upgrading.
Updating a source install
-
Back up.
bash scripts/backup.sh -
Pull the new code.
git pull -
Bring
.envup to date.git pullnever changes.env, and the core version is pinned there too.grep '^KYOUBE_CORE_VERSION=' .env.example .env git diff ORIG_HEAD -- .env.exampleIf the two
KYOUBE_CORE_VERSIONvalues differ, copy the one from.env.exampleinto.env: a build on the old core stops at the core-patches step. Thegit difflists any other settings the update added. -
Rebuild, restart and check.
docker compose up -d --build docker compose exec app kyoube doctor
Rolling back
If an update goes wrong, go back to the version you came from and restore the backup you took before updating:
git checkout v1.0.0
# Published image: set KYOUBE_VERSION back to 1.0.0 in .env, then
docker compose pull && docker compose up -d
# From source: docker compose up -d --build
bash scripts/restore.sh backups/<timestamp>
docker compose exec app kyoube doctor
On a source install, check out the commit you were on before git pull (git reflog lists it).
The restore replaces both databases and the home volume, so anything written since the backup is
lost. docs/upgrading.md has the details, and covers moving KyoubeAI to a new
core release yourself.