Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions dev2/dev2-site
Original file line number Diff line number Diff line change
Expand Up @@ -1232,10 +1232,18 @@ def cmd_provision(args):
# Secrets come from the logicsrc team vault on every deploy (deploy-app.sh
# sync_env_from_vault): sites.d "vault" names it, else <repo name>--prod; "vault": ""
# turns it off. env_remove keys are never taken from the vault.
vault = s.get("vault", f"{s['repo'].split('/')[-1]}--prod" if s.get("repo") else "")
# logicsrc vault names are lowercase letters, digits and dashes: a repo like
# c0ncerts.com becomes c0ncerts-com--prod (a dotted name is refused, and the
# deploy then silently pulls nothing).
default_vault = (re.sub(r"[^a-z0-9-]+", "-", s["repo"].split("/")[-1].lower()).strip("-") + "--prod") if s.get("repo") else ""
vault = s.get("vault", default_vault)
if vault:
deploy_env += f"VAULT={vault}\nVAULT_TEAM={s.get('vault_team', 'profullstack')}\n"
deploy_env += f"VAULT_SKIP=\"{' '.join(s.get('env_remove') or [])}\"\n"
# vault_skip: keys never taken from the vault but kept in app.env (signing
# keys logicsrc refuses to store, values the vault cannot round-trip,
# vault-only keys the site does not use). env_remove keys are skipped too.
skip = sorted(set(s.get("env_remove") or []) | set(s.get("vault_skip") or []))
deploy_env += f"VAULT_SKIP=\"{' '.join(skip)}\"\n"
ssh("root", f"install -d -m 2755 -o {DEPLOY_USER} -g {DEPLOY_USER} {root} {root}/volumes")
for v in s["volumes"] + [v for c in s["companions"] for v in c.get("volumes", [])]:
ssh("root", f"install -d -m 0777 {root}/volumes/{shlex.quote(v['name'])}")
Expand Down
7 changes: 6 additions & 1 deletion dev2/sites.d/aiornot.vote.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,10 @@
"redirect_to": {
"default": "https://aiornot.pwa.pit.world"
},
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses."
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses.",
"vault_skip": [
"COINPAY_API_URL",
"SEED_BATCH_SIZE",
"STORAGE_PROVIDER"
]
}
8 changes: 6 additions & 2 deletions dev2/sites.d/app.logicsrc.com.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{
"start_command": "npm --workspace @logicsrc/pwa run start",
"health_path": "/healthz",
"env_remove": ["TURSO_DATABASE_URL", "TURSO_AUTH_TOKEN"],
"notes": "The service is apps/pwa (Railway rootDirectory); the root .nixpacks CMD starts the Next marketing site instead, so the compose command overrides it. Turso -> shared Postgres 2026-09-25 (profullstack/logicsrc#218)."
"env_remove": [
"TURSO_DATABASE_URL",
"TURSO_AUTH_TOKEN"
],
"notes": "The service is apps/pwa (Railway rootDirectory); the root .nixpacks CMD starts the Next marketing site instead, so the compose command overrides it. Turso -> shared Postgres 2026-09-25 (profullstack/logicsrc#218).",
"vault": "app-logicsrc-com--prod"
}
7 changes: 5 additions & 2 deletions dev2/sites.d/app.moshcode.sh.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{
"health_path": "/healthz",
"env_remove": ["DATABASE_AUTH_TOKEN"],
"notes": "web app is apps/pwa (own deps); plain Dockerfile on main, health /healthz. Turso -> shared Postgres 2026-09-25 (moshcoder/moshcode#551): DATABASE_URL is rewritten to the cluster URL by provision, the Turso token retired"
"env_remove": [
"DATABASE_AUTH_TOKEN"
],
"notes": "web app is apps/pwa (own deps); plain Dockerfile on main, health /healthz. Turso -> shared Postgres 2026-09-25 (moshcoder/moshcode#551): DATABASE_URL is rewritten to the cluster URL by provision, the Turso token retired",
"vault": "app-moshcode-sh--prod"
}
69 changes: 68 additions & 1 deletion dev2/sites.d/b1dz.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,72 @@
},
"mem_limit": "2g",
"node_heap_mb": 768,
"mem_note": "2026-10-01: four node processes + redis in one container, 540 MB steady"
"mem_note": "2026-10-01: four node processes + redis in one container, 540 MB steady",
"vault_skip": [
"ARB_AUTO_SEED_COOLDOWN_MS",
"ARB_AUTO_SEED_EVAL_WINDOW_MS",
"ARB_AUTO_SEED_GLOBAL_USD",
"ARB_AUTO_SEED_MIN_USD",
"ARB_AUTO_SEED_PAUSE_MS",
"ARB_AUTO_SEED_PER_PAIR_USD",
"ARB_AUTO_SEED_PROFIT_RATIO",
"ARB_EXECUTOR_UNISWAP_BASE",
"ARB_LIQ_COOLDOWN_MS",
"ARB_LIQ_MAX_SLICE_USD",
"ARB_LIQ_MIN_ASSET_USD",
"ARB_MAX_TRADE_USD",
"ARB_MIN_NET_BPS",
"ARB_MIN_NET_USD",
"ARB_MODE",
"ARB_SIZE_USD",
"ARB_TRIANGULAR_ANCHOR",
"ARB_TRIANGULAR_FEE_TIER",
"ARB_TRIANGULAR_INTERVAL_MS",
"ARB_TRIANGULAR_MAX_PER_TICK",
"ARB_TRIANGULAR_MIN_NET_USD",
"ARB_TRIANGULAR_SIZE_USD",
"ARB_TRIANGULAR_TOKENS",
"BUY_SLIPPAGE_BPS",
"COINPAY_API_URL",
"DAILY_LOSS_LIMIT_PCT",
"DCA_COINS",
"DCA_ENABLED",
"DCA_EXCHANGES",
"DCA_INTERVAL_MS",
"DCA_MAX_COINS",
"DCA_TOTAL_ALLOCATION_PCT",
"DEX_SLIPPAGE_BPS",
"DEX_TRADE_BUDGET_USD",
"DEX_TRADE_EXECUTION",
"DEX_TRADE_MAX_USD",
"DOPPLER_CONFIG",
"DOPPLER_ENVIRONMENT",
"DOPPLER_PROJECT",
"ENABLE_PROXY",
"ENTRY_MIN_SCORE",
"EVM_WALLET_ADDRESS",
"GEMINI_NONCE_OFFSET",
"HARD_STOP_PCT",
"MIN_HOLD_SECS",
"MIN_NET_PROFIT_PCT",
"MIN_PER_EXCHANGE_VOL_USD",
"MIN_VOLUME_USD",
"PROXY_PASSWORD",
"PROXY_URL",
"PROXY_USERNAME",
"PUMPFUN_ENABLE_SCRAPE",
"PUMPFUN_TRADE_EXECUTION",
"PUMPFUN_TRADE_SOL",
"ROTATE_ADVERSE_PCT",
"ROTATE_MIN_HOLD_MS",
"SOLANA_WALLET_ADDRESS",
"TAKE_PROFIT_PCT",
"TRADING_ENABLED",
"V2_MAX_PAIRS",
"V2_MAX_TRADE_USD",
"V2_MIN_NET_BPS",
"V2_MIN_NET_USD",
"V2_MODE",
"V2_SIZE_USD"
]
}
7 changes: 6 additions & 1 deletion dev2/sites.d/bittorrented.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,10 @@
"max_body": "512m"
}
],
"nginx_app": false
"nginx_app": false,
"vault_skip": [
"DOPPLER_CONFIG",
"DOPPLER_ENVIRONMENT",
"DOPPLER_PROJECT"
]
}
5 changes: 4 additions & 1 deletion dev2/sites.d/brisk.news.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,8 @@
"default": "https://brisk.pwa.pit.world",
"supabase.brisk.news": "https://brisk-supabase.pwa.pit.world"
},
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses."
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses.",
"vault_skip": [
"X402_PRIVATE_KEY"
]
}
6 changes: 5 additions & 1 deletion dev2/sites.d/c0ncerts.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,9 @@
"default": "https://c0ncerts.pwa.pit.world",
"supabase.c0ncerts.com": "https://c0ncerts-supabase.pwa.pit.world"
},
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses."
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses.",
"vault_skip": [
"SUPABASE_DB_PASSWORD",
"SUPABASE_JWT_SECRET"
]
}
8 changes: 7 additions & 1 deletion dev2/sites.d/coinpayportal.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,11 @@
"SUPABASE_SERVICE_ROLE_KEY": "secret:SUPABASE_SERVICE_ROLE_KEY"
},
"mem_limit": "2g",
"mem_note": "2026-10-01: next + tor, 420 MB steady, 570 MB peak"
"mem_note": "2026-10-01: next + tor, 420 MB steady, 570 MB peak",
"vault_skip": [
"DOPPLER_CONFIG",
"DOPPLER_ENVIRONMENT",
"DOPPLER_PROJECT",
"REPUTATION_SIGNING_SECRET"
]
}
10 changes: 9 additions & 1 deletion dev2/sites.d/crawlproof.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,13 @@
"app": "3g"
},
"node_heap_mb": 1024,
"mem_note": "predates the kit; next-server + tsx audit worker in one container, 730 MB steady"
"mem_note": "predates the kit; next-server + tsx audit worker in one container, 730 MB steady",
"vault": "crawlproof-com--prod",
"vault_skip": [
"BACKEND_AI_OPENAI_MODEL",
"BACKEND_AI_PROVIDER",
"CRAWLPROOF_DEV_BOX_TOKEN",
"GITHUB_APP_PRIVATE_KEY",
"X402_PRIVATE_KEY"
]
}
6 changes: 5 additions & 1 deletion dev2/sites.d/d1sks.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,9 @@
"redirect_to": {
"default": "https://d1sks.pwa.pit.world"
},
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses."
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses.",
"vault_skip": [
"OPERATOR_URL",
"POLL_MINUTES"
]
}
5 changes: 4 additions & 1 deletion dev2/sites.d/goingbroke.now.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,8 @@
"redirect_to": {
"default": "https://goingbroke.pwa.pit.world"
},
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses."
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses.",
"vault_skip": [
"PORT"
]
}
14 changes: 13 additions & 1 deletion dev2/sites.d/hqtui.com.json
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
{ "branch": "main", "env_remove": ["TURSO_DATABASE_URL", "TURSO_AUTH_TOKEN"] }
{
"branch": "main",
"env_remove": [
"TURSO_DATABASE_URL",
"TURSO_AUTH_TOKEN"
],
"vault_skip": [
"NPM_SCOPE",
"RAILWAY_PROJECT_ID",
"RAILWAY_SERVICE",
"RESEND_API_KEY"
]
}
3 changes: 3 additions & 0 deletions dev2/sites.d/infernetprotocol.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,8 @@
"DOPPLER_CONFIG",
"DOPPLER_ENVIRONMENT",
"DOPPLER_PROJECT"
],
"vault_skip": [
"DID_PRIVATE_KEY_BASE64"
]
}
7 changes: 6 additions & 1 deletion dev2/sites.d/installer.pairux.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,10 @@
"SUPABASE_SERVICE_ROLE_KEY": "secret:SUPABASE_SERVICE_ROLE_KEY",
"NEXT_PUBLIC_SUPABASE_URL": "https://supabase.pairux.com",
"SUPABASE_DB_PASSWORD": "secret:SUPABASE_DB_PASSWORD"
}
},
"vault": "installer-pairux-com--prod",
"vault_skip": [
"AUR_SSH_KEY",
"GPG_PRIVATE_KEY"
]
}
13 changes: 12 additions & 1 deletion dev2/sites.d/logicsrc.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,16 @@
"SUPABASE_SECRET_KEY": "secret:SUPABASE_SECRET_KEY",
"SUPABASE_DB_PASSWORD": "secret:SUPABASE_DB_PASSWORD",
"SUPABASE_URL": "https://supabase.logicsrc.com"
}
},
"vault_skip": [
"COMMANDBOARD_API_URL",
"CREDSHARE_EMAIL_FROM",
"DATABASE_URL",
"LOGICSRC_SCHEMA_VERSION",
"MIGRATE_DATABASE_URL",
"NODE_ENV",
"PUBLIC_ORIGIN",
"RESEND_API_KEY",
"SESSION_SECRET"
]
}
8 changes: 7 additions & 1 deletion dev2/sites.d/media2markdown.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,11 @@
"redirect_to": {
"default": "https://media2markdown.pwa.pit.world"
},
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses."
"redirect_note": "2026-11-08: domain retired; the app runs on as <name>.pwa.pit.world (dev2/edge/edge.json). This vhost only 308s there until the domain lapses.",
"vault_skip": [
"ACCESS_PASSWORD",
"AUTH_EMAIL",
"AUTH_JWT_SECRET",
"AUTH_PASSWORD"
]
}
5 changes: 4 additions & 1 deletion dev2/sites.d/meshhook.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@
"TURSO_AUTH_TOKEN"
],
"node_heap_mb": 384,
"mem_note": "three node processes in one container"
"mem_note": "three node processes in one container",
"vault_skip": [
"X402_PRIVATE_KEY"
]
}
11 changes: 10 additions & 1 deletion dev2/sites.d/moshcoding.com.json
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
{ "branch": "master", "env_remove": ["TURSO_DATABASE_URL", "TURSO_AUTH_TOKEN"] }
{
"branch": "master",
"env_remove": [
"TURSO_DATABASE_URL",
"TURSO_AUTH_TOKEN"
],
"vault_skip": [
"DATA_DIR"
]
}
7 changes: 6 additions & 1 deletion dev2/sites.d/nichedb.dev.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,10 @@
"mem_limits": {
"app": "6g"
},
"mem_note": "predates the kit (hand-made compose); Bun, 570 MB steady, 4.7 GB peak; redis maxmemory 2gb -> 3g"
"mem_note": "predates the kit (hand-made compose); Bun, 570 MB steady, 4.7 GB peak; redis maxmemory 2gb -> 3g",
"vault": "nichedb--prod",
"vault_skip": [
"NICHEDB_LYRICS_KEY",
"PORT"
]
}
9 changes: 8 additions & 1 deletion dev2/sites.d/nixamp.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,12 @@
"mem_limit": "2g",
"mem_note": "2026-10-01: Bun, 540 MB steady, 690 MB peak",
"standby_port": 13216,
"standby_note": "2026-10-21: deploys start the new build here first (nginx backup), so nixamp.com never shows the maintenance page"
"standby_note": "2026-10-21: deploys start the new build here first (nginx backup), so nixamp.com never shows the maintenance page",
"vault_skip": [
"FAL_KEY",
"NICHEDB_LYRICS_KEY",
"NIXAMP_OPENAI_MODEL",
"NIXAMP_OPENAI_URL",
"NIXAMP_WORKERS_AI_TOKEN"
]
}
3 changes: 2 additions & 1 deletion dev2/sites.d/obscura.openmcp.logicsrc.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
"image": "node:24-bookworm-slim",
"start_command": "sh -c 'node -e \"fetch(process.argv[1]).then(r=>{if(!r.ok)throw new Error(r.status);return r.body.pipeTo(require(\\\"stream\\\").Writable.toWeb(process.stdout))})\" https://github.com/h4ckf0r0day/obscura/releases/download/v0.2.2/obscura-x86_64-linux-stealth.tar.gz | tar -xz -C /usr/local/bin obscura obscura-worker && until npx -y @logicsrc/openmcp@0.4.0 serve; do echo retrying in 20s; sleep 20; done'",
"health_path": "/healthz",
"notes": "stock node image: downloads the obscura binary then runs npx @logicsrc/openmcp (Railway startCommand); serves openmcp.logicsrc.com and obscura.openmcp.logicsrc.com"
"notes": "stock node image: downloads the obscura binary then runs npx @logicsrc/openmcp (Railway startCommand); serves openmcp.logicsrc.com and obscura.openmcp.logicsrc.com",
"vault": "obscura-openmcp-logicsrc-com--prod"
}
3 changes: 2 additions & 1 deletion dev2/sites.d/openaccess.logicsrc.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
"image": "node:24-alpine",
"start_command": "sh -c 'until npx -y @logicsrc/openaccess@0.3.0 serve; do echo retrying in 20s; sleep 20; done'",
"health_path": "/healthz",
"notes": "stock node image running npx @logicsrc/openaccess (Railway startCommand)"
"notes": "stock node image running npx @logicsrc/openaccess (Railway startCommand)",
"vault": "openaccess-logicsrc-com--prod"
}
17 changes: 17 additions & 0 deletions dev2/sites.d/outreachgraph.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,22 @@
"name": "emailqueue",
"network": "mynapostercom_default"
}
],
"vault": "outreachgraph-com--prod",
"vault_skip": [
"ANTHROPIC_API_KEY",
"APP_VERSION",
"EMAIL_FROM",
"GEMINI_API_KEY",
"GITHUB_TOKEN",
"OPENAI_API_KEY",
"REDIS_URL",
"RESEND_API_KEY",
"SECRET_ENCRYPTION_KEY",
"SEORANK_API_KEY",
"TURSO_DATABASE_URL",
"VALUESERP_API_KEY",
"WORKERS_AI_TOKEN",
"WORKER_TICK_MS"
]
}
11 changes: 11 additions & 0 deletions dev2/sites.d/pairux.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,16 @@
},
"keep_services": [
"realtime"
],
"vault_skip": [
"AUR_SSH_KEY",
"EXTELLA_AGENT_ID",
"EXTELLA_API_TOKEN",
"EXTELLA_EMAIL",
"EXTELLA_PASSWORD",
"EXTELLA_PIN",
"EXTELLA_USER_ID",
"GPG_PRIVATE_KEY",
"PAIRUX_PARTNERS"
]
}
7 changes: 6 additions & 1 deletion dev2/sites.d/postammo.com.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,10 @@
"SUPABASE_DB_PASSWORD": "secret:SUPABASE_DB_PASSWORD",
"SUPABASE_URL": "https://supabase.postammo.com",
"SUPABASE_JWT_JWKS_URL": "https://supabase.postammo.com/auth/v1/.well-known/jwks.json"
}
},
"vault_skip": [
"DOPPLER_CONFIG",
"DOPPLER_ENVIRONMENT",
"DOPPLER_PROJECT"
]
}
Loading
Loading