Context pack cho environments · deploy flow · rollback · RLS rollout. Snapshot + trỏ canonical. Không in secret. Chi tiết: backend/STAGING-STATUS, OPERATIONAL-RUNBOOK.
ssh kqxs = 103.72.56.232)| Env | URL | PM2 | Port | Ghi chú |
|---|---|---|---|---|
| Staging API | staging-api.booking.bngagency.vn | bng-booking-api-staging | 3020 | Postgres bng_booking_staging, RLS ON, nginx gate x-bng-staging-secret |
| Demo / Founder | demo.booking.bngagency.vn (+5 subdomain) | bng-booking | 3013 | Next app (portals + /founder/*) |
| Founder Portal | ota.dainhatcorp.vn | — | — | |
| Production | — | — | — | CHƯA dựng |
/root/ — KHÔNG in/chat)bng-staging.env (DATABASE_URL, MAINTENANCE_DATABASE_URL, AUTH_JWT_SECRET) · bng-staging-apikey.txt · bng-staging-gate-secret.txt. Demo: /var/www/bng-booking/.env.local.
~/bng-booking-demo → /var/www/bng-booking-api-staging (no --delete, loại node_modules/.next/.env) → prisma migrate deploy (nếu migration) → pm2 restart bng-booking-api-staging --update-env → smoke.mv .next .next.bak → npm run build (server) → pm2 restart bng-booking. Founder viewer cần docs/generated/ có mặt tại build.USE_BOOKING_API=false → mock, pm2 restart --update-env.rm -rf .next && mv .next.bak .next && pm2 restart.cp <vhost>.bak-* <vhost> → nginx -t → systemctl reload.pg_dump restore; chỉ migrate deploy (không db push). backend/DB-SAFETY.nginx -t trước reload. Backup (pg_dump/.bak) trước thao tác phá vỡ. Không deploy production. Read-only điều tra trước khi đổi.docs/generated/. OMS 05.