SPB Git

spb/ai-atlas

Public
5.6 KB · 118 lines json
1{2  "app": "ai-atlas",3  "label": "AI Atlas — the global intelligence layer for artificial intelligence",4  "domain": "www.ai-atlas.co",5  "port": 8320,6  "health_path": "/api/v1/health",7  "dir": "~/apps/ai-atlas",8  "extra_paths": [],9  "sync_excludes": [10    ".venv/", "__pycache__/", ".pytest_cache/", ".ruff_cache/", "*.egg-info/", ".git/", ".env", ".env.*", "!.env.example",11    "node_modules/", "apps/web/.next/", "apps/web/next-env.d.ts", "*.tsbuildinfo", "apps/web/qa/screens/", "apps/web/AGENTS.md", "apps/web/CLAUDE.md",12    "/data/", "/tmp/", "logs/", ".DS_Store", ".claude/", "deploy/.admin-token", "deploy/.llm-key", "deploy/rendered/", "tests/fixtures/"13  ],14  "requires": {15    "runtimes": ["pm2", "node", "pnpm", "uv", "uv-python@3.12"],16    "ram_gb": 8,17    "ports": [8320, 8321]18  },19  "ram_mb_observed": 3000,20  "size_mb": 60,21  "placement": {22    "pin": "M2M32c",23    "prefer": null,24    "avoid": ["M3U96b", "M1M32"],25    "reason": "Mac Studio M2 12 c / 32 Go dédié à AI Atlas (aucune autre app) ; Postgres 17 + pgvector + Redis Homebrew installés le 2026-09-11, raccordé au tunnel wg1 (10.67.0.20)"26  },27  "processes": [28    {29      "name": "ai-atlas-api",30      "manager": "pm2",31      "script": "{{HOME}}/apps/ai-atlas/.venv/bin/python",32      "args": ["-m", "uvicorn", "aiatlas.api.main:app", "--host", "127.0.0.1", "--port", "8321", "--no-access-log", "--proxy-headers", "--timeout-keep-alive", "75", "--workers", "2"],33      "interpreter": null,34      "cwd": "{{HOME}}/apps/ai-atlas",35      "env": {36        "APP_ENV": "production",37        "AIA_SITE_URL": "https://www.ai-atlas.co",38        "DATABASE_URL": "postgresql+asyncpg://aiatlas:aiatlas@127.0.0.1:5432/aiatlas",39        "REDIS_URL": "redis://127.0.0.1:6379/5",40        "AIA_DATA_DIR": "{{HOME}}/ai-atlas-data",41        "AIA_API_HOST": "127.0.0.1",42        "AIA_API_PORT": "8321",43        "AIA_ADMIN_TOKEN": "{{ADMIN_TOKEN}}",44        "AIA_LLM_BASE_URL": "https://www.llm-api.io/v1",45        "AIA_LLM_API_KEY": "{{LLM_KEY}}",46        "AIA_LOG_JSON": "1",47        "PYTHONUNBUFFERED": "1"48      },49      "cron_restart": null,50      "autorestart": true,51      "max_memory_restart": "3G"52    },53    {54      "name": "ai-atlas-scheduler",55      "manager": "pm2",56      "script": "{{HOME}}/apps/ai-atlas/.venv/bin/aia",57      "args": ["schedule"],58      "interpreter": null,59      "cwd": "{{HOME}}/apps/ai-atlas",60      "env": {61        "APP_ENV": "production",62        "AIA_SITE_URL": "https://www.ai-atlas.co",63        "DATABASE_URL": "postgresql+asyncpg://aiatlas:aiatlas@127.0.0.1:5432/aiatlas",64        "REDIS_URL": "redis://127.0.0.1:6379/5",65        "AIA_DATA_DIR": "{{HOME}}/ai-atlas-data",66        "AIA_ADMIN_TOKEN": "{{ADMIN_TOKEN}}",67        "AIA_LLM_BASE_URL": "https://www.llm-api.io/v1",68        "AIA_LLM_API_KEY": "{{LLM_KEY}}",69        "AIA_WORKER_CONCURRENCY": "2",70        "AIA_LOG_JSON": "1",71        "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin",72        "PYTHONUNBUFFERED": "1"73      },74      "cron_restart": null,75      "autorestart": true,76      "max_memory_restart": "6G"77    },78    {79      "name": "ai-atlas-web",80      "manager": "pm2",81      "script": "/opt/homebrew/bin/node",82      "args": ["node_modules/next/dist/bin/next", "start", "-p", "8320", "-H", "0.0.0.0"],83      "interpreter": null,84      "cwd": "{{HOME}}/apps/ai-atlas/apps/web",85      "env": {86        "NODE_ENV": "production",87        "API_URL": "http://127.0.0.1:8321",88        "NEXT_PUBLIC_SITE_URL": "https://www.ai-atlas.co",89        "AIA_ADMIN_TOKEN": "{{ADMIN_TOKEN}}",90        "NEXT_TELEMETRY_DISABLED": "1"91      },92      "cron_restart": null,93      "autorestart": true,94      "max_memory_restart": "2G"95    }96  ],97  "ngrok": null,98  "launchd": [],99  "env_overrides": {},100  "hooks": {101    "post_sync": [102      "set -o pipefail; mkdir -p $HOME/ai-atlas-data/{raw,text,logs,backups,cache,seed} && echo '  data dirs ok'",103      "set -o pipefail; export PATH=\"$HOME/.local/bin:/opt/homebrew/bin:$PATH\"; (test -x .venv/bin/python || uv venv --python 3.12 .venv) && uv pip install -q --python .venv/bin/python -e . && echo '  python deps ok'",104      "set -o pipefail; export PATH=\"/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:$PATH\"; export DATABASE_URL=postgresql+asyncpg://aiatlas:aiatlas@127.0.0.1:5432/aiatlas AIA_DATA_DIR=$HOME/ai-atlas-data AIA_LOG_JSON=0; .venv/bin/aia migrate 2>&1 | tail -1 && .venv/bin/aia seed 2>&1 | tail -1 && echo '  migrate + seed ok'",105      "set -o pipefail; export PATH=\"/opt/homebrew/bin:$PATH\"; pnpm install --frozen-lockfile --silent && echo '  web deps ok'",106      "set -o pipefail; export PATH=\"/opt/homebrew/bin:$PATH\"; cd apps/web && API_URL=http://127.0.0.1:8321 NEXT_PUBLIC_SITE_URL=https://www.ai-atlas.co NEXT_TELEMETRY_DISABLED=1 pnpm build 2>&1 | tail -3 && echo '  web build ok'"107    ],108    "post_start": []109  },110  "notes": "v0.1.0 (2026-09-11) : Next 16 :8320 (rewrites /api/v1/* → FastAPI 127.0.0.1:8321, 2 workers uvicorn), scheduler APScheduler + worker de jobs (connecteurs adaptatifs, extraction LLM via llm-api.io, embeddings pgvector, stats/qualité horaires, backup pg_dump 04:40). Postgres 17 + pgvector + Redis Homebrew locaux ; données hors repo ~/ai-atlas-data (archive brute content-addressed, texte, backups, logs). Secrets : AIA_ADMIN_TOKEN (laptop deploy/.admin-token) et AIA_LLM_API_KEY (laptop deploy/.llm-key, clé llm-api.io « ai-atlas »). Après le premier deploy : bash deploy/first-run.sh sur le nœud (corpus initial).",111  "tunnel": {112    "domain": "www.ai-atlas.co",113    "gateway": "BHS64",114    "redirects": ["ai-atlas.co"],115    "note": "DNS GoDaddy A www + A @ → 51.161.112.61 posés par l'utilisateur le 2026-09-11 (vérifiés par dig)."116  }117}118
Files · 0f064299de6124ef553ef1bf8a851ae63aeae373
Menu

Theme