Upgrade Guide
The commands below match this install, not a generic example.
Running 3.2.1 • raw markdown • GitHub
Data directory
/app/data
Schema
20250828_enterprise → 20250828_enterprise up-to-date
Backups on disk
0 archive(s)
1 Back up first
One .zip with the database, the configuration and the install state. Safe to take
while the app is serving traffic. Then copy the archive off the host.
docker compose exec app python -m app.utils.backup create --label "before upgrade"
2 Upgrade
Linux / macOS
docker compose pull docker compose up -d docker compose logs -f --tail=50 app
Windows (PowerShell)
docker compose pull docker compose up -d docker compose logs -f --tail=50 app
docker compose pull docker compose up -d docker compose logs -f --tail=50 app
Migrations run automatically on start, and a snapshot is taken first if any are pending. The container refuses to start rather than downgrade data written by a newer version.
3 Verify
curl http://localhost/health curl http://localhost/api/health/state
curl http://localhost/health curl http://localhost/api/health/state
curl.exe http://localhost/health curl.exe http://localhost/api/health/state
4 If it broke, roll back
Restore an archive. Do not run flask db downgrade — it inverts a
migration and can drop columns that hold your shortcuts.
docker compose down docker compose run --rm --no-deps app \ python -m app.utils.backup restore /app/data/backups/<name>.zip docker compose up -d
A safety snapshot of the current state is taken first, so the restore is itself reversible.