- Complete Fastify gateway with 8-stage pipeline - Circuit breaker (opossum) per model tier - Rate limiting per caller - Ban list validation (EN/DE/auto-detected) - TIP validator (SFF-8024, part numbers, wavelengths) - Prometheus metrics - pg-boss async queue - PostgreSQL audit log + review queue - 9 prompt templates (TIP, LinkedIn, ShieldX) - Learning engine scaffolding - Auto-learning: ban-list, few-shot, routing, prompt optimizer
43 lines
1.1 KiB
YAML
43 lines
1.1 KiB
YAML
services:
|
|
llm-gateway:
|
|
build: .
|
|
container_name: llm-gateway
|
|
ports:
|
|
- "3100:3100"
|
|
environment:
|
|
NODE_ENV: production
|
|
PORT: "3100"
|
|
DATABASE_URL: "${DATABASE_URL}"
|
|
TIP_DATABASE_URL: "postgresql://tip:tip_prod_2026@217.154.82.179:5433/transceiver_db"
|
|
OLLAMA_URL: "http://192.168.178.169:11434"
|
|
SHIELDX_URL: "${SHIELDX_URL:-}"
|
|
GITEA_URL: "http://gitea.context-x.org"
|
|
LOG_LEVEL: "${LOG_LEVEL:-info}"
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O-", "http://localhost:3100/health/live"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
networks:
|
|
- gateway-net
|
|
|
|
llm-learning:
|
|
build:
|
|
context: packages/learning
|
|
dockerfile: Dockerfile
|
|
container_name: llm-learning
|
|
environment:
|
|
DATABASE_URL: "${DATABASE_URL}"
|
|
GATEWAY_URL: "http://llm-gateway:3100"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
llm-gateway:
|
|
condition: service_healthy
|
|
networks:
|
|
- gateway-net
|
|
|
|
networks:
|
|
gateway-net:
|
|
driver: bridge
|