Upgrade the app
One command. It backs the database up first, and finishes by naming every machine left running an older worker.
▶Run this onthe machine the app runs on
firetower upgradeIn order, it:
- Backs up the database and copies the root key beside the dump, into
backups/in the deployment directory. Pass--no-backupto skip it. - Pulls the new images and recreates the containers. Migrations run at start-up.
- Waits for the app to report healthy, and says which version you are on.
- Lists the machines whose worker is now behind, with the command to run on each.
The CLI upgrades itself first — npm i -g @firetower/cli — if the release
needs a newer one than you have. --skip-version-check opts out.
#If the deployment file changed
Some releases change firetower.yml. When that happens the CLI says so and
asks before replacing yours, keeping the old one as firetower.yml.backup.
Answer no if you have edited it — to drop Caddy for a proxy you already run, say — then re-apply your changes against the copy it kept.
#Then the workers
firetower upgrade does not touch them. They are separate machines, and each
one has to be drained before its container is recreated → Upgrade the
worker.
Note
firetower status says the same thing at any time: the version you are on, the
health of each service, and which hosts have drifted. --json makes it
something to point a monitor at.
#If it does not come back
firetower doctor
firetower logs -fdoctor re-runs the machine checks from install and reads the deployment for
the mistakes that stop it starting. logs takes a service name — firetower,
postgres, caddy — or tails all three.
The database backup from step 1 is in backups/, with the root key it needs to
be worth anything.