SPB Git forge

spb/cancerindex

Public
37commits 1branches 0releases
2.9 MBsize
maindefault branch
10 days agolast push
TypeScript 97.2% SQL 1.5% CSS 0.6% JavaScript 0.5%
5.4 KB · 183 lines json
Raw Blame History
1{2  "app": "cancerindex",3  "label": "CancerIndex — The global index of cancer",4  "domain": "www.cancerindex.io",5  "port": 8250,6  "health_path": "/healthz",7  "dir": "~/apps/cancerindex",8  "extra_paths": [],9  "sync_excludes": [10    "node_modules/",11    ".next/",12    ".git/",13    ".env*",14    "data/raw/",15    "data/cache/",16    "logs/",17    "tmp/",18    "/coverage/",19    ".DS_Store",20    ".claude/",21    "apps/web/.next/"22  ],23  "requires": {24    "runtimes": [25      "pm2",26      "node",27      "pnpm",28      "postgresql@17"29    ],30    "ram_gb": 6,31    "ports": [32      8250,33      825134    ]35  },36  "ram_mb_observed": 2500,37  "size_mb": 600,38  "placement": {39    "pin": null,40    "prefer": "M4M64b",41    "avoid": [42      "M3U96b",43      "M1M32"44    ],45    "reason": "M4M64b already runs Postgres 17 + pgvector, pnpm and redis with 772 GB of disk for the raw lake; M3U96b is reserved for hfmarketdata and M1M32 is the gateway."46  },47  "ngrok": null,48  "launchd": [],49  "env_overrides": {},50  "hooks": {51    "post_sync": [52      "pnpm install --frozen-lockfile",53      "psql -lqt | cut -d'|' -f1 | grep -qw cancerindex || createdb cancerindex",54      "psql cancerindex -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS unaccent; CREATE EXTENSION IF NOT EXISTS vector;'",55      "DATABASE_URL=postgres://localhost:5432/cancerindex pnpm db:migrate",56      "DATABASE_URL=postgres://localhost:5432/cancerindex pnpm db:seed",57      "DATABASE_URL=postgres://localhost:5432/cancerindex pnpm cix sources:sync",58      "mkdir -p data/raw data/cache logs",59      "NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 NEXT_PUBLIC_SITE_URL=https://www.cancerindex.io CI_API_URL=http://127.0.0.1:8251 DATABASE_URL=postgres://localhost:5432/cancerindex pnpm --filter @cancerindex/web build"60    ],61    "post_start": [62      "sleep 5 && curl -fsS http://127.0.0.1:8251/healthz",63      "sleep 2 && curl -fsS http://127.0.0.1:8250/healthz || curl -fsS -o /dev/null http://127.0.0.1:8250/"64    ]65  },66  "ka_repo": null,67  "processes": [68    {69      "name": "cancerindex-web",70      "manager": "pm2",71      "script": "/opt/homebrew/bin/node",72      "args": [73        "node_modules/next/dist/bin/next",74        "start",75        "-p",76        "8250",77        "-H",78        "0.0.0.0"79      ],80      "interpreter": null,81      "cwd": "{{HOME}}/apps/cancerindex/apps/web",82      "env": {83        "NODE_ENV": "production",84        "DATABASE_URL": "postgres://localhost:5432/cancerindex",85        "NEXT_PUBLIC_SITE_URL": "https://www.cancerindex.io",86        "CI_API_URL": "http://127.0.0.1:8251",87        "API_PORT": "8251",88        "WEB_PORT": "8250",89        "CI_DATA_DIR": "{{HOME}}/apps/cancerindex/data",90        "ADMIN_TOKEN": "{{ADMIN_TOKEN}}",91        "NCBI_TOOL": "cancerindex",92        "NCBI_EMAIL": "spbou4@icloud.com",93        "NCBI_API_KEY": "",94        "SEER_API_KEY": "",95        "NEXT_TELEMETRY_DISABLED": "1"96      },97      "cron_restart": null,98      "autorestart": true,99      "max_memory_restart": "2G"100    },101    {102      "name": "cancerindex-api",103      "manager": "pm2",104      "script": "/opt/homebrew/bin/node",105      "args": [106        "node_modules/tsx/dist/cli.mjs",107        "apps/api/src/server.ts"108      ],109      "interpreter": null,110      "cwd": "{{HOME}}/apps/cancerindex",111      "env": {112        "NODE_ENV": "production",113        "CI_SERVICE": "api",114        "DATABASE_URL": "postgres://localhost:5432/cancerindex",115        "API_HOST": "127.0.0.1",116        "API_PORT": "8251",117        "WEB_PORT": "8250",118        "CI_API_URL": "http://127.0.0.1:8251",119        "NEXT_PUBLIC_SITE_URL": "https://www.cancerindex.io",120        "CI_DATA_DIR": "{{HOME}}/apps/cancerindex/data",121        "ADMIN_TOKEN": "{{ADMIN_TOKEN}}",122        "LOG_LEVEL": "info"123      },124      "cron_restart": null,125      "autorestart": true,126      "max_memory_restart": "1G"127    },128    {129      "name": "cancerindex-worker",130      "manager": "pm2",131      "script": "/opt/homebrew/bin/node",132      "args": [133        "node_modules/tsx/dist/cli.mjs",134        "workers/main.ts"135      ],136      "interpreter": null,137      "cwd": "{{HOME}}/apps/cancerindex",138      "env": {139        "NODE_ENV": "production",140        "CI_SERVICE": "worker",141        "DATABASE_URL": "postgres://localhost:5432/cancerindex",142        "CI_DATA_DIR": "{{HOME}}/apps/cancerindex/data",143        "WORKER_CONCURRENCY": "2",144        "CI_MAX_RUN_MINUTES": "45",145        "NCBI_TOOL": "cancerindex",146        "NCBI_EMAIL": "spbou4@icloud.com",147        "NCBI_API_KEY": "",148        "SEER_API_KEY": "",149        "LOG_LEVEL": "info"150      },151      "cron_restart": null,152      "autorestart": true,153      "max_memory_restart": "3G"154    },155    {156      "name": "cancerindex-backup",157      "manager": "pm2",158      "script": "/bin/bash",159      "args": [160        "deploy/backup.sh"161      ],162      "interpreter": null,163      "cwd": "{{HOME}}/apps/cancerindex",164      "env": {165        "DATABASE_URL": "postgres://localhost:5432/cancerindex",166        "BACKUP_DIR": "{{HOME}}/apps/cancerindex/backups",167        "LOG_DIR": "{{HOME}}/apps/cancerindex/logs",168        "KEEP_DAILY": "14",169        "KEEP_WEEKLY": "8",170        "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin"171      },172      "cron_restart": "20 5 * * *",173      "autorestart": false,174      "max_memory_restart": null175    }176  ],177  "tunnel": {178    "domain": "www.cancerindex.io",179    "gateway": "BHS64",180    "note": "MacLustr Tunnel (WireGuard + Caddy on BHS64) since 2026-09-10; ngrok retired"181  }182}183