Files
stack/docker-compose.yml
Jason Woltje 48818be84c
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
fix(gateway): CORS, memory userId from session, pgvector auto-init
- Enable CORS with credentials (GATEWAY_CORS_ORIGIN env, defaults to
  http://localhost:3000) so the web dashboard can talk to the gateway
- MemoryController: replace @Query('userId') with @CurrentUser() to
  extract userId from auth session (was passing undefined)
- MemoryController: add missing @Inject(EmbeddingService)
- docker-compose: auto-create pgvector extension via init script
- .env.example: add GATEWAY_CORS_ORIGIN

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:40:00 -05:00

53 lines
1.2 KiB
YAML

services:
postgres:
image: pgvector/pgvector:pg17
ports:
- '${PG_HOST_PORT:-5433}:5432'
environment:
POSTGRES_USER: mosaic
POSTGRES_PASSWORD: mosaic
POSTGRES_DB: mosaic
volumes:
- pg_data:/var/lib/postgresql/data
- ./infra/pg-init:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U mosaic']
interval: 5s
timeout: 3s
retries: 5
valkey:
image: valkey/valkey:8-alpine
ports:
- '${VALKEY_HOST_PORT:-6380}:6379'
volumes:
- valkey_data:/data
healthcheck:
test: ['CMD', 'valkey-cli', 'ping']
interval: 5s
timeout: 3s
retries: 5
otel-collector:
image: otel/opentelemetry-collector-contrib:0.100.0
ports:
- '4317:4317' # OTLP gRPC
- '4318:4318' # OTLP HTTP
volumes:
- ./infra/otel-collector.yml:/etc/otelcol-contrib/config.yaml:ro
depends_on:
jaeger:
condition: service_started
jaeger:
image: jaegertracing/jaeger:2.6.0
ports:
- '16686:16686' # Jaeger UI
- '4319:4317' # Jaeger OTLP gRPC (internal, collector forwards here)
environment:
COLLECTOR_OTLP_ENABLED: 'true'
volumes:
pg_data:
valkey_data: