x-asr-environment: &asr-environment ZENMUX_API_KEY: ${ZENMUX_API_KEY:-} ASR_AGENT_TOKEN: ${ASR_AGENT_TOKEN:-} ASR_PUBLIC_URL: ${ASR_PUBLIC_URL:-http://192.168.50.49:8788} ASR_DIARIZE_URL: ${ASR_DIARIZE_URL:-http://192.168.50.100:10099/asr} HINDSIGHT_API: ${HINDSIGHT_API:-http://192.168.50.47:8888} HINDSIGHT_BANK: ${HINDSIGHT_BANK:-personal-context} ASR_NOTIFY_BACKEND: ${ASR_NOTIFY_BACKEND:-none} HERMES_WEBHOOK_URL: ${HERMES_WEBHOOK_URL:-} HERMES_WEBHOOK_SECRET: ${HERMES_WEBHOOK_SECRET:-} TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:-} TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-} services: asr-web: image: tools-asr-pipeline:2026-09-18 pull_policy: never build: context: . dockerfile: Dockerfile container_name: tools-asr-web restart: unless-stopped environment: <<: *asr-environment ASR_ROLE: web ports: - "192.168.50.49:8788:8788" volumes: - /mnt/truenas/personal/ASR-Pipeline:/data - /opt/asr-pipeline/state:/state healthcheck: test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8788/health"] interval: 30s timeout: 5s retries: 3 start_period: 20s security_opt: - no-new-privileges:true asr-worker: image: tools-asr-pipeline:2026-09-18 pull_policy: never container_name: tools-asr-worker restart: unless-stopped environment: <<: *asr-environment ASR_ROLE: worker command: ["python", "-m", "asrservice.worker"] volumes: - /mnt/truenas/personal/ASR-Pipeline:/data - /opt/asr-pipeline/state:/state healthcheck: test: ["CMD", "python", "-m", "asrservice.healthcheck"] interval: 30s timeout: 5s retries: 3 start_period: 20s security_opt: - no-new-privileges:true