← back to Claude Webdev Accelerator
preview: pm2 ecosystem for the 5-app + 5-gate-proxy preview fleet (durable, self-healing)
cb4ca5ca361381bf7f64c8eaa21346211b024274 · 2026-07-16 07:09:12 -0700 · Steve
Files touched
Diff
commit cb4ca5ca361381bf7f64c8eaa21346211b024274
Author: Steve <steve@designerwallcoverings.com>
Date: Thu Jul 16 07:09:12 2026 -0700
preview: pm2 ecosystem for the 5-app + 5-gate-proxy preview fleet (durable, self-healing)
---
ecosystem.config.js | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/ecosystem.config.js b/ecosystem.config.js
new file mode 100644
index 0000000..74c4e22
--- /dev/null
+++ b/ecosystem.config.js
@@ -0,0 +1,34 @@
+// pm2 ecosystem for the accelerator preview fleet.
+// 5 app servers (localhost 3901-3905) + 5 basic-auth gate-proxies (4901-4905).
+// The dw-followup cloudflared tunnel points <slug>.agentabrams.com -> 127.0.0.1:490x (the proxy).
+// Start: pm2 start preview-fleet.ecosystem.js && pm2 save
+// Reboot persistence: run the sudo line printed by `pm2 startup` (Steve-gated).
+const HOME = process.env.HOME;
+const ACCEL = __dirname;
+const GATE = 'admin:DW2024!';
+const APPS = [
+ { slug: 'estimate-instant', app: 3901, proxy: 4901 },
+ { slug: 'trade-portal', app: 3902, proxy: 4902 },
+ { slug: 'sample-box', app: 3903, proxy: 4903 },
+ { slug: 'reno-visualizer', app: 3904, proxy: 4904 },
+ { slug: 'permit-radar', app: 3905, proxy: 4905 },
+];
+
+const apps = [];
+for (const { slug, app, proxy } of APPS) {
+ apps.push({
+ name: `prev-${slug}`,
+ cwd: `${HOME}/Projects/${slug}`,
+ script: 'server.js',
+ env: { PORT: String(app) }, // app runs plain on localhost; the proxy is the gate
+ autorestart: true, max_restarts: 20, min_uptime: '5s',
+ });
+ apps.push({
+ name: `gate-${slug}`,
+ cwd: ACCEL,
+ script: 'scripts/gate-proxy.js',
+ env: { PORT: String(proxy), UPSTREAM: `127.0.0.1:${app}`, GATE_AUTH: GATE },
+ autorestart: true, max_restarts: 20, min_uptime: '5s',
+ });
+}
+module.exports = { apps };
← 07a4477 preview: zero-dep basic-auth gate-proxy (fully gate public p
·
back to Claude Webdev Accelerator
·
preview: gated repo viewer at accelerator.agentabrams.com (r a481cba →