SPB Git forge

spb/market-atlas

Public
12commits 1branches 0releases
1.1 MBsize
maindefault branch
10 days agolast push
TypeScript 96.7% SQL 1.6% CSS 0.8% JavaScript 0.5%
5.1 KB · 116 lines json
Raw Blame History
1{2  "app": "market-atlas",3  "label": "Market Atlas — the live map of global markets",4  "domain": "www.market-atlas.co",5  "port": 8380,6  "health_path": "/v1/health",7  "dir": "~/apps/market-atlas",8  "extra_paths": [],9  "sync_excludes": [10    ".git/",11    ".env",12    ".env.*",13    "!.env.example",14    "node_modules/",15    "apps/api/dist/",16    "apps/web/.next/",17    "apps/web/.next-*/",18    "apps/web/next-env.d.ts",19    "apps/web/qa/screens/",20    "*.tsbuildinfo",21    "data/",22    "/tmp/",23    "logs/",24    "/coverage/",25    ".DS_Store",26    ".claude/",27    "deploy/.admin-token",28    "deploy/.hfmd-key",29    "deploy/rendered/"30  ],31  "requires": {32    "runtimes": ["pm2", "node", "pnpm", "postgresql@17"],33    "ram_gb": 6,34    "ports": [8380, 8382]35  },36  "ram_mb_observed": 1500,37  "size_mb": 30,38  "placement": {39    "pin": "M2U64",40    "prefer": null,41    "avoid": ["M3U96b", "M1M32"],42    "reason": "Mac Studio M2 Ultra 24 c / 64 Go : Postgres 17 Homebrew déjà présent (rôle/db market_atlas créés le 2026-09-12), 40 Go libres, raccordé au tunnel wg1 (10.67.0.12) ; node 25 + pnpm 9 + PM2"43  },44  "processes": [45    {46      "name": "market-atlas-core",47      "manager": "pm2",48      "script": "/opt/homebrew/bin/node",49      "args": ["apps/api/dist/main.js"],50      "interpreter": null,51      "cwd": "{{HOME}}/apps/market-atlas",52      "env": {53        "APP_ENV": "production",54        "NODE_ENV": "production",55        "MA_SITE_URL": "https://www.market-atlas.co",56        "MA_API_HOST": "0.0.0.0",57        "MA_API_PORT": "8380",58        "MA_ROLE": "all",59        "MA_WEB_UPSTREAM": "http://127.0.0.1:8382",60        "DATABASE_URL": "postgres://market_atlas:market_atlas@127.0.0.1:5432/market_atlas",61        "MA_DATA_DIR": "{{HOME}}/market-atlas-data",62        "MA_ADMIN_TOKEN": "{{ADMIN_TOKEN}}",63        "MA_CONTACT_EMAIL": "spbou4@icloud.com",64        "HFMD_API_KEY": "{{HFMD_KEY}}",65        "MA_LOG_JSON": "1",66        "MA_RAW_SAMPLE_RATE": "0.02",67        "MA_OBSERVATION_RETENTION_DAYS": "45",68        "MA_TICK_PERSIST_INTERVAL_MS": "5000",69        "PG_DUMP": "/opt/homebrew/opt/postgresql@17/bin/pg_dump",70        "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin"71      },72      "cron_restart": null,73      "autorestart": true,74      "max_memory_restart": "3G"75    },76    {77      "name": "market-atlas-web",78      "manager": "pm2",79      "script": "/opt/homebrew/bin/node",80      "args": ["node_modules/next/dist/bin/next", "start", "-p", "8382", "-H", "127.0.0.1"],81      "interpreter": null,82      "cwd": "{{HOME}}/apps/market-atlas/apps/web",83      "env": {84        "NODE_ENV": "production",85        "API_URL": "http://127.0.0.1:8380",86        "NEXT_PUBLIC_SITE_URL": "https://www.market-atlas.co",87        "NEXT_TELEMETRY_DISABLED": "1"88      },89      "cron_restart": null,90      "autorestart": true,91      "max_memory_restart": "2G"92    }93  ],94  "ngrok": null,95  "launchd": [],96  "env_overrides": {},97  "hooks": {98    "post_sync": [99      "set -o pipefail; mkdir -p $HOME/market-atlas-data/{raw,archive,backups,logs,cache} && echo '  data dirs ok'",100      "set -o pipefail; export PATH=\"/opt/homebrew/bin:$PATH\"; pnpm install --frozen-lockfile --silent && echo '  deps ok'",101      "set -o pipefail; export PATH=\"/opt/homebrew/bin:$PATH\"; pnpm --filter @market-atlas/api build 2>&1 | tail -2 && echo '  api build ok'",102      "set -o pipefail; export PATH=\"/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:$PATH\"; DATABASE_URL=postgres://market_atlas:market_atlas@127.0.0.1:5432/market_atlas MA_DATA_DIR=$HOME/market-atlas-data MA_LOG_JSON=0 node apps/api/dist/cli.js migrate | tail -1 && DATABASE_URL=postgres://market_atlas:market_atlas@127.0.0.1:5432/market_atlas MA_DATA_DIR=$HOME/market-atlas-data MA_LOG_JSON=0 node apps/api/dist/cli.js seed | tail -1 && echo '  migrate + seed ok'",103      "set -o pipefail; export PATH=\"/opt/homebrew/bin:$PATH\"; cd apps/web && API_URL=http://127.0.0.1:8380 NEXT_PUBLIC_SITE_URL=https://www.market-atlas.co NEXT_TELEMETRY_DISABLED=1 pnpm build 2>&1 | tail -3 && echo '  web build ok'"104    ],105    "post_start": []106  },107  "notes": "v0.1.0 (2026-09-12) : monorepo TypeScript. market-atlas-core = Fastify sur 0.0.0.0:8380 (edge public : REST /v1, WebSocket /v1/stream, SSE /v1/sse ; tout autre chemin proxyfié vers Next 127.0.0.1:8382) + workers in-process (14 connecteurs : Coinbase/Kraken/Binance/OKX WS, Cboe delayed, ECB/Frankfurter, Banque du Canada, US Treasury, SEC EDGAR filings + directory, Nasdaq Trader symbol directory/halts/calendar, hfmarketdata), consensus multi-sources, moteur d'événements, barres, archive brute ~/market-atlas-data. Postgres 17 Homebrew local (db/rôle market_atlas, observations partitionnées par jour, archive gzip après 45 j, pg_dump métadonnées 04:00). Secrets : MA_ADMIN_TOKEN (laptop deploy/.admin-token) et HFMD_API_KEY (deploy/.hfmd-key). Console : https://www.market-atlas.co/admin.",108  "tunnel": {109    "domain": "www.market-atlas.co",110    "gateway": "BHS64",111    "redirects": [],112    "websocket": true,113    "note": "DNS GoDaddy A www → 51.161.112.61 posé par l'utilisateur le 2026-09-12. Apex market-atlas.co : ajouter A @ → 51.161.112.61 puis redirects: [\"market-atlas.co\"]."114  }115}116