# mcwaddams MCP Server - Docker Compose # "I could set the building on fire..." services: mcwaddams: build: context: . dockerfile: Dockerfile target: production container_name: mcwaddams-mcp restart: unless-stopped environment: - MCP_TRANSPORT=streamable-http - MCP_HOST=0.0.0.0 - MCP_PORT=8000 - DEBUG=${DEBUG:-false} - OFFICE_TEMP_DIR=/tmp/mcwaddams # Security: Disable local file access for hosted server # Clients must use file_content parameter to upload documents - MCP_ALLOW_LOCAL_FILES=false volumes: # Temp directory for document processing - mcwaddams-temp:/tmp/mcwaddams networks: - caddy labels: # Caddy-docker-proxy labels - direct reverse proxy (no path stripping) # MCP is served at /mcp on the backend caddy: ${MCWADDAMS_HOST:-mcwaddams.l.supported.systems} caddy.reverse_proxy: "{{upstreams 8000}}" caddy.reverse_proxy.flush_interval: "-1" caddy.reverse_proxy.transport: "http" caddy.reverse_proxy.transport.read_timeout: "0" caddy.reverse_proxy.transport.write_timeout: "0" caddy.reverse_proxy.stream_timeout: "24h" healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health')"] interval: 30s timeout: 10s retries: 3 start_period: 10s volumes: mcwaddams-temp: networks: caddy: external: true