← back to Domain Landings
wall: host-scope admin surface to wall.agentabrams.com only (404 on butler + all tenant domains)
3ca6313a99334c54007981fff6a38b2b17e0168e · 2026-08-17 17:27:00 -0700 · Steve
Files touched
Diff
commit 3ca6313a99334c54007981fff6a38b2b17e0168e
Author: Steve <steve@designerwallcoverings.com>
Date: Mon Aug 17 17:27:00 2026 -0700
wall: host-scope admin surface to wall.agentabrams.com only (404 on butler + all tenant domains)
---
server.js | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/server.js b/server.js
index 0533709..4959106 100644
--- a/server.js
+++ b/server.js
@@ -288,8 +288,18 @@ render(); window.addEventListener('resize',applyDens);
</script></body></html>`);
}
+const WALL_HOST = process.env.WALL_HOST || 'wall.agentabrams.com'; // the wall lives ONLY here — never on butler/tenant domains
const server = http.createServer((req, res) => {
const host = hostOf(req);
+ // Host-scope the admin surface: /admin/* and /thumbs/ answer ONLY on the wall host (plus localhost for dev).
+ // Every tenant landing domain (818butler.com, beverlyhillsbutler.com, the 200+ others) gets a normal 404 here.
+ // use the REAL Host header (not the ?__host= preview override) so the admin gate can't be spoofed from a tenant domain
+ const rawHost = (req.headers['x-forwarded-host'] || req.headers.host || '').split(',')[0].trim().toLowerCase().replace(/:\d+$/, '').replace(/^www\./, '');
+ const onWallHost = rawHost === WALL_HOST || rawHost === 'localhost' || rawHost === '127.0.0.1';
+ if (!onWallHost && (req.url.startsWith('/admin/') || req.url.startsWith('/thumbs/'))) {
+ res.writeHead(404, { 'content-type': 'text/html; charset=utf-8' });
+ return res.end(notFound(host));
+ }
if (req.method === 'GET' && req.url.split('?')[0] === '/admin/wall') {
return adminWall(req, res);
}
← 11a4a85 wall: add liveness-probe report (cert-mismatch = the 'dead s
·
back to Domain Landings
·
ops: 443-cert remediation script + results (40 dead apex dom 4a71985 →