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: ${ASR_IMAGE:-tools-asr-pipeline:latest} pull_policy: ${ASR_PULL_POLICY:-never} build: context: . dockerfile: Dockerfile container_name: tools-asr-web restart: unless-stopped environment: <<: *asr-environment ASR_ROLE: web ports: - "${ASR_BIND_ADDRESS:-192.168.50.49}:${ASR_PORT:-8788}:8788" volumes: - ${ASR_DATA_VOLUME:-/mnt/truenas/personal/ASR-Pipeline}:/data - ${ASR_STATE_VOLUME:-/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: ${ASR_IMAGE:-tools-asr-pipeline:latest} pull_policy: ${ASR_PULL_POLICY:-never} container_name: tools-asr-worker restart: unless-stopped environment: <<: *asr-environment ASR_ROLE: worker command: ["python", "-m", "asrservice.worker"] volumes: - ${ASR_DATA_VOLUME:-/mnt/truenas/personal/ASR-Pipeline}:/data - ${ASR_STATE_VOLUME:-/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