SPB Git forge
3commits 1branches 0releases
417.0 KBsize
maindefault branch
10 days agolast push
TypeScript 66.5% Python 30.9% JavaScript 1.4% CSS 0.7%
5.5 KB · 114 lines json
Raw Blame History
1{2  "app": "satelliteindex",3  "label": "SatelliteIndex — the world's orbital infrastructure, mapped and indexed",4  "domain": "www.satelliteindex.io",5  "port": 8310,6  "health_path": "/api/v1/health",7  "dir": "~/apps/satelliteindex",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/",12    "/data/", "/tmp/", "logs/", ".DS_Store", ".claude/", "deploy/.admin-token", "deploy/rendered/"13  ],14  "requires": {15    "runtimes": ["pm2", "node", "pnpm", "uv", "uv-python@3.12"],16    "ram_gb": 6,17    "ports": [8310, 8311]18  },19  "ram_mb_observed": 2200,20  "size_mb": 40,21  "placement": {22    "pin": "M2M32b",23    "prefer": null,24    "avoid": ["M3U96b", "M1M32"],25    "reason": "Mac Studio M2 Max 12 c / 32 Go dédié (aucune autre app), Postgres 17 + Redis Homebrew installés le 2026-09-11, raccordé au tunnel wg1 (10.67.0.19)"26  },27  "processes": [28    {29      "name": "satelliteindex-api",30      "manager": "pm2",31      "script": "{{HOME}}/apps/satelliteindex/.venv/bin/python",32      "args": ["-m", "uvicorn", "satelliteindex.api.main:app", "--host", "127.0.0.1", "--port", "8311", "--no-access-log", "--proxy-headers", "--timeout-keep-alive", "75", "--workers", "2"],33      "interpreter": null,34      "cwd": "{{HOME}}/apps/satelliteindex",35      "env": {36        "APP_ENV": "production",37        "APP_DOMAIN": "www.satelliteindex.io",38        "SI_SITE_URL": "https://www.satelliteindex.io",39        "DATABASE_URL": "postgresql+asyncpg://satelliteindex:satelliteindex@127.0.0.1:5432/satelliteindex",40        "REDIS_URL": "redis://127.0.0.1:6379/4",41        "SI_DATA_DIR": "{{HOME}}/satelliteindex-data",42        "SI_API_HOST": "127.0.0.1",43        "SI_API_PORT": "8311",44        "SI_ADMIN_TOKEN": "{{ADMIN_TOKEN}}",45        "SI_LOG_JSON": "1",46        "PYTHONUNBUFFERED": "1"47      },48      "cron_restart": null,49      "autorestart": true,50      "max_memory_restart": "3G"51    },52    {53      "name": "satelliteindex-scheduler",54      "manager": "pm2",55      "script": "{{HOME}}/apps/satelliteindex/.venv/bin/si",56      "args": ["schedule"],57      "interpreter": null,58      "cwd": "{{HOME}}/apps/satelliteindex",59      "env": {60        "APP_ENV": "production",61        "SI_SITE_URL": "https://www.satelliteindex.io",62        "DATABASE_URL": "postgresql+asyncpg://satelliteindex:satelliteindex@127.0.0.1:5432/satelliteindex",63        "REDIS_URL": "redis://127.0.0.1:6379/4",64        "SI_DATA_DIR": "{{HOME}}/satelliteindex-data",65        "SI_ADMIN_TOKEN": "{{ADMIN_TOKEN}}",66        "SI_LOG_JSON": "1",67        "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin",68        "PYTHONUNBUFFERED": "1"69      },70      "cron_restart": null,71      "autorestart": true,72      "max_memory_restart": "4G"73    },74    {75      "name": "satelliteindex-web",76      "manager": "pm2",77      "script": "/opt/homebrew/bin/node",78      "args": ["node_modules/next/dist/bin/next", "start", "-p", "8310", "-H", "0.0.0.0"],79      "interpreter": null,80      "cwd": "{{HOME}}/apps/satelliteindex/apps/web",81      "env": {82        "NODE_ENV": "production",83        "API_URL": "http://127.0.0.1:8311",84        "NEXT_PUBLIC_SITE_URL": "https://www.satelliteindex.io",85        "SI_ADMIN_TOKEN": "{{ADMIN_TOKEN}}",86        "NEXT_TELEMETRY_DISABLED": "1"87      },88      "cron_restart": null,89      "autorestart": true,90      "max_memory_restart": "2G"91    }92  ],93  "ngrok": null,94  "launchd": [],95  "env_overrides": {},96  "hooks": {97    "post_sync": [98      "mkdir -p $HOME/satelliteindex-data/{raw,logs,backups,cache} && echo '  data dirs ok'",99      "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'",100      "export PATH=\"/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:$PATH\"; DATABASE_URL=postgresql+asyncpg://satelliteindex:satelliteindex@127.0.0.1:5432/satelliteindex SI_DATA_DIR=$HOME/satelliteindex-data SI_LOG_JSON=0 .venv/bin/si migrate 2>&1 | tail -2 && DATABASE_URL=postgresql+asyncpg://satelliteindex:satelliteindex@127.0.0.1:5432/satelliteindex SI_DATA_DIR=$HOME/satelliteindex-data SI_LOG_JSON=0 .venv/bin/si seed | tail -1 && echo '  migrate + seed ok'",101      "export PATH=\"/opt/homebrew/bin:$PATH\"; pnpm install --frozen-lockfile --silent && echo '  web deps ok'",102      "export PATH=\"/opt/homebrew/bin:$PATH\"; cd apps/web && API_URL=http://127.0.0.1:8311 NEXT_PUBLIC_SITE_URL=https://www.satelliteindex.io NEXT_TELEMETRY_DISABLED=1 pnpm build 2>&1 | tail -3 && echo '  web build ok'"103    ],104    "post_start": []105  },106  "notes": "v0.1.0 (2026-09-11) : Next 16 :8310 (rewrites /api/v1/* → FastAPI 127.0.0.1:8311, 2 workers uvicorn), scheduler APScheduler (CelesTrak GP 2 h, groupes 2 h, SATCAT 24 h, analytics dérivées 1 h, backup pg_dump 04:40) ; Postgres 17 + Redis Homebrew locaux ; données hors repo ~/satelliteindex-data (raw gzip, backups, logs). Secret SI_ADMIN_TOKEN uniquement ici (laptop : deploy/.admin-token). Après le premier deploy : bash deploy/first-run.sh (ingestion initiale).",107  "tunnel": {108    "domain": "www.satelliteindex.io",109    "gateway": "BHS64",110    "redirects": [],111    "note": "DNS A www → 51.161.112.61 posé par l'utilisateur le 2026-09-11 ; apex satelliteindex.io sans A record (ajouter A @ → 51.161.112.61 puis redirects: [\"satelliteindex.io\"])"112  }113}114