How to deploy with the CI/CD panel
The new flow replaces ./scripts/deploy-remote.sh for everyday deploys.
Prerequisites
You need the superadmin role and to be on a desktop browser (mobile works but each destructive action requires an extra confirm step).
Trigger a deploy
- Push your changes to main from your local machine. (Version-bump still happens via npm version locally.)
- Go to /admin/operations/deploys.
- Click Configure deploy →. The modal opens with a dry-run preview.
- Pick services to rebuild. Default ref is origin/main HEAD — pick a recent SHA from the dropdown if you want commit-pinned.
- Check pending migrations to apply (atomic with the build — failure aborts before docker build runs).
- Hit Deploy →. The page redirects to /admin/operations/deploys/<runId> with a live log streaming via SSE.
Cancel, rollback, replay
Cancel works during queued, fetching, migrating, or building phases. Once recreating starts, the cancel button greys out — wait for it to finish or use Rollback instead.
Rollback redeploys the previous image (no rebuild) in ~8 seconds. Available on any finished run with previousImageTags recorded.
Replay re-runs the same payload (services + commit + migrations). Useful after fixing a bad commit and pushing to main.
Editing .env
The Env tab shows a textarea + live unified diff. Secret values are masked. Save creates a timestamped backup — last 20 are kept. Restart is not automatic: use the Containers tab to restart affected services after saving.
Stop-the-world freeze
Click ⏸ Freeze deploys with a reason. New builds, rollbacks, migrations, and .env saves return HTTP 423 until cleared. Cancel + read endpoints stay live — useful when you want to halt deploys but still cancel an in-flight build.