services: redis: image: redis:7-alpine container_name: whisper_redis restart: unless-stopped command: redis-server --stop-writes-on-bgsave-error no environment: - TZ=Asia/Seoul volumes: - redis_data:/data networks: - whisper_net app: build: context: ./app dockerfile: Dockerfile container_name: whisper_app restart: unless-stopped ports: - "8800:8000" environment: - TZ=Asia/Seoul # ── 인증 (반드시 변경) ────────────────────────────── - AUTH_USERNAME=admin - AUTH_PASSWORD=changeme1234 - JWT_SECRET=your-very-secret-key-change-this - JWT_EXPIRE_HOURS=12 # ── Whisper STT ───────────────────────────────────── - REDIS_URL=redis://redis:6379/0 - UPLOAD_DIR=/data/uploads - OUTPUT_DIR=/data/outputs - WHISPER_MODEL=medium - WHISPER_DEVICE=cpu - WHISPER_COMPUTE_TYPE=int8 - WHISPER_LANGUAGE=ko - WHISPER_BEAM_SIZE=5 - WHISPER_INITIAL_PROMPT= # ── 타임아웃 ───────────────────────────────────────── # STT: Celery 태스크 소프트 타임아웃 (초) — 0=무제한 - STT_TIMEOUT=0 # Ollama: Vision/후처리 API 응답 대기 (초) - OLLAMA_TIMEOUT=600 # ── 파일 관리 ──────────────────────────────────────── - MAX_UPLOAD_MB=500 - OUTPUT_KEEP_HOURS=48 # ── PaddleOCR ──────────────────────────────────────── - OCR_LANG=korean # ── Ollama ─────────────────────────────────────────── - OLLAMA_URL=http://192.168.0.126:11434 # ── CPU 스레드 ─────────────────────────────────────── - CPU_THREADS=0 volumes: - stt_data:/data - whisper_models:/root/.cache/huggingface - paddle_models:/root/.paddlex depends_on: - redis networks: - whisper_net worker: build: context: ./app dockerfile: Dockerfile container_name: whisper_worker restart: unless-stopped command: > celery -A tasks worker --loglevel=info --pool=solo --max-tasks-per-child=50 -Q stt,ocr environment: - TZ=Asia/Seoul - REDIS_URL=redis://redis:6379/0 - UPLOAD_DIR=/data/uploads - OUTPUT_DIR=/data/outputs - WHISPER_MODEL=medium - WHISPER_DEVICE=cpu - WHISPER_COMPUTE_TYPE=int8 - WHISPER_LANGUAGE=ko - WHISPER_BEAM_SIZE=5 - WHISPER_INITIAL_PROMPT= - STT_TIMEOUT=0 - OLLAMA_TIMEOUT=600 - MAX_UPLOAD_MB=500 - OUTPUT_KEEP_HOURS=48 - OCR_LANG=korean - OLLAMA_URL=http://192.168.0.126:11434 - CPU_THREADS=0 - JWT_SECRET=your-very-secret-key-change-this volumes: - stt_data:/data - whisper_models:/root/.cache/huggingface - paddle_models:/root/.paddlex depends_on: - redis networks: - whisper_net volumes: redis_data: stt_data: whisper_models: paddle_models: networks: whisper_net: driver: bridge