services: docs: build: context: . target: ${APP_ENV:-dev} restart: unless-stopped environment: - PUBLIC_DOMAIN=${PUBLIC_DOMAIN:-mcserial.l.zmesh.systems} - VITE_HMR_HOST=${PUBLIC_DOMAIN:-mcserial.l.zmesh.systems} - ASTRO_TELEMETRY_DISABLED=1 volumes: # Dev mode: mount source for hot reload - ./src:/app/src:ro - ./public:/app/public:ro - ./astro.config.mjs:/app/astro.config.mjs:ro networks: - caddy labels: # Caddy reverse proxy caddy: ${PUBLIC_DOMAIN:-mcserial.l.zmesh.systems} caddy.reverse_proxy: "{{upstreams 4321}}" # WebSocket/HMR support for dev mode 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.transport.keepalive: "5m" caddy.reverse_proxy.transport.keepalive_idle_conns: "10" caddy.reverse_proxy.stream_timeout: "24h" caddy.reverse_proxy.stream_close_delay: "5s" networks: caddy: external: true