learning_ai_notes/docker-compose.override.yml

52 lines
2.1 KiB
YAML

# Local override for `docker compose up` on this host.
#
# Why this exists:
# Keep direct host access loopback-only. Caddy reaches the web container
# over the Docker network, so the host bind is for local smoke checks only.
# The backend is configured to point at the sibling platform/extraction/mcp
# services already running on the host network.
#
# Bring up:
# docker compose up -d
# URLs:
# Web: http://127.0.0.1:3000
# Backend: http://127.0.0.1:4016
# Health: http://127.0.0.1:4016/health
# Bring down:
# docker compose down
services:
backend:
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
CORS_ORIGIN: "http://127.0.0.1:3000"
PLATFORM_SERVICE_URL: "http://host.docker.internal:4003"
EXTRACTION_SERVICE_URL: "http://host.docker.internal:4005"
MCP_SERVER_URL: "http://host.docker.internal:4007"
DB_PROVIDER: memory
# MUST match the JWT_SECRET used by the sibling platform-service so
# tokens platform issues are accepted by NoteLett backend. The
# platform-service in this dev compose stack uses the value below.
JWT_SECRET: "dev-ecosystem-secret-do-not-use-in-production"
web:
ports: !override
- "127.0.0.1:3000:3045"
# NEXT_PUBLIC_* values are baked into the Next.js bundle at build
# time. They MUST be set as build args so `pnpm run build` inside
# the Dockerfile picks them up. Runtime `environment:` alone has no
# effect on the already-bundled client code.
build:
args:
GITEA_NPM_OWNER: ${GITEA_NPM_OWNER:-learning_ai_user}
NEXT_PUBLIC_NOTES_API_URL: "http://127.0.0.1:4016/api"
NEXT_PUBLIC_PLATFORM_SERVICE_URL: "http://127.0.0.1:4003/api"
NEXT_PUBLIC_EXTRACTION_SERVICE_URL: "http://127.0.0.1:4005"
NEXT_PUBLIC_MCP_SERVER_URL: "http://127.0.0.1:4007/api"
environment:
NEXT_PUBLIC_NOTES_API_URL: "http://127.0.0.1:4016/api"
NEXT_PUBLIC_PLATFORM_SERVICE_URL: "http://127.0.0.1:4003/api"
NEXT_PUBLIC_EXTRACTION_SERVICE_URL: "http://127.0.0.1:4005"
NEXT_PUBLIC_MCP_SERVER_URL: "http://127.0.0.1:4007/api"