- Your
.env(includingENCRYPTION_KEY) is never touched. - Your PostgreSQL data is preserved — the database lives in its own volume.
- Database migrations run automatically the next time Breadbox starts.
Before you update
Updating won’t delete anything, but a backup is cheap insurance — especially across a major version:- Back up your
.envif you haven’t already. LosingENCRYPTION_KEYmakes stored bank credentials unrecoverable. See Install → Back up your.env. - Snapshot the database from Settings → Backups in the dashboard, or with
pg_dumpif you manage Postgres yourself. See Backup & restore.
Update by install method
Pick the tab that matches how you installed Breadbox.- One-liner install (default)
- Manual Docker Compose
- Binary
- From source
The If you installed with a public domain (Caddy HTTPS enabled), include the profile in both commands:
curl … | bash installer writes a docker-compose.prod.yml into your install directory and drives Compose with -f. Run these from that directory:pull fetches the new image; up -d recreates the container on it. Migrations run on boot. Existing containers that don’t change are left running.Not sure where you installed? Root installs land in
/opt/breadbox; regular-user installs in $HOME/.breadbox. The directory holds your docker-compose.prod.yml and .env.Pin a specific version
By defaultdocker-compose.prod.yml tracks a pinned release tag. To move to (or hold) a specific version, edit the image: line:
pull / up -d pair for your install method above. To track the latest release on every pull instead (not recommended for production), use :latest.
Verify the update
Afterup -d (or a restart) completes:
- Reload the dashboard — the “new release available” notice should be gone.
- Check Settings → System — the version badge should show the new version and read Up to date.
-
Optionally confirm from the shell:
breadbox doctoris read-only and re-validates your config, database, migrations, and encryption key.