SPB Git

spb/websensor

Public
4.8 KB · 129 lines
1{2  "app": "websensor",3  "label": "WebSensor — Detect What Changed. Know Why It Matters.",4  "domain": "www.websensor.io",5  "port": 8260,6  "health_path": "/api/ready",7  "dir": "~/apps/websensor",8  "extra_paths": [],9  "sync_excludes": [10    "node_modules/",11    ".next/",12    ".git/",13    ".env",14    ".env.*",15    "!.env.example",16    "*.tsbuildinfo",17    ".turbo/",18    "logs/",19    "tmp/",20    "data/",21    "coverage/",22    ".DS_Store",23    ".claude/",24    "qa/",25    "apps/web/.next/",26    "apps/web/next-env.d.ts",27    "deploy/*.mld.json"28  ],29  "requires": {30    "runtimes": ["pm2", "ngrok", "node", "pnpm", "postgresql@17", "redis"],31    "ram_gb": 6,32    "ports": [8260, 8261, 8262]33  },34  "ram_mb_observed": 1500,35  "size_mb": 40,36  "placement": {37    "pin": "M4M64b",38    "prefer": null,39    "avoid": ["M3U96b", "M1M32"],40    "reason": "PostgreSQL 17 + Redis + pnpm présents ; 64 Go RAM ; M3U96a déjà chargé (25 processus PM2)"41  },42  "processes": [43    {44      "name": "websensor-engine",45      "manager": "pm2",46      "script": "/opt/homebrew/bin/node",47      "args": ["node_modules/tsx/dist/cli.mjs", "apps/engine/src/index.ts"],48      "interpreter": null,49      "cwd": "{{HOME}}/apps/websensor",50      "env": {51        "NODE_ENV": "production",52        "DATABASE_URL": "postgres://localhost:5432/websensor",53        "REDIS_URL": "redis://127.0.0.1:6379",54        "BLOB_STORE_DIR": "{{HOME}}/websensor-data/blobs",55        "WS_SOURCES_FILE": "./config/sources.yaml",56        "WS_FETCH_CONCURRENCY": "16",57        "WS_PER_HOST_CONCURRENCY": "2",58        "ENGINE_METRICS_PORT": "8262",59        "WS_USER_AGENT": "WebSensorBot/0.1 (+https://www.websensor.io/bot; contact@websensor.io)",60        "ANTHROPIC_API_KEY": "<secret>",61        "WS_LLM_MODEL_FAST": "claude-haiku-4-5",62        "WS_LLM_MODEL_DEEP": "claude-opus-5",63        "WS_LLM_DAILY_CALL_BUDGET": "600",64        "WS_LLM_MIN_IMPORTANCE": "35",65        "WS_LLM_DEEP_MIN_IMPORTANCE": "78",66        "SCRAPFLY_API_KEY": "<secret>",67        "WS_SCRAPFLY_DAILY_BUDGET": "300",68        "LOG_LEVEL": "info"69      },70      "cron_restart": null,71      "autorestart": true,72      "max_memory_restart": "2G"73    },74    {75      "name": "websensor-api",76      "manager": "pm2",77      "script": "/opt/homebrew/bin/node",78      "args": ["node_modules/tsx/dist/cli.mjs", "apps/api/src/server.ts"],79      "interpreter": null,80      "cwd": "{{HOME}}/apps/websensor",81      "env": {82        "NODE_ENV": "production",83        "DATABASE_URL": "postgres://localhost:5432/websensor",84        "REDIS_URL": "redis://127.0.0.1:6379",85        "BLOB_STORE_DIR": "{{HOME}}/websensor-data/blobs",86        "API_PORT": "8260",87        "API_HOST": "0.0.0.0",88        "WEB_URL": "http://127.0.0.1:8261",89        "PUBLIC_BASE_URL": "https://www.websensor.io",90        "CANONICAL_HOST": "www.websensor.io",91        "LOG_LEVEL": "info"92      },93      "cron_restart": null,94      "autorestart": true,95      "max_memory_restart": "1G"96    },97    {98      "name": "websensor-web",99      "manager": "pm2",100      "script": "/opt/homebrew/bin/node",101      "args": ["node_modules/next/dist/bin/next", "start", "-p", "8261", "-H", "127.0.0.1"],102      "interpreter": null,103      "cwd": "{{HOME}}/apps/websensor/apps/web",104      "env": {105        "NODE_ENV": "production",106        "API_URL": "http://127.0.0.1:8260",107        "NEXT_PUBLIC_SITE_URL": "https://www.websensor.io",108        "NEXT_TELEMETRY_DISABLED": "1"109      },110      "cron_restart": null,111      "autorestart": true,112      "max_memory_restart": "1G"113    }114  ],115  "ngrok": { "name": "websensor-ngrok", "url": "www.websensor.io", "port": 8260 },116  "launchd": [],117  "env_overrides": {},118  "hooks": {119    "post_sync": [120      "export PATH=\"/opt/homebrew/bin:$PATH\"; pnpm install --frozen-lockfile --silent && echo '  deps ok'",121      "export PATH=\"/opt/homebrew/bin:$PATH\"; psql -d postgres -Atc \"select 1 from pg_database where datname='websensor'\" | grep -q 1 || createdb websensor; DATABASE_URL=postgres://localhost:5432/websensor pnpm db:migrate 2>&1 | tail -1 && echo '  db ok'",122      "export PATH=\"/opt/homebrew/bin:$PATH\"; mkdir -p $HOME/websensor-data/blobs && DATABASE_URL=postgres://localhost:5432/websensor node node_modules/tsx/dist/cli.mjs apps/engine/src/cli.ts sync 2>&1 | tail -1 && echo '  registry ok'",123      "export PATH=\"/opt/homebrew/bin:$PATH\"; export API_URL=http://127.0.0.1:8260 NEXT_PUBLIC_SITE_URL=https://www.websensor.io NEXT_TELEMETRY_DISABLED=1; pnpm --filter @websensor/web build 2>&1 | tail -3 && echo '  web build ok'"124    ],125    "post_start": []126  },127  "notes": "v0.1.0 (2026-09-08) : gateway Fastify :8260 (REST + WS /api/v1/live + proxy → Next :8261), engine (scheduler/pipeline, métriques :8262), 200 sources / ~290 capteurs (config/sources.yaml), Postgres 17 + Redis locaux, blobs zstd dans ~/websensor-data/blobs. Secrets uniquement dans ce manifeste (M1M32)."128}129
Files · 792343f33c711c11e07d8add56e0ed43c1893a32
Menu

Theme