Files
pantry/docker/kong.yml
Pantry Lead Agent 1f21032194
Some checks failed
Pull Request Checks / Validate PR (pull_request) Has been cancelled
Deploy to Coolify / Code Quality (pull_request) Has been cancelled
Deploy to Coolify / Run Tests (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Development (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Production (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Test (pull_request) Has been cancelled
feat: add local development setup with Docker Compose
Complete local dev environment for testing:

**Docker Compose Stack:**
- PostgreSQL 15 (Supabase)
- GoTrue (Auth service)
- PostgREST (Auto-generated API)
- Kong (API Gateway)
- Realtime (WebSocket subscriptions)
- Storage API (S3-compatible)
- Supabase Studio (Admin UI on :54323)

**Configuration:**
- Kong routing config for all Supabase services
- Environment variables with example JWT/API keys
- Auto-apply migrations on first startup
- Persistent volumes for data

**Documentation:**
- DEV_SETUP.md with step-by-step guide
- Troubleshooting section
- Common tasks (reset DB, view logs, etc.)
- Pre-seeded data reference

**Bonus:**
- BarcodeScanner.vue component (Week 3 preview)
- html5-qrcode library installed

Ready to run: `docker-compose up -d && cd app && bun run dev`

Access:
- App: http://localhost:3000
- Supabase API: http://localhost:54321
- Supabase Studio: http://localhost:54323
- PostgreSQL: localhost:5432
2026-02-09 13:35:26 +00:00

86 lines
1.5 KiB
YAML

_format_version: "2.1"
_transform: true
services:
- name: auth
url: http://auth:9999
routes:
- name: auth-v1
strip_path: true
paths:
- /auth/v1
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: true
- name: rest
url: http://rest:3000
routes:
- name: rest-v1
strip_path: true
paths:
- /rest/v1
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: true
- name: realtime
url: http://realtime:4000/socket
routes:
- name: realtime-v1
strip_path: true
paths:
- /realtime/v1
plugins:
- name: cors
- name: key-auth
config:
hide_credentials: true
- name: storage
url: http://storage:5000
routes:
- name: storage-v1
strip_path: true
paths:
- /storage/v1
plugins:
- name: cors
consumers:
- username: anon
keyauth_credentials:
- key: ${ANON_KEY}
- username: service_role
keyauth_credentials:
- key: ${SERVICE_ROLE_KEY}
plugins:
- name: cors
config:
origins:
- "*"
methods:
- GET
- POST
- PUT
- PATCH
- DELETE
- OPTIONS
headers:
- Accept
- Accept-Encoding
- Authorization
- Content-Type
- Origin
- X-Client-Info
exposed_headers:
- X-Total-Count
credentials: true
max_age: 3600