services: heltec-docs: build: context: . target: ${MODE:-development} container_name: heltec-tracker-docs restart: unless-stopped environment: - ASTRO_TELEMETRY_DISABLED=1 - VITE_HMR_HOST=${VITE_HMR_HOST:-} - SITE_URL=${SITE_URL:-} networks: - caddy labels: # Caddy reverse proxy configuration caddy: ${DOMAIN:-heltec-tracker.l.warehack.ing} caddy.reverse_proxy: "{{upstreams ${PORT:-4321}}}" # HMR WebSocket 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" # Development mode override heltec-docs-dev: extends: service: heltec-docs profiles: - dev build: target: development volumes: - ./src:/app/src:ro - ./public:/app/public:ro - ./astro.config.mjs:/app/astro.config.mjs:ro environment: - ASTRO_TELEMETRY_DISABLED=1 - VITE_HMR_HOST=${VITE_HMR_HOST} labels: caddy.reverse_proxy: "{{upstreams 4321}}" # Production mode override heltec-docs-prod: extends: service: heltec-docs profiles: - prod build: target: production labels: caddy.reverse_proxy: "{{upstreams 80}}" networks: caddy: external: true