ByteBite Docs
Infrastructure

Environments

Local, staging, and production environment comparison.

Environments

ByteBite has three logical environments. Only local and staging run application infrastructure today.

Status summary

LocalStagingProduction
StatusActiveActiveNot deployed
VerifiedRepository2026-09-08—

Production DNS records exist (getbytebite.co, api.getbytebite.co, etc.) pointing at 88.99.0.118. This does not mean production is live. No production application stack or production database has been deployed.

Comparison matrix

AspectLocalStagingProduction
Domain suffix.bytebite.test.staging.getbytebite.co; landing staging.getbytebite.co (ADR-022)getbytebite.co / www landing; <slug>.getbytebite.co storefronts (planned)
DNS/etc/hosts (no wildcard)Cloudflare DNS-onlyCloudflare DNS-only (records exist)
Edge IP127.0.0.1 / ::188.99.0.11888.99.0.118 (DNS only)
Deploy methodpnpm dev (Compose)Dokploy on push to mainPlanned: Dokploy
Compose filecompose.yml + compose.dev.ymlcompose.deploy.ymlcompose.deploy.yml (planned)
TraefikLocal container (traefik:v3.4, file provider)dokploy-traefik (v3.6.7)Same host (planned)
TLSNone (HTTP only)Let's Encrypt HTTP-01 + DNS-01 wildcardPlanned
PostgreSQLCompose postgres:17-alpine, 127.0.0.1:5432Dokploy PostgreSQL 18, internal onlyPlanned: Dokploy or dedicated
Object storageMinIO (API minio:9000, console 127.0.0.1:9001); local uploads wiredNot deployed (media)Planned: Backblaze B2 (media)
PostgreSQL backupN/AOff-host via Restic → B2; restore verifiedNot deployed (production not live)
MailNot configuredNot configuredPlanned: Stalwart + SES
IndexingN/A (local)noindex, nofollowIndexable (when deployed)
Public accessPrivate to the workstationTraefik HTTP BasicAuthPublic (planned)
Deploy env markerunsetBYTEBITE_DEPLOY_ENV=stagingunset (planned)
Seedspnpm db:seed (*.bytebite.test)node db/dist/seed-staging.js (Luigi/Mario staging hosts)No demo seeds
Wildcard tenantsPer-host /etc/hosts entriesDNS wildcard + Traefik HostRegexpCustom domains (planned)
Secrets.env (git-ignored)Dokploy environmentPlanned: Dokploy + host filesystem
Public app portsTraefik :80 only80/443 only (app ports closed)Same model (planned)

Local

  • Purpose: Developer workstations
  • Guide: Local deployment
  • Hosts: testlinks.bytebite.test, landing.bytebite.test, storefront.bytebite.test, dashboard.bytebite.test, api.bytebite.test, docs.bytebite.test, luigi.bytebite.test, mario.bytebite.test, unknown.bytebite.test
  • Routing: infrastructure/traefik/dev/dynamic.yml (file provider; Docker provider disabled for OrbStack compatibility)
  • PostgreSQL: Published on 127.0.0.1:5432 for host-side tooling

Staging

  • Purpose: Production-like integration environment on real infrastructure
  • Guide: Staging deployment
  • Host: BYTEBITE-APP-01 (88.99.0.118)
  • Dokploy project: ByteBite / staging / "ByteBite Staging"
  • PostgreSQL: Dokploy-managed, no public port (verified closed 2026-09-08)
  • PostgreSQL backup: Daily off-host logical backup (Restic → B2); restore verified 2026-09-08
  • Backup retention: 14 daily / 8 weekly / 3 monthly (staging policy)
  • Restore drill: Manual script only — not scheduled
  • Wildcard TLS: *.staging.getbytebite.co via DNS-01 / Cloudflare
  • Access: Traefik HTTP BasicAuth (STAGING_BASIC_AUTH_USERS); Dokploy UI is separate
  • Landing: staging.getbytebite.co → apps/landing (ADR-022). Heading Coming Soon, Staging while BYTEBITE_DEPLOY_ENV=staging

Production

Production will reuse the same compose.deploy.yml pattern with environment-driven configuration. Set BYTEBITE_DEPLOY_ENV=production. The compose default is staging, so an absent value keeps staging noindex behavior and the landing heading Coming Soon, Staging.

On this page