---
services:
searxng-mcp:
image: docker.io/knucklessg1/searxng-mcp:latest
# build:
# context: . # Debug
# dockerfile: debug.Dockerfile
container_name: searxng-mcp
hostname: searxng-mcp
command: [ "searxng-mcp" ]
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- searxng
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: always
environment:
- "HOST=0.0.0.0"
- "PORT=8001"
- "TRANSPORT=streamable-http"
- "SEARXNG_INSTANCE_URL=${SEARXNG_INSTANCE_URL:-http://searxng:8080}"
ports:
- "8001:8001"
healthcheck:
test: [ "CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8001/health')" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
searxng-agent:
image: docker.io/knucklessg1/searxng-mcp:latest
# build:
# context: . # Debug
# dockerfile: debug.Dockerfile
container_name: searxng-agent
hostname: searxng-agent
command: [ "searxng-agent" ]
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- searxng-mcp
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: always
environment:
- "HOST=0.0.0.0"
- "PORT=9001"
- "MCP_URL=http://searxng-mcp:8001/mcp"
- "PROVIDER=openai"
- "OPENAI_BASE_URL=http://host.docker.internal:1234/v1"
- "OPENAI_API_KEY=llama"
- "MODEL_ID=qwen/qwen3-4b-2507"
- "DEBUG=False"
- "ENABLE_WEB_UI=True"
ports:
- "9001:9001"
healthcheck:
test: [ "CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:9001/health')" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
searxng:
image: docker.io/searxng/searxng:latest
container_name: searxng
hostname: searxng
environment:
- SEARXNG_SECRET_KEY=veryLongRandomStringHereAtLeast32chars
- SEARXNG_INSTANCE_NAME=Private SearXNG
- SEARXNG_BIND_ADDRESS=0.0.0.0:8080
- SEARXNG_PORT=8080
- SEARXNG_LIMITER=false
- SEARXNG_PUBLIC_INSTANCE=false
- SEARXNG_IMAGE_PROXY=false
- SEARXNG_METHOD=POST
- SEARXNG_DEFAULT_THEME=simple
- SEARXNG_DEFAULT_LOCALE=en
- SEARXNG_SAFE_SEARCH=0
- SEARXNG_FORMATS=html,json
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- "./mcp/searxng_config:/etc/searxng:rw"
- "./mcp/searxng_data:/var/cache/searxng:rw"
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
ports:
- "8080:8080"
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"