# 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 volumes: # Temp directory for document processing - mcwaddams-temp:/tmp/mcwaddams networks: - caddy labels: # Caddy-docker-proxy labels for /mcp endpoint caddy: ${MCWADDAMS_HOST:-mcwaddams.supported.systems} caddy.@mcp.path: /mcp/* caddy.@mcp.path_strip: /mcp caddy.handle: "@mcp" caddy.handle.reverse_proxy: "{{upstreams 8000}}" caddy.handle.reverse_proxy.flush_interval: "-1" caddy.handle.reverse_proxy.transport: "http" caddy.handle.reverse_proxy.transport.read_timeout: "0" caddy.handle.reverse_proxy.transport.write_timeout: "0" caddy.handle.reverse_proxy.stream_timeout: "24h" caddy.handle.reverse_proxy.header_up.Connection: "{http.request.header.Connection}" caddy.handle.reverse_proxy.header_up.Upgrade: "{http.request.header.Upgrade}" 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