JB/DEPLOYMENT_RUNBOOK.md

1.2 KiB

JobsBoard — Production Deployment Runbook

Deployment Prerequisites

  • Node.js 18+ (20+ LTS recommended)
  • PostgreSQL 16+ running with DATABASE_URL configured
  • Redis 7+ running with REDIS_URL configured
  • Optional: AWS S3 or compatible object storage (S3_BUCKET, S3_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

Zero-Downtime Deployment Sequence

Step 1: Pre-Flight Verification

cd web
npm test               # Run 63-test regression suite
npm run test:postgres  # Run dual-schema PostgreSQL integration suite

Step 2: Database Schema Migration

Ensure non-destructive schema migration using Prisma:

npx prisma migrate deploy --schema=prisma/schema.postgresql.prisma

Step 3: Build Production Artifacts

npm run build

Verify that all static and dynamic pages compile cleanly (59+ routes).

Step 4: Graceful Service Restart

If running via systemd or process manager (e.g. PM2):

pm2 reload jobsboard-web --update-env

Or container rolling deployment:

podman stop jobsboard-web && podman start jobsboard-web

Step 5: Post-Deployment Smoke Check

curl -s http://localhost:3000/api/health | jq .

Verify:

  • database.status == "healthy"
  • uptimeSeconds > 0