ByteBite Docs
Infrastructure

Known Gaps

Transparent register of infrastructure and operational gaps.

Known Gaps

Current gaps, planned work, and accepted staging limitations. No fake deadlines.

Gap register

#GapStatusNotes
1Production application environment not deployedOPENDNS records exist; no app stack
2Mail VM not fully configuredOPENNetwork ready; no Stalwart
3Stalwart mail server incompletePLANNEDArchitectural decision made
4PTR record incompletePLANNEDmail.getbytebite.co → 88.99.0.97
5SPF / DKIM / DMARC incompletePLANNEDMail DNS partially configured
6AWS SES production domain verification incompletePLANNEDApp SES client scaffolded; production verify still open
7Hetzner port 25 work potentially requiredOPENNot verified
8Scheduled automatic PostgreSQL restore drillOPENManual script verified; no systemd timer
9Backup failure alertingOPENLogs exist; no external notification
10Off-host full infrastructure disaster recovery incompleteOPENPostgreSQL DR verified; VM/host rebuild incomplete
11Traefik configuration off-host backupOPENLocal snapshots only on APP VM
12Production PostgreSQL backup policyOPENStaging policy verified; production not deployed
13Object storage not deployed (staging/production media)OPENLocal MinIO uploads wired; B2 used for DB backups only; staging/prod B2 media undeployed
14Staging access protection (Traefik BasicAuth)IMPLEMENTEDEnable via Dokploy STAGING_BASIC_AUTH_USERS
15Dashboard dot-path SPA fallback (HTTP 200 for /.env, etc.)OPENSecurity semantics issue
16Unknown storefront tenant returns HTTP 200 instead of 404ACCEPTED FOR STAGINGApplication/SEO hardening item
17Centralized monitoring/alerting incompleteOPENNo uptime/infra metrics
18Dokploy/Traefik DNS-01 wiring must survive upgradesOPENOps risk — see upgrade checklist
19Production custom-domain TLS not implementedPLANNEDSchema supports CUSTOM_DOMAIN
20Production environment not validatedBLOCKEDDepends on production deployment
21BYTEBITE-MAIL-01 specs unknownUNKNOWNVM ID, CPU, RAM, disk
22Firewall rules not documentedUNKNOWNHetzner/Proxmox level
23Cloudflare token source IP restrictionUNKNOWNOptional hardening — may or may not be configured
24Traefik API external accessibilityUNKNOWNinsecure: true in static config only
25Root helper script for Traefik recreationPLANNEDNot present in repository
26Marketing landing page is a Coming Soon placeholderPLANNEDADR-022. apps/landing serves staging.getbytebite.co. Production hosts getbytebite.co and www.getbytebite.co wait for the production stack

Completed items (2026-09-08)

ItemStatus
Staging PostgreSQL off-host backup (Restic → B2)Implemented
Staging PostgreSQL off-host restoreVerified
Daily automated backup (systemd timer)Implemented
Weekly retention / prune / integrity checkImplemented
Manual restore drill scriptVerified

Status definitions

StatusMeaning
OPENKnown issue with no resolution yet
PLANNEDArchitectural decision made; not deployed
IMPLEMENTEDIn place; may still require an env var or host step
ACCEPTED FOR STAGINGKnown limitation acceptable in staging
BLOCKEDCannot proceed until dependency is resolved
UNKNOWNCannot be established from repository or verified facts

Production blockers

Production cannot go live until at minimum:

  1. Production application deployment on Dokploy
  2. Production PostgreSQL backup policy defined, implemented, and tested (staging backup exists but production policy is separate)
  3. Object storage for application media (Backblaze B2 per ADR-018)
  4. Mail infrastructure (SES for transactional; Stalwart if mailbox needed)
  5. Production TLS strategy (apex + custom domains)
  6. Monitoring and alerting (including backup failure alerting)
  7. Security hardening review (WAF, access controls, dot-path fixes)
  8. BYTEBITE_DEPLOY_ENV=production (indexing enabled; landing heading Coming Soon, Production)
  9. No staging demo seeds in production database

See Production deployment for the full checklist.

On this page