orio-search/docker-compose.yml
Максим Рябов 0304258aa1 Add MCP server with SSE transport for LLM client integration
MCP server exposes OrioSearch API as 3 tools (search, extract, search_stream)
accessible via SSE transport. Auth via X-Api-Key header checked per-tool,
allowing unauthenticated tool discovery. Includes Dockerfile.mcp, docker-compose
service, and a web-search skill prompt for AI agents.
2026-04-13 13:30:22 +03:00

92 lines
2.1 KiB
YAML

services:
searxng:
image: searxng/searxng:latest
container_name: orio-search-searxng
ports:
- "${SEARXNG_PORT:-8080}:8080"
volumes:
- ./searxng/settings.yml:/etc/searxng/settings.yml:ro
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/healthz"]
interval: 30s
timeout: 5s
retries: 3
redis:
image: redis:7-alpine
container_name: orio-search-redis
ports:
- "6379:6379"
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5
deploy:
resources:
limits:
memory: 256M
browserless:
image: browserless/chrome:latest
container_name: orio-search-browserless
profiles: ["js"]
ports:
- "${BROWSERLESS_PORT:-3000}:3000"
environment:
- MAX_CONCURRENT_SESSIONS=5
- CONNECTION_TIMEOUT=15000
- DEFAULT_LAUNCH_ARGS=["--no-sandbox","--disable-gpu"]
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/"]
interval: 30s
timeout: 5s
retries: 3
deploy:
resources:
limits:
memory: 1G
api:
build: .
container_name: orio-search-api
ports:
- "${API_PORT:-8000}:8000"
volumes:
- ./config.yaml:/app/config.yaml:ro
depends_on:
searxng:
condition: service_healthy
redis:
condition: service_healthy
environment:
- ORIO_SEARCH_CONFIG=/app/config.yaml
restart: unless-stopped
deploy:
resources:
limits:
memory: 1G
mcp:
build:
context: .
dockerfile: Dockerfile.mcp
container_name: orio-search-mcp
ports:
- "${MCP_PORT:-8002}:8002"
environment:
- ORIO_SEARCH_URL=http://api:8000
- ORIO_SEARCH_API_KEY=${ORIO_SEARCH_API_KEY:-}
- MCP_SERVER_PORT=8002
depends_on:
api:
condition: service_started
restart: unless-stopped
deploy:
resources:
limits:
memory: 256M