spb/cancerindex
Public
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": ["pm2", "ngrok", "node", "pnpm", "postgresql@17"],25 "ram_gb": 6,26 "ports": [8250, 8251]27 },28 "ram_mb_observed": null,29 "size_mb": null,30 "placement": {31 "pin": null,32 "prefer": "M4M64b",33 "avoid": ["M3U96b", "M1M32"],34 "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."35 },36 "ngrok": {37 "name": "cancerindex-ngrok",38 "url": "www.cancerindex.io",39 "port": 825040 },41 "launchd": [],42 "env_overrides": {},43 "hooks": {44 "post_sync": [45 "pnpm install --frozen-lockfile",46 "psql -lqt | cut -d'|' -f1 | grep -qw cancerindex || createdb cancerindex",47 "psql cancerindex -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS unaccent; CREATE EXTENSION IF NOT EXISTS vector;'",48 "DATABASE_URL=postgres://localhost:5432/cancerindex pnpm db:migrate",49 "DATABASE_URL=postgres://localhost:5432/cancerindex pnpm db:seed",50 "DATABASE_URL=postgres://localhost:5432/cancerindex pnpm cix sources:sync",51 "mkdir -p data/raw data/cache logs",52 "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"53 ],54 "post_start": [55 "sleep 5 && curl -fsS http://127.0.0.1:8251/healthz",56 "sleep 2 && curl -fsS http://127.0.0.1:8250/healthz || curl -fsS -o /dev/null http://127.0.0.1:8250/"57 ]58 },59 "ka_repo": null,60 "processes": [61 {62 "name": "cancerindex-web",63 "manager": "pm2",64 "script": "/opt/homebrew/bin/node",65 "args": ["node_modules/next/dist/bin/next", "start", "-p", "8250", "-H", "0.0.0.0"],66 "interpreter": null,67 "cwd": "{{HOME}}/apps/cancerindex/apps/web",68 "env": {69 "NODE_ENV": "production",70 "DATABASE_URL": "postgres://localhost:5432/cancerindex",71 "NEXT_PUBLIC_SITE_URL": "https://www.cancerindex.io",72 "CI_API_URL": "http://127.0.0.1:8251",73 "API_PORT": "8251",74 "WEB_PORT": "8250",75 "CI_DATA_DIR": "{{HOME}}/apps/cancerindex/data",76 "ADMIN_TOKEN": "{{ADMIN_TOKEN}}",77 "NCBI_TOOL": "cancerindex",78 "NCBI_EMAIL": "spbou4@icloud.com",79 "NCBI_API_KEY": "",80 "SEER_API_KEY": "",81 "NEXT_TELEMETRY_DISABLED": "1"82 },83 "cron_restart": null,84 "autorestart": true,85 "max_memory_restart": "2G"86 },87 {88 "name": "cancerindex-api",89 "manager": "pm2",90 "script": "/opt/homebrew/bin/node",91 "args": ["node_modules/tsx/dist/cli.mjs", "apps/api/src/server.ts"],92 "interpreter": null,93 "cwd": "{{HOME}}/apps/cancerindex",94 "env": {95 "NODE_ENV": "production",96 "CI_SERVICE": "api",97 "DATABASE_URL": "postgres://localhost:5432/cancerindex",98 "API_HOST": "127.0.0.1",99 "API_PORT": "8251",100 "WEB_PORT": "8250",101 "CI_API_URL": "http://127.0.0.1:8251",102 "NEXT_PUBLIC_SITE_URL": "https://www.cancerindex.io",103 "CI_DATA_DIR": "{{HOME}}/apps/cancerindex/data",104 "ADMIN_TOKEN": "{{ADMIN_TOKEN}}",105 "LOG_LEVEL": "info"106 },107 "cron_restart": null,108 "autorestart": true,109 "max_memory_restart": "1G"110 },111 {112 "name": "cancerindex-worker",113 "manager": "pm2",114 "script": "/opt/homebrew/bin/node",115 "args": ["node_modules/tsx/dist/cli.mjs", "workers/main.ts"],116 "interpreter": null,117 "cwd": "{{HOME}}/apps/cancerindex",118 "env": {119 "NODE_ENV": "production",120 "CI_SERVICE": "worker",121 "DATABASE_URL": "postgres://localhost:5432/cancerindex",122 "CI_DATA_DIR": "{{HOME}}/apps/cancerindex/data",123 "WORKER_CONCURRENCY": "2",124 "CI_MAX_RUN_MINUTES": "45",125 "NCBI_TOOL": "cancerindex",126 "NCBI_EMAIL": "spbou4@icloud.com",127 "NCBI_API_KEY": "",128 "SEER_API_KEY": "",129 "LOG_LEVEL": "info"130 },131 "cron_restart": null,132 "autorestart": true,133 "max_memory_restart": "3G"134 },135 {136 "name": "cancerindex-backup",137 "manager": "pm2",138 "script": "/bin/bash",139 "args": ["deploy/backup.sh"],140 "interpreter": null,141 "cwd": "{{HOME}}/apps/cancerindex",142 "env": {143 "DATABASE_URL": "postgres://localhost:5432/cancerindex",144 "BACKUP_DIR": "{{HOME}}/apps/cancerindex/backups",145 "LOG_DIR": "{{HOME}}/apps/cancerindex/logs",146 "KEEP_DAILY": "14",147 "KEEP_WEEKLY": "8",148 "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin"149 },150 "cron_restart": "20 5 * * *",151 "autorestart": false,152 "max_memory_restart": null153 }154 ]155}156