x-asr-environment: &asr-environment ASR_PROVIDER: ${ASR_PROVIDER:-qwen3cam} ASR_DIARIZE_URL: ${ASR_DIARIZE_URL:-http://192.168.50.100:10099/asr} ASR_VOICEPRINT_ENROLL_URL: ${ASR_VOICEPRINT_ENROLL_URL:-http://192.168.50.100:10099/voiceprints/enroll} LITELLM_BASE_URL: ${LITELLM_BASE_URL:-http://192.168.50.49:4000/v1} LITELLM_API_KEY: ${LITELLM_API_KEY:-} ASR_GEMINI_MODEL: ${ASR_GEMINI_MODEL:-aistudio/gemini-3.5-transcribe} ASR_OPENAI_MODEL: ${ASR_OPENAI_MODEL:-openai/gpt-4o-transcribe-diarize} SONIOX_API_KEY: ${SONIOX_API_KEY:-} SONIOX_MODEL: ${SONIOX_MODEL:-stt-async-v5} XAI_API_KEY: ${XAI_API_KEY:-} ASR_GROK_MODEL: ${ASR_GROK_MODEL:-grok-voice-transcribe-2.0} ASR_CLEAN_MODEL: ${ASR_CLEAN_MODEL:-aistudio/gemini-flash-lite-latest} ASR_KEYWORD_MODEL: ${ASR_KEYWORD_MODEL:-aistudio/gemini-flash-lite-latest} ASR_DRAFT_MODEL: ${ASR_DRAFT_MODEL:-codex/gpt-sol-latest} ASR_AGENT_TOKEN: ${ASR_AGENT_TOKEN:-} ASR_WEB_PASSWORD: ${ASR_WEB_PASSWORD:-} ASR_PUBLIC_URL: ${ASR_PUBLIC_URL:-http://192.168.50.49:8788} HINDSIGHT_API: ${HINDSIGHT_API:-http://192.168.50.47:8888} HINDSIGHT_BANK: ${HINDSIGHT_BANK:-personal-context} ASR_GIT_SYNC: ${ASR_GIT_SYNC:-0} 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-11-02 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-11-02 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