# Go-live checklist (studios)

Customer: ________  Site: ________  Date: ____

Live email and live card charges are **off** until the owner (or CLI) turns them on for this site. The per-site switch on `/owner/golive` is the control. `RESEND_SEND` does not send mail. Stripe live keys are refused unless `stripe_live` is on.

The codeword and owner password are never written in email, the database (except as a hash), the change log, outbox files, or HTML.

## Before switching email on
- [ ] Owner email, backup email and codeword recorded (codeword never written in email)
- [ ] Sender domain verified at Resend
- [ ] DNS records added for the sending domain
- [ ] Test email to the owner received (outbox, then a live test once the switch is on)
- [ ] Guest emails sign off with the business name
- [ ] Owner login works at `/owner/login`. nginx `auth_basic` for `/owner` should be removed when switching to app login; htpasswd remains a fallback inside the app.

## Before switching Stripe live on
- [ ] Stripe Connect onboarded for this customer (test payment + refund done)
- [ ] Terms accepted
- [ ] Owner record complete

## Switch on (this customer only)
- [ ] Resend live on `/owner/golive` (requires the email checklist ticks)
- [ ] Stripe live on `/owner/golive`
- [ ] Test booking end to end (card + BACS), confirmation received, then cancelled/refunded
- [ ] `DEMO_READONLY` off, demo data removed

## After
- [ ] Change notice sent to owner email on file
- [ ] Change log entry
- [ ] Added to daily VPS backup and uptime checks
