← back to Debate Ring Viewer
snapshot: 6 file(s) changed, +2 new, ~4 modified
26a85f9c45a701bebdba6fc400cdf760331b8ac6 · 2026-05-13 08:57:48 -0700 · Steve
Files touched
A ecosystem.config.cjsM logs/weekly-reel.stderr.logM package-lock.jsonM package.jsonA public/favicon.svgM src/server.js
Diff
commit 26a85f9c45a701bebdba6fc400cdf760331b8ac6
Author: Steve <steve@designerwallcoverings.com>
Date: Wed May 13 08:57:48 2026 -0700
snapshot: 6 file(s) changed, +2 new, ~4 modified
---
ecosystem.config.cjs | 19 +++++++++++++++++++
logs/weekly-reel.stderr.log | 1 +
package-lock.json | 12 +++++++++++-
package.json | 3 ++-
public/favicon.svg | 4 ++++
src/server.js | 3 +++
6 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs
new file mode 100644
index 0000000..2f3a789
--- /dev/null
+++ b/ecosystem.config.cjs
@@ -0,0 +1,19 @@
+module.exports = {
+ apps: [{
+ name: "debate-ring",
+ script: "server.js",
+ cwd: __dirname,
+ env: {
+ NEXT_TELEMETRY_DISABLED: "1",
+ VITE_HOST: "0.0.0.0",
+ HOSTNAME: "0.0.0.0",
+ GUNICORN_BIND: "0.0.0.0:8000",
+ UVICORN_HOST: "0.0.0.0",
+ FLASK_RUN_HOST: "0.0.0.0",
+ BIND: "0.0.0.0",
+ HOST: "0.0.0.0",
+ },
+ autorestart: true,
+ max_memory_restart: "300M",
+ }],
+};
diff --git a/logs/weekly-reel.stderr.log b/logs/weekly-reel.stderr.log
index 6907d2b..c4a24de 100644
--- a/logs/weekly-reel.stderr.log
+++ b/logs/weekly-reel.stderr.log
@@ -58,3 +58,4 @@ SyntaxError: missing ) after argument list
at node:internal/main/eval_string:74:3
Node.js v22.14.0
+/Users/stevestudio2/Projects/debate-ring-viewer/scripts/weekly-highlight-reel.sh: line 10: GEORGE_AUTH: GEORGE_AUTH must be set (user:pass for http://localhost:9850)
diff --git a/package-lock.json b/package-lock.json
index 7086bf1..c4f9497 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,7 +8,8 @@
"name": "debate-ring-viewer",
"version": "0.1.0",
"dependencies": {
- "express": "^4.19.2"
+ "express": "^4.19.2",
+ "helmet": "^8.1.0"
}
},
"node_modules/accepts": {
@@ -409,6 +410,15 @@
"node": ">= 0.4"
}
},
+ "node_modules/helmet": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/helmet/-/helmet-8.1.0.tgz",
+ "integrity": "sha512-jOiHyAZsmnr8LqoPGmCjYAaiuWwjAPLgY8ZX2XrmHawt99/u1y6RgrZMTeoPfpUbV96HOalYgz1qzkRbw54Pmg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/http-errors": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
diff --git a/package.json b/package.json
index c878f3e..e47313b 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
"start": "node src/server.js"
},
"dependencies": {
- "express": "^4.19.2"
+ "express": "^4.19.2",
+ "helmet": "^8.1.0"
}
}
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 0000000..df58742
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<rect width="32" height="32" rx="6" fill="#10b981"/>
+<text x="50%" y="55%" text-anchor="middle" dominant-baseline="middle" font-size="20" font-family="Apple Color Emoji, Segoe UI Emoji, sans-serif" fill="white">D</text>
+</svg>
\ No newline at end of file
diff --git a/src/server.js b/src/server.js
index 3c20540..d99d6d8 100644
--- a/src/server.js
+++ b/src/server.js
@@ -2,6 +2,7 @@
// Reads runs from ~/.claude/skills/claude-codex/runs/, exposes JSON API,
// serves the boxing-ring SPA on :9730.
import express from 'express';
+import helmet from 'helmet';
import fs from 'fs/promises';
import fsync from 'fs';
import path from 'path';
@@ -57,6 +58,8 @@ async function readHead(fp, maxBytes) {
}
const app = express();
+// Security headers via helmet (added 2026-05-04 overnight YOLO loop)
+app.use(helmet({ contentSecurityPolicy: false }));
app.use(express.json());
const __dirname = path.dirname(fileURLToPath(import.meta.url));
app.use(express.static(path.join(__dirname, '..', 'public')));
← 2b78474 untrack node_modules per standing rule (was tracking 1635 fi
·
back to Debate Ring Viewer
·
Link favicon.svg in head (use branded SVG, not .ico fallback 04f4c6b →