ByteBite Docs
Deployment

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, and www.getbytebite.co already point toward 88.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

ItemStatus
Production DNS records in CloudflareConfigured (DNS-only)
Production Dokploy environmentNot created
Production PostgreSQLNot deployed
Production application containersNot deployed
Production object storage (B2)Not deployed
Production mail (SES)Not configured
Production monitoringNot deployed

Staging is the only active hosted environment. See Environments.

Expected production differences from staging

AspectStaging (current)Production (planned)
BYTEBITE_DEPLOY_ENVstagingunset (indexing enabled)
Domains*.staging.getbytebite.cogetbytebite.co, custom restaurant domains
Demo seedsLuigi/Mario staging hostsNone
noindexAll public appsStorefront indexable; dashboard remains noindex
Object storageNot deployedBackblaze B2 (ADR-018)
MailNot configuredAWS SES (transactional)
TLS wildcard*.staging.getbytebite.co (DNS-01)Custom-domain strategy TBD
PostgreSQLDokploy managed (staging)TBD — likely Dokploy managed
Access protectionNoneTBD (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_ENV not set (or explicitly production if introduced later)
  • SENTRY_DSN configured
  • Stripe credentials configured (when payments implemented)
  • No seed-staging.js run 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 /api routing verified
  • Backup verification scheduled

Unresolved blockers

See Known gaps for the full register. Critical blockers:

  1. No off-host database backup strategy
  2. No production object storage
  3. No production mail (SES)
  4. No custom-domain TLS implementation
  5. No monitoring/alerting
  6. 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.

On this page