← back to Dw Domain Fleet
fleet: deploy-safe showroom-vendor require — fall back to in-repo list off-Mac2 (TK-11322)
bab12e12ddfe8093bf87b7fe29a8697fa6a2080f · 2026-09-09 14:58:54 -0700 · Steve Abrams
Root cause of the 502s after repoint: server.js required ~/Projects/fix-live-board/
config/showroom-vendor.cjs, which exists on Mac2 but NOT Kamatera -> MODULE_NOT_FOUND
crashed every dwf-* on boot. Now try/catch with a fallback that reads the in-repo
config/showroom-vendors.json, so the fleet boots on any box. Verified funnel+monetize
boot 200 with HOME unset.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S81Y5KkGKrUHg2mwWQtD96
Files touched
Diff
commit bab12e12ddfe8093bf87b7fe29a8697fa6a2080f
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Sep 9 14:58:54 2026 -0700
fleet: deploy-safe showroom-vendor require — fall back to in-repo list off-Mac2 (TK-11322)
Root cause of the 502s after repoint: server.js required ~/Projects/fix-live-board/
config/showroom-vendor.cjs, which exists on Mac2 but NOT Kamatera -> MODULE_NOT_FOUND
crashed every dwf-* on boot. Now try/catch with a fallback that reads the in-repo
config/showroom-vendors.json, so the fleet boots on any box. Verified funnel+monetize
boot 200 with HOME unset.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S81Y5KkGKrUHg2mwWQtD96
---
server.js | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/server.js b/server.js
index 57ecea1..5c9ed45 100644
--- a/server.js
+++ b/server.js
@@ -26,7 +26,19 @@ const catalog = require('./shared/catalog');
const { sortProducts } = require('./shared/sort');
const render = require('./shared/render');
// Canonical showroom-vendor primitive (list + logic in fix-live-board/config). TK-11186.
-const { isShowroomVendor } = require(path.join(process.env.HOME, 'Projects/fix-live-board/config/showroom-vendor.cjs'));
+// Deploy-safe: fix-live-board lives on Mac2, not on Kamatera — fall back to the
+// in-repo showroom list (config/showroom-vendors.json) so the fleet boots anywhere.
+let isShowroomVendor;
+try {
+ ({ isShowroomVendor } = require(path.join(process.env.HOME, 'Projects/fix-live-board/config/showroom-vendor.cjs')));
+} catch (e) {
+ let _showroom = [];
+ try { _showroom = JSON.parse(fs.readFileSync(path.join(__dirname, 'config', 'showroom-vendors.json'), 'utf8')); } catch (_) {}
+ const _norm = s => String(s == null ? '' : s).trim().toLowerCase();
+ const _set = new Set(_showroom.map(_norm));
+ isShowroomVendor = v => _set.has(_norm(v));
+ console.log(`[${SITE}] showroom-vendor: using in-repo fallback (${_set.size} vendors)`);
+}
// Monetize (parked/for-sale content) sites are standalone — they never serve the
// DW catalog/funnel, so skip the entire catalog + hero + image-proxy build for
← 39b399d fleet: repoint all 43 sites to free ports 11100-11142 (fix E
·
back to Dw Domain Fleet
·
monetize DEPTH: add /articles hub + per-article long-form pa 64e2a9d →