Async chat processing eliminates 504 timeouts - POST returns immediately, backend processes in background, frontend polls for results with timestamps. Scale to ~12 simultaneous chats via 8 uvicorn workers + 16-thread executor. Parallelized MCP data collection, 2h session cache, 5min tool timeout. Full dead code cleanup across backend, frontend, MCP, docker, and nginx.
44 lines
1.0 KiB
YAML
44 lines
1.0 KiB
YAML
services:
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
container_name: oci-agent-backend
|
|
restart: unless-stopped
|
|
environment:
|
|
- APP_SECRET=${APP_SECRET:-change-me-in-production-use-a-long-random-string}
|
|
- JWT_EXPIRY_HOURS=${JWT_EXPIRY_HOURS:-12}
|
|
- DATA_DIR=/data
|
|
- OCI_CLI_SUPPRESS_FILE_PERMISSIONS_WARNING=True
|
|
volumes:
|
|
- agent-data:/data
|
|
networks:
|
|
- agent-net
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
frontend:
|
|
image: nginx:alpine
|
|
container_name: oci-agent-frontend
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./frontend/index.html:/usr/share/nginx/html/index.html:ro
|
|
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
ports:
|
|
- "${PORT:-8080}:80"
|
|
depends_on:
|
|
- backend
|
|
networks:
|
|
- agent-net
|
|
|
|
volumes:
|
|
agent-data:
|
|
driver: local
|
|
|
|
networks:
|
|
agent-net:
|
|
driver: bridge
|