mirror of
https://github.com/MaxRyabov/orio-search.git
synced 2026-10-19 15:23:33 +00:00
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.
92 lines
2.1 KiB
YAML
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
|
|
|