Docs · Get started

Update KyoubeAI

Move a KyoubeAI install to a new release, from the published image or from source, and roll back with the backup you took first.

KyoubeAI 1.0.0 · · Source on GitHub (opens in a new tab)

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

  1. Back up.

    bash scripts/backup.sh
    
  2. Check out the new release, so docker-compose.yml, the scripts and .env.example match the image you are about to pull.

    git fetch --tags
    git checkout v1.0.1
    
  3. 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
    
  4. In .env, change the KYOUBE_VERSION= line under KYOUBE_IMAGE to the new version (1.0.1).

  5. Download the new image, and check that the pull succeeded before you go on.

    docker compose pull
    
  6. Restart on the new image and check it.

    docker compose up -d
    docker compose exec app kyoube doctor
    

    Every kyoube.* plugin should read =ready at its new version. docker compose logs -f app shows the plugins upgrading.

Updating a source install

  1. Back up.

    bash scripts/backup.sh
    
  2. Pull the new code.

    git pull
    
  3. Bring .env up to date. git pull never changes .env, and the core version is pinned there too.

    grep '^KYOUBE_CORE_VERSION=' .env.example .env
    git diff ORIG_HEAD -- .env.example
    

    If the two KYOUBE_CORE_VERSION values differ, copy the one from .env.example into .env: a build on the old core stops at the core-patches step. The git diff lists any other settings the update added.

  4. 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.