nanochat/docker-compose.yml
Manmohan Sharma f642cb2eb6
feat(sft): add r7 think+tool prep scripts and compose cleanup
- allow assistant list-shaped content in CustomJSON for joint think+tool JSONL
- add gen_joint_think_tool, filter_reasoning_jsonl, eval_suite_v2 (think_plus_tool probes)
- fix CI: uv sync --no-install-workspace; uv run pytest
- remove unused local inference service from compose; document Modal URL in env examples

Made-with: Cursor
2026-04-22 14:22:47 -07:00

90 lines
2.6 KiB
YAML

services:
postgres:
image: postgres:15
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB:-samosachaat}
POSTGRES_USER: ${POSTGRES_USER:-samosachaat_admin}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-localdev}
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
- ./db/migrations:/docker-entrypoint-initdb.d:ro
frontend:
build:
context: ./services/frontend
restart: unless-stopped
ports:
- "${FRONTEND_PORT:-3000}:3000"
environment:
AUTH_SERVICE_URL: ${AUTH_SERVICE_URL:-http://auth:8001}
CHAT_API_URL: ${CHAT_API_URL:-http://chat-api:8002}
NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000}
depends_on:
- auth
- chat-api
auth:
build:
context: ./services/auth
restart: unless-stopped
ports:
- "${AUTH_PORT:-8001}:8001"
environment:
DATABASE_URL: ${DATABASE_URL:-postgresql+asyncpg://samosachaat_admin:localdev@postgres:5432/samosachaat}
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-}
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-}
JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY:-}
JWT_PUBLIC_KEY: ${JWT_PUBLIC_KEY:-}
AUTH_BASE_URL: ${AUTH_BASE_URL:-http://localhost:8001}
FRONTEND_URL: ${FRONTEND_URL:-http://localhost:3000}
INTERNAL_API_KEY: ${INTERNAL_API_KEY:-}
SESSION_SECRET: ${SESSION_SECRET:-changeme}
COOKIE_SECURE: ${COOKIE_SECURE:-false}
COOKIE_DOMAIN: ${COOKIE_DOMAIN:-}
REFRESH_COOKIE_NAME: ${REFRESH_COOKIE_NAME:-samosachaat_refresh}
depends_on:
- postgres
chat-api:
build:
context: ./services/chat-api
restart: unless-stopped
ports:
- "${CHAT_API_PORT:-8002}:8002"
environment:
DATABASE_URL: ${DATABASE_URL:-postgresql+asyncpg://samosachaat_admin:localdev@postgres:5432/samosachaat}
AUTH_SERVICE_URL: ${AUTH_SERVICE_URL:-http://auth:8001}
# External inference (Modal, etc.). Set in `.env` — see `.env.example`.
INFERENCE_SERVICE_URL: ${INFERENCE_SERVICE_URL}
INTERNAL_API_KEY: ${INTERNAL_API_KEY:-}
depends_on:
- postgres
- auth
grafana:
image: grafana/grafana:latest
restart: unless-stopped
ports:
- "${GRAFANA_PORT:-3001}:3000"
prometheus:
image: prom/prometheus:latest
restart: unless-stopped
ports:
- "${PROMETHEUS_PORT:-9090}:9090"
loki:
image: grafana/loki:latest
restart: unless-stopped
command: -config.file=/etc/loki/local-config.yaml
ports:
- "${LOKI_PORT:-3100}:3100"
volumes:
pgdata: