Infrastructure Overview
Orientation for ByteBite hosting, networking, deployment, and operations.
Infrastructure Overview
ByteBite runs as containerized applications on dedicated Hetzner hardware under Proxmox. Staging is active on BYTEBITE-APP-01. Production application infrastructure is not deployed — although production DNS records already point at the edge IP.
This section is the operational source of truth for hosting, networking, TLS, deployment, and day-two operations. Application tenancy behavior is documented in Tenancy & storefront; this section focuses on the platform that runs it.
Environment status
| Environment | Status | Notes |
|---|---|---|
| Local | Active | Docker Compose + Traefik on developer machines |
| Staging | Active | Dokploy on BYTEBITE-APP-01 — verified 2026-09-08 |
| Production | Not deployed | DNS exists; no production app stack |
| Provisioned, incomplete | BYTEBITE-MAIL-01 network ready; Stalwart/SES not finished |
Documentation labels facts as Verified, Configured, Planned, or Unknown where the distinction matters. See Environments for a full comparison.
High-level topology
Internet
-> Cloudflare DNS (DNS-only, not proxied)
-> edge.getbytebite.co (88.99.0.118)
-> BYTEBITE-APP-01
-> dokploy-traefik (Traefik v3.6.7, ports 80/443)
-> Dokploy-managed routing + compose.deploy.yml Traefik labels
-> api | storefront | dashboard | docs (Docker)
-> Dokploy managed PostgreSQL (internal only)Mail is planned on a separate VM (BYTEBITE-MAIL-01, 88.99.0.97). See Mail.
Component inventory
| Component | Location | Status | Canonical doc |
|---|---|---|---|
| Proxmox host | Hetzner dedicated server | Verified | Compute |
| BYTEBITE-APP-01 | VM 103, 88.99.0.118 | Verified | Compute |
| BYTEBITE-MAIL-01 | 88.99.0.97 | Provisioned | |
| Dokploy | APP VM | Verified v0.30.5 | Dokploy |
Traefik (dokploy-traefik) | APP VM | Verified v3.6.7 | Traefik |
| PostgreSQL 18 | Dokploy service on APP VM | Verified, internal only | Database |
| Application stack | compose.deploy.yml | Verified staging | Deployment |
| Cloudflare DNS | External | Verified | DNS |
| MinIO | Local dev only | Active locally | Storage |
| Stalwart / SES / B2 | — | Planned | Mail, Storage |
Domain inventory (staging)
All staging application records are DNS-only (grey cloud) in Cloudflare and resolve through edge.getbytebite.co → 88.99.0.118.
| Host | Service | Routing source |
|---|---|---|
staging.getbytebite.co | Storefront | Dokploy UI |
luigi.staging.getbytebite.co | Storefront | Dokploy UI |
mario.staging.getbytebite.co | Storefront | Dokploy UI |
dashboard.staging.getbytebite.co | Dashboard | Dokploy UI |
api.staging.getbytebite.co | API | Dokploy UI |
docs.staging.getbytebite.co | Docs | Dokploy UI |
dokploy.getbytebite.co | Dokploy | Dokploy |
*.staging.getbytebite.co | Storefront + /api | compose.deploy.yml Traefik labels |
Wildcard DNS does not imply a tenant exists — tenant identity comes from the restaurant_domains table. See DNS and Architecture.
What is intentionally absent
Current architecture does not include Redis, BullMQ, Kubernetes, GraphQL, or microservice decomposition. These are non-goals for the current platform, not future promises.
Start here
| Question | Page |
|---|---|
| How does a request reach the storefront? | Architecture |
| Local vs staging vs production? | Environments |
| Deploy staging? | Staging deployment |
| Validate after a change? | Validation |
| What is still missing? | Known gaps |