Servers now have git repos initialized tracking origin/main.
Step 3 does git pull --ff-only instead of rsync. Frontend dist
is still rsynced since it's gitignored.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- update.sh: full deploy pipeline (tests → build → rsync → migrate → restart → health-check)
supports --no-tests, --no-frontend, --server 137|164|both, --dry-run
aborts before service restart if migration fails (DB protection)
- scripts/check_migrations.sh: compare local Alembic head vs. server
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>