version: "0.5"
processes:
  ui:
    command: "pnpm dev"
    working_dir: "ui/web"
    depends_on:
      supabase:
        condition: process_healthy
    availability:
      restart: "on_failure"
    readiness_probe:
      http_get:
        host: "127.0.0.1"
        port: 3000
        path: "/"
      initial_delay_seconds: 5
      period_seconds: 5
      failure_threshold: 10

  api:
    command: "uv run uvicorn --app-dir src main:app --reload --port 8000"
    working_dir: "backend/api"
    depends_on:
      supabase:
        condition: process_healthy
    availability:
      restart: "on_failure"
    readiness_probe:
      http_get:
        host: "127.0.0.1"
        port: 8000
        path: "/health"
      initial_delay_seconds: 3
      period_seconds: 3
      failure_threshold: 10

  supabase:
    command: "supabase start"
    availability:
      restart: "on_failure"
    readiness_probe:
      http_get:
        host: "127.0.0.1"
        port: 54321
        path: "/"
      initial_delay_seconds: 10
      period_seconds: 5
      failure_threshold: 20

  inngest:
    command: "npx --yes inngest-cli@0.4.8 dev -u http://localhost:8000/api/inngest"
    depends_on:
      api:
        condition: process_healthy
    availability:
      restart: "on_failure"

  caddy:
    command: "caddy run --config Caddyfile --watch"
    availability:
      restart: "on_failure"
    readiness_probe:
      http_get:
        host: "127.0.0.1"
        port: 2020
        path: "/config/"
      initial_delay_seconds: 2
      period_seconds: 3
      failure_threshold: 10
