Upgrades
Sail never updates itself. You choose when to upgrade, so it fits your change windows.
An upgrade is a backup, a one-line change and a restart. Sail updates its own database when it starts.
Pick a version
Section titled “Pick a version”Images are tagged three ways, such as 1.4.2, 1.4 and sha-….
- Pin the minor version, such as
1.4. You get patch releases, including security fixes, when you pull, and nothing bigger. - Pin an exact version, such as
1.4.2, if every change must go through review. - Never use
latest. You’d get a new minor version without deciding to.
Within a major version, you can jump straight from any older version to the newest. You don’t need to install the ones in between.
Upgrade
Section titled “Upgrade”-
Back up. Always, before every upgrade:
./backup.sh --out /srv/sail-backupsSee Backups and restore.
-
Change the version in
.env:SAIL_IMAGE=ghcr.io/cloudstack-llc/msty-sail:1.5 -
Pull and restart:
docker compose pull sail && docker compose up -dAdd the same
--profile tlsor-ffiles you started Sail with. -
Check it’s healthy:
docker compose psWait for
sailto showhealthy. Sail updates the database before it starts serving, so a big update can take a minute.
People with Sail open see “A new version of Sail is available.” and a Reload button. Replies that were in progress pick up where they left off.
Roll back
Section titled “Roll back”Something wrong after an upgrade? Go back to the previous version:
- Set
SAIL_IMAGEback to the version you had. - Run
docker compose up -d.
That’s all. Each release only adds to the database, never removes, so the previous version keeps working against the newer database. Every release is tested this way.
If an upgrade damaged data, which is rare, restore the backup you took in step 1.
Upgrade a database separately
Section titled “Upgrade a database separately”To run the database update as its own step, for example in a change window before the restart:
docker compose run --rm sail migrateIt updates the database and exits. Starting Sail afterwards finds nothing left to do.
Running several copies
Section titled “Running several copies”The bundled Compose file runs one copy of Sail, with a short restart during upgrades. Sail is built to run as several copies behind a load balancer, but the files they store need a shared disk, and there’s no ready-made recipe yet. Talk to Msty if you need zero-downtime upgrades.