# ============================================================================= # Job Ops - Docker Compose Configuration # ============================================================================= services: job-ops: build: context: . dockerfile: Dockerfile image: job-ops:latest container_name: job-ops ports: - "3005:3001" volumes: # Persist database and generated PDFs - ./data:/app/data # Base resume JSON (read-only) - ./resume-generator/base.json:/app/resume-generator/base.json:ro environment: # Server config - NODE_ENV=production - PORT=3001 # OpenRouter API for AI scoring and summaries - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - MODEL=${MODEL:-openai/gpt-4o-mini} # RXResume credentials for PDF generation - RXRESUME_EMAIL=${RXRESUME_EMAIL} - RXRESUME_PASSWORD=${RXRESUME_PASSWORD} # Pipeline configuration - PIPELINE_TOP_N=${PIPELINE_TOP_N:-10} - PIPELINE_MIN_SCORE=${PIPELINE_MIN_SCORE:-50} # Optional: Notion integration - NOTION_API_KEY=${NOTION_API_KEY:-} - NOTION_DATABASE_ID=${NOTION_DATABASE_ID:-} # Optional: Webhook secret for n8n - WEBHOOK_SECRET=${WEBHOOK_SECRET:-} # Python path (uses system python in container) - PYTHON_PATH=/usr/bin/python3 restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3001/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s # Volumes for data persistence volumes: data: