Skip to content

Upgrades

SyncBins is pre-1.0 (alpha). Treat upgrades as backup first, pull second, verify third.

  1. Back up — see Backups & restore. At minimum copy syncbins.db and blobs/.
  2. Pull the new image:
    Terminal window
    cd App/docker
    docker compose pull syncbins
  3. Recreate the container:
    Terminal window
    docker compose up -d
  4. Check logs:
    Terminal window
    docker compose logs -f syncbins --tail=100
    Look for a clean boot — no migration errors, listening on 0.0.0.0:8080.
  5. Smoke test:
    Terminal window
    curl -s https://your-domain/api/health
    Unlock the UI, send a test item, confirm sync on a second device if you have one.

Caddy usually does not need upgrading unless you change Caddyfiledocker compose pull caddy when you do.

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.

ChannelHow to get it
GHCR latestghcr.io/syncbins/syncbins:latest (compose default)
Tagged alphaGitHub Releases deploy zip + image tag (e.g. v0.1.0-alpha.1)
From sourcegit pull, npm run build, rebuild Docker image locally

Release tags trigger CI that builds the image and attaches a deploy bundle — see App README.

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.
  1. Stop compose: docker compose down
  2. Restore syncbins.db (+ blobs) from backup.
  3. Pin the previous image tag in docker-compose.yml or docker compose pull the old digest.
  4. docker compose up -d and verify /api/health.

If you run from source without Docker:

Terminal window
git pull
npm install
npm run build
npm run dev:server # or restart your process manager

Rebuild better-sqlite3 if Node version changed: npm run rebuild:native.