services: tool_ocr: build: context: . dockerfile: Dockerfile image: tool_ocr:latest container_name: tool_ocr restart: unless-stopped ports: - "12015:12015" # Only one port needed! environment: # Database Configuration - MYSQL_HOST=${MYSQL_HOST:-mysql.theaken.com} - MYSQL_PORT=${MYSQL_PORT:-33306} - MYSQL_USER=${MYSQL_USER:-A060} - MYSQL_PASSWORD=${MYSQL_PASSWORD:-WLeSCi0yhtc7} - MYSQL_DATABASE=${MYSQL_DATABASE:-db_A060} # Application Configuration - BACKEND_PORT=8000 # Internal backend port - FRONTEND_PORT=12015 # External port - SECRET_KEY=${SECRET_KEY:-your-secret-key-here-please-change-this} - ALGORITHM=${ALGORITHM:-HS256} - ACCESS_TOKEN_EXPIRE_MINUTES=${ACCESS_TOKEN_EXPIRE_MINUTES:-1440} # OCR Configuration - PADDLEOCR_MODEL_DIR=/app/backend/models/paddleocr - OCR_LANGUAGES=${OCR_LANGUAGES:-ch,en,japan,korean} - OCR_CONFIDENCE_THRESHOLD=${OCR_CONFIDENCE_THRESHOLD:-0.5} - MAX_OCR_WORKERS=${MAX_OCR_WORKERS:-4} # File Upload Configuration - MAX_UPLOAD_SIZE=${MAX_UPLOAD_SIZE:-52428800} - ALLOWED_EXTENSIONS=${ALLOWED_EXTENSIONS:-png,jpg,jpeg,pdf,bmp,tiff,doc,docx,ppt,pptx} - UPLOAD_DIR=/app/backend/uploads - TEMP_DIR=/app/backend/uploads/temp - PROCESSED_DIR=/app/backend/uploads/processed - IMAGES_DIR=/app/backend/uploads/images # Export Configuration - STORAGE_DIR=/app/backend/storage - MARKDOWN_DIR=/app/backend/storage/markdown - JSON_DIR=/app/backend/storage/json - EXPORTS_DIR=/app/backend/storage/exports # PDF Generation Configuration - PANDOC_PATH=/usr/bin/pandoc - FONT_DIR=/usr/share/fonts - PDF_PAGE_SIZE=${PDF_PAGE_SIZE:-A4} - PDF_MARGIN_TOP=${PDF_MARGIN_TOP:-20} - PDF_MARGIN_BOTTOM=${PDF_MARGIN_BOTTOM:-20} - PDF_MARGIN_LEFT=${PDF_MARGIN_LEFT:-20} - PDF_MARGIN_RIGHT=${PDF_MARGIN_RIGHT:-20} # Translation Configuration (Reserved) - ENABLE_TRANSLATION=${ENABLE_TRANSLATION:-false} - TRANSLATION_ENGINE=${TRANSLATION_ENGINE:-offline} - ARGOSTRANSLATE_MODELS_DIR=/app/backend/models/argostranslate # Background Tasks Configuration - TASK_QUEUE_TYPE=${TASK_QUEUE_TYPE:-memory} # CORS Configuration - CORS_ORIGINS=${CORS_ORIGINS:-http://localhost:12015,http://127.0.0.1:12015} # Logging Configuration - LOG_LEVEL=${LOG_LEVEL:-INFO} - LOG_FILE=/app/backend/logs/app.log volumes: # Persist data directories - ./data/uploads:/app/backend/uploads - ./data/storage:/app/backend/storage - ./data/models:/app/backend/models - ./data/logs:/app/backend/logs networks: - tool_ocr_network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:12010/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: tool_ocr_network: driver: bridge volumes: uploads: storage: models: logs: