Skip to content

Upgrade

Upgrade a running deployment to a new image release with minimal disruption.

Images are published to GHCR on every push to main (tagged latest and an immutable sha-<commit>). An upgrade pulls new images, runs migrations, and recreates services. Roll back by pinning the previous sha- tag.

Terminal window
# Pin a specific build for reproducible deploys / rollback:
IMAGE_TAG=sha-<commit>
Terminal window
# Pull and apply (note: pull must be paired with up -d --force-recreate)
docker compose pull
docker compose up -d --force-recreate
# Roll back to a known-good build
IMAGE_TAG=sha-abc1234 docker compose up -d --force-recreate
  • docker compose pull alone does not restart services — always follow with up -d --force-recreate, or containers keep running the old image.
  • Migrations run as a one-shot before app services; confirm it exits 0.