Infrastructure
Object Storage
MinIO local development, planned Backblaze B2 production storage.
Object Storage
ByteBite uses an S3-compatible abstraction for uploaded media (restaurant logos, category/menu imagery, and other assets). ADR-018 defines the provider split.
Current state
| Environment | Provider | Status |
|---|---|---|
| Local dev | MinIO (minio/minio in compose.yml) | Active |
| Staging | — | Not deployed |
| Production | Backblaze B2 (planned) | Not deployed |
Local development (MinIO)
| Setting | Value |
|---|---|
| Container | minio in compose.yml |
| API endpoint (inside Docker) | http://minio:9000 |
| Console | http://localhost:9001 (host-published) |
| Default bucket | bytebite (from .env.example) |
| Credentials | Local dev placeholders in .env.example — not production secrets |
The API container receives S3_ENDPOINT=http://minio:9000 via Compose override regardless of host .env values.
Planned production (Backblaze B2)
| Aspect | Status |
|---|---|
| Provider decision | Accepted (ADR-018) |
| Bucket names | Not established |
| Credentials | Not configured |
| Application wiring | Placeholders in .env.example only |
| Staging object storage | Not deployed |
Likely consumers
When implemented, object storage will serve:
- Restaurant logos (
restaurants.logo_url) - Category and menu item imagery
- Other uploaded media assets
Exact bucket layout and CDN strategy are not yet defined.
Related
- ADR-018 Object Storage
- Environments — per-environment storage
- Secrets — S3 credential inventory
- Known gaps