{
  "$schema": "https://coolify.io/schema.json",
  "name": "pazaryonetimi",
  "version": "1.0.0",
  "type": "docker-compose",
  "services": {
    "postgres": {
      "image": "postgres:16-alpine",
      "environment": [
        "POSTGRES_USER=pazaryonetimi",
        "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}",
        "POSTGRES_DB=pazaryonetimi"
      ],
      "volumes": [
        "postgres_data:/var/lib/postgresql/data"
      ],
      "healthcheck": {
        "test": ["CMD-SHELL", "pg_isready -U pazaryonetimi"],
        "interval": "5s",
        "timeout": "5s",
        "retries": 5
      },
      "ports": ["5432:5432"]
    },
    "redis": {
      "image": "redis:alpine",
      "healthcheck": {
        "test": ["CMD", "redis-cli", "ping"],
        "interval": "5s",
        "timeout": "5s",
        "retries": 5
      },
      "ports": ["6379:6379"]
    },
    "api": {
      "build": {
        "dockerfile": "apps/api/Dockerfile"
      },
      "environment": [
        "DATABASE_URL=${DATABASE_URL}",
        "REDIS_URL=${REDIS_URL}",
        "REDIS_HOST=${REDIS_HOST}",
        "REDIS_PORT=${REDIS_PORT}",
        "REDIS_PASSWORD=${REDIS_PASSWORD}",
        "JWT_SECRET=${JWT_SECRET}",
        "NODE_ENV=production",
        "ENABLE_SCHEDULER=true"
      ],
      "ports": ["3001:3001"],
      "depends_on": ["postgres", "redis"],
      "healthcheck": {
        "test": ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3001/api/health"],
        "interval": "10s",
        "timeout": "5s",
        "retries": 3,
        "start_period": "20s"
      }
    },
    "web": {
      "build": {
        "dockerfile": "apps/web/Dockerfile"
      },
      "environment": [
        "DATABASE_URL=${DATABASE_URL}",
        "NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}",
        "NEXTAUTH_URL=${NEXTAUTH_URL}",
        "NEXTAUTH_SECRET=${NEXTAUTH_SECRET}",
        "AUTH_URL=${AUTH_URL}",
        "AUTH_SECRET=${AUTH_SECRET}",
        "NODE_ENV=production"
      ],
      "ports": ["3000:3000"],
      "depends_on": ["api", "redis"]
    },
    "worker": {
      "build": {
        "dockerfile": "apps/api/Dockerfile"
      },
      "command": ["sh", "-c", "cd apps/api && node dist/apps/api/src/worker.js"],
      "environment": [
        "DATABASE_URL=${DATABASE_URL}",
        "REDIS_URL=${REDIS_URL}",
        "REDIS_HOST=${REDIS_HOST}",
        "REDIS_PORT=${REDIS_PORT}",
        "REDIS_PASSWORD=${REDIS_PASSWORD}",
        "ENABLE_SCHEDULER=true",
        "NODE_ENV=production"
      ],
      "depends_on": ["postgres", "redis"]
    }
  },
  "volumes": {
    "postgres_data": {}
  }
}
