Using BOAT
Data and backups
What BOAT stores, how to back it up and restore it, and how updates and rollbacks protect your data.
What BOAT stores
All persistent data stays on your machine:
- The SQLite database with accounts, projects, classes and annotations
- Project files: images, video frames and exports
- Installed model packages and their weights
- Logs
See where files live for the exact directories.
Back up
boat backup create
BOAT briefly stops the service, archives its data directory (database, projects and model data) and starts again. The archive is named like boat-backup-20260927T101500Z.tar.gz and saved under ~/.local/state/boat/backups; the command prints its path.
boat backup list
For a manual, file-level backup, stop BOAT first so the database is consistent, then archive the whole data directory:
boat stop
tar -czf boat-data.tgz -C ~/.local/share boat
boat start
Restore
Restoring replaces your current data with the archive's contents, so BOAT asks you to confirm:
boat backup restore --yes ~/.local/state/boat/backups/boat-backup-20260927T101500Z.tar.gz
Updates and rollbacks
boat update always backs up before it changes anything:
- Stop BOAT if it is running.
- Create a backup.
- Install the new version and its Python runtime.
- Start it once to apply and validate database migrations.
- Switch over, or restore the previous version if any step failed.
If a successful update still misbehaves, return to the exact pre-update state:
boat rollback --yes
Rollback discards newer data. Anything created after the update is lost, which is why the command requires
--yes.
Schema changes
Database changes ship as migrations. BOAT upgrades the schema to the latest revision at startup and never alters tables any other way.
Reset everything (development)
In a source checkout, this destructively resets all local development data:
./core/backend/scripts/reset_service.sh