Upgrades
SyncBins is pre-1.0 (alpha). Treat upgrades as backup first, pull second, verify third.
Standard upgrade (Docker)
Section titled “Standard upgrade (Docker)”- Back up — see Backups & restore. At minimum copy
syncbins.dbandblobs/. - Pull the new image:
Terminal window cd App/dockerdocker compose pull syncbins - Recreate the container:
Terminal window docker compose up -d - Check logs:
Look for a clean boot — no migration errors,
Terminal window docker compose logs -f syncbins --tail=100listening on 0.0.0.0:8080. - Smoke test:
Unlock the UI, send a test item, confirm sync on a second device if you have one.
Terminal window curl -s https://your-domain/api/health
Caddy usually does not need upgrading unless you change Caddyfile — docker compose pull caddy when you do.
Database migrations
Section titled “Database migrations”The server runs idempotent SQL from server/src/db/schema.sql on every boot (IF NOT EXISTS). New columns and tables land automatically when you upgrade the binary.
There is no down-migration — rollback means restoring the previous image and the SQLite/blob backup from before the upgrade.
Release channels
Section titled “Release channels”| Channel | How to get it |
|---|---|
| GHCR latest | ghcr.io/syncbins/syncbins:latest (compose default) |
| Tagged alpha | GitHub Releases deploy zip + image tag (e.g. v0.1.0-alpha.1) |
| From source | git pull, npm run build, rebuild Docker image locally |
Release tags trigger CI that builds the image and attaches a deploy bundle — see App README.
Versioning expectations
Section titled “Versioning expectations”Semver is the goal, but breaking changes may still land before 1.0. Read release notes on GitHub when skipping more than one tag.
- Patch/minor: usually safe — pull and restart.
- Major / alpha tag: read migration notes, run backup drill, plan rollback.
Rollback
Section titled “Rollback”- Stop compose:
docker compose down - Restore
syncbins.db(+ blobs) from backup. - Pin the previous image tag in
docker-compose.ymlordocker compose pullthe old digest. docker compose up -dand verify/api/health.
Native / dev installs
Section titled “Native / dev installs”If you run from source without Docker:
git pullnpm installnpm run buildnpm run dev:server # or restart your process managerRebuild better-sqlite3 if Node version changed: npm run rebuild:native.