Update Mantle
Update from Settings > Updates in Jackdaw with one click, or from the stack directory with two commands.
Before you start
- You need an admin login.
- Read the release notes when the version jumps more than a patch.
- Expect about a minute of downtime. A reply in progress stops and needs a reload.
Update from Jackdaw
- Open Settings > Updates.
- Click Check now.
- Click Update to followed by the version, then Update now.
- Wait. The page shows the log and reloads onto the new version.
The updater takes a full backup into backups/pre-roll/ in the stack directory before it changes anything. If the backup fails, or the disk is too full for it, the update is refused and nothing changes. It keeps the newest 3 of these backups.
An update moves the server and the Jackdaw interface together, to a pair tested as one. The Interface section can move the interface alone with Update interface to.
Update from the command line
Use this when the box has no updater. Run it in the stack directory (the folder with docker-compose.yml and .env).
-
Take a backup:
Terminal window bash scripts/db-dump.sh -
Update the server:
Terminal window docker compose pull && docker compose up -d --wait -
Update the interface. It is a second stack, and step 2 does not touch it:
Terminal window docker compose -f docker-compose.client.yml --project-directory . pulldocker compose -f docker-compose.client.yml --project-directory . up -d --wait
Database migrations run by themselves before the app starts.
To stay on a fixed version, set MANTLE_IMAGE_TAG in .env to a release tag (for example v1.2.3) instead of latest.
Check it worked
Settings > Updates shows the new version under This install. On the box, run:
bash scripts/install.sh --checkRoll back
- Set
MANTLE_IMAGE_TAGin.envback to the previous version. - Run
docker compose pull && docker compose up -d --wait.
Migrations only go forward. If the update ran a migration, restore the backup taken before it as well. See Back up and restore.
If it fails
- “The updater is not configured on this host”: add
MANTLE_STACK_DIR=with the full path of the stack directory to.env(pwd -Pprints it), then rundocker compose up -d updater. - “Stack compose has drifted”:
docker-compose.ymlhas local edits, so updates no longer refresh it. Move your changes into.envordocker-compose.override.yml. Runsh scripts/compose-adopt.shto see what differs, thensh scripts/compose-adopt.sh --apply. - The interface stays old after a command-line update: you skipped step 3.