name: ashim

# CPU deployment — no GPU required.
# Usage: docker compose up -d
# GPU:   docker compose -f docker-compose-gpu.yml up -d

services:
  ashim:
    build:
      context: ..
      dockerfile: docker/Dockerfile
    image: ashim:latest
    container_name: ashim
    ports:
      - "1349:1349"
    volumes:
      - ashim-data:/data           # Database, AI models, user files
      - ashim-workspace:/tmp/workspace  # Temp processing (auto-cleaned)
    environment:
      - AUTH_ENABLED=true
      - DEFAULT_USERNAME=admin
      - DEFAULT_PASSWORD=admin
      - SKIP_MUST_CHANGE_PASSWORD=${SKIP_MUST_CHANGE_PASSWORD:-false}
      - MAX_UPLOAD_SIZE_MB=${MAX_UPLOAD_SIZE_MB:-0}
      - MAX_BATCH_SIZE=${MAX_BATCH_SIZE:-0}
      - MAX_MEGAPIXELS=${MAX_MEGAPIXELS:-0}
      - CONCURRENT_JOBS=${CONCURRENT_JOBS:-0}
      - MAX_WORKER_THREADS=${MAX_WORKER_THREADS:-0}
      - PROCESSING_TIMEOUT_S=${PROCESSING_TIMEOUT_S:-0}
      - MAX_PIPELINE_STEPS=${MAX_PIPELINE_STEPS:-0}
      - RATE_LIMIT_PER_MIN=${RATE_LIMIT_PER_MIN:-0}
      - MAX_USERS=${MAX_USERS:-0}
      - SESSION_DURATION_HOURS=${SESSION_DURATION_HOURS:-168}
      - TRUST_PROXY=${TRUST_PROXY:-true}
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:1349/api/v1/health"]
      interval: 30s
      timeout: 5s
      start_period: 60s
      retries: 3
    shm_size: '2gb'
    logging:
      driver: json-file
      options:
        max-size: "50m"
        max-file: "5"

volumes:
  ashim-data:
  ashim-workspace:
