services: backend: build: context: ./backend dockerfile: Dockerfile target: prod expose: - "8000" networks: - default - caddy labels: caddy: "${SPICEBOOK_DOMAIN:-spicebook.localhost}" caddy.@api.path: "/api/* /health /docs /openapi.json /redoc /mcp/*" caddy.reverse_proxy_0: "@api {{upstreams 8000}}" caddy.reverse_proxy_0.flush_interval: "-1" caddy.reverse_proxy_0.transport: "http" caddy.reverse_proxy_0.transport.read_timeout: "0" caddy.reverse_proxy_0.transport.write_timeout: "0" caddy.reverse_proxy_0.stream_timeout: "24h" caddy.reverse_proxy_0.stream_close_delay: "5s" frontend: build: context: ./frontend dockerfile: Dockerfile target: prod expose: - "4321" networks: - default - caddy labels: caddy: "${SPICEBOOK_DOMAIN:-spicebook.localhost}" caddy.reverse_proxy_1: "{{upstreams 4321}}" caddy.reverse_proxy_1.flush_interval: "-1" networks: caddy: external: true