{
  "app": "trawls",
  "label": "Trawls — crawl, extract, navigate",
  "domain": "www.trawls.dev",
  "port": 8180,
  "health_path": "/healthz",
  "dir": "~/apps/trawls",
  "extra_paths": [],
  "sync_excludes": [
    ".venv/",
    "venv/",
    "data/",
    "__pycache__/",
    ".pytest_cache/",
    ".ruff_cache/",
    ".mypy_cache/",
    "*.egg-info/",
    ".git/",
    ".env"
  ],
  "requires": {
    "runtimes": ["pm2", "ngrok", "uv-python@3.12", "uv"],
    "ram_gb": 3,
    "ports": [8180]
  },
  "ram_mb_observed": 1500,
  "size_mb": 5,
  "placement": {
    "pin": null,
    "prefer": "M3U96a",
    "avoid": ["M3U96b", "M1M32"],
    "reason": "Playwright/Chromium : beaucoup de cœurs et RAM libre ; M3U96b réservé hfmarketdata"
  },
  "processes": [
    {
      "name": "trawls-api",
      "manager": "pm2",
      "script": "{{HOME}}/apps/trawls/.venv/bin/python",
      "args": ["-m", "uvicorn", "trawls.api.main:app", "--host", "0.0.0.0", "--port", "8180", "--no-access-log"],
      "interpreter": null,
      "cwd": "{{HOME}}/apps/trawls",
      "env": {
        "TRAWLS_ENV": "production",
        "TRAWLS_PORT": "8180",
        "TRAWLS_PUBLIC_URL": "https://www.trawls.dev",
        "TRAWLS_DATA_DIR": "{{HOME}}/apps/trawls/data",
        "TRAWLS_BROWSER_POOL_SIZE": "6",
        "TRAWLS_WORKER_CONCURRENCY": "4",
        "TRAWLS_MAX_CONCURRENCY_GLOBAL": "24",
        "TRAWLS_LLM_PROVIDER": "openai",
        "TRAWLS_LLM_BASE_URL": "https://llm.maclustr.io/v1",
        "TRAWLS_LLM_MODEL": "maclustr-general",
        "TRAWLS_ADMIN_KEY": "trawls-admin-2026-Qx7mP3vL9kR2",
        "TRAWLS_LOG_LEVEL": "INFO",
        "PYTHONUNBUFFERED": "1",
        "PLAYWRIGHT_BROWSERS_PATH": "{{HOME}}/Library/Caches/ms-playwright"
      },
      "cron_restart": null,
      "autorestart": true,
      "max_memory_restart": "6G"
    }
  ],
  "ngrok": {
    "name": "trawls-ngrok",
    "url": "www.trawls.dev",
    "port": 8180
  },
  "launchd": [],
  "env_overrides": {},
  "hooks": {
    "post_sync": [
      "export PATH=\"$HOME/.local/bin:/opt/homebrew/bin:$PATH\"; test -x .venv/bin/python || uv venv --python 3.12 .venv && echo '  venv ok'",
      "export PATH=\"$HOME/.local/bin:/opt/homebrew/bin:$PATH\"; uv pip install -q --python .venv/bin/python -e . && echo '  deps python ok'",
      "PLAYWRIGHT_BROWSERS_PATH=$HOME/Library/Caches/ms-playwright .venv/bin/playwright install chromium 2>&1 | tail -1; echo '  chromium ok'",
      "mkdir -p data/blobs && echo '  data ok'"
    ],
    "post_start": []
  },
  "ka_repo": false,
  "source_node": null,
  "rebuild": false
}
