Production Deployment
Production deployment status, requirements, and checklist.
Production Deployment
STATUS: NOT DEPLOYED
Production application infrastructure is not deployed. DNS records for
getbytebite.co,api.getbytebite.co,dashboard.getbytebite.co,docs.getbytebite.co, andwww.getbytebite.coalready point toward88.99.0.118, but no production application stack, database, or validated configuration exists.
Do not treat DNS existence as production being live.
What exists today
| Item | Status |
|---|---|
| Production DNS records in Cloudflare | Configured (DNS-only) |
| Production Dokploy environment | Not created |
| Production PostgreSQL | Not deployed |
| Production application containers | Not deployed |
| Production object storage (B2) | Not deployed |
| Production mail (SES) | Not configured |
| Production monitoring | Not deployed |
Staging is the only active hosted environment. See Environments.
Expected production differences from staging
| Aspect | Staging (current) | Production (planned) |
|---|---|---|
BYTEBITE_DEPLOY_ENV | staging | unset (indexing enabled) |
| Domains | *.staging.getbytebite.co | getbytebite.co, custom restaurant domains |
| Demo seeds | Luigi/Mario staging hosts | None |
| noindex | All public apps | Storefront indexable; dashboard remains noindex |
| Object storage | Not deployed | Backblaze B2 (ADR-018) |
| Not configured | AWS SES (transactional) | |
| TLS wildcard | *.staging.getbytebite.co (DNS-01) | Custom-domain strategy TBD |
| PostgreSQL | Dokploy managed (staging) | TBD — likely Dokploy managed |
| Access protection | None | TBD (WAF, rate limiting) |
Production deployment checklist
Infrastructure prerequisites
- Off-host PostgreSQL backup and restore strategy established and tested
- Object storage (Backblaze B2) provisioned with bucket layout defined
- AWS SES configured with verified sending domain
- Mail DNS complete (SPF, DKIM, DMARC, PTR)
- Monitoring and alerting deployed
- Security review completed (WAF, access controls, dot-path fixes)
- Traefik DNS-01 / TLS strategy for production and custom domains
- Dokploy production environment created
- Production secrets configured in Dokploy (no staging values reused)
Application prerequisites
-
BYTEBITE_DEPLOY_ENVnot set (or explicitlyproductionif introduced later) -
SENTRY_DSNconfigured - Stripe credentials configured (when payments implemented)
- No
seed-staging.jsrun against production database - Migrations applied:
node db/dist/migrate.js - Full Validation adapted for production domains
DNS cutover
- Verify all production DNS records resolve correctly
- TLS certificates issued for all production hosts
- HTTP → HTTPS redirect verified
- Custom restaurant domain TLS strategy implemented (if launching with custom domains)
Post-deploy validation
- Health endpoints respond
- No staging noindex headers on storefront
- Tenant resolution works on production domains
- Same-origin
/apirouting verified - Backup verification scheduled
Unresolved blockers
See Known gaps for the full register. Critical blockers:
- No off-host database backup strategy
- No production object storage
- No production mail (SES)
- No custom-domain TLS implementation
- No monitoring/alerting
- Dokploy Traefik customization survival not automated
Compose pattern
Production will likely reuse compose.deploy.yml with production environment variables and Dokploy domain configuration. The same four-service pattern (api, storefront, dashboard, docs) applies. PostgreSQL, Traefik, and Dokploy remain outside the compose file.
Related
- Infrastructure overview
- Environments
- Staging deployment — active reference environment
- ADR-005 Deployment runtime