← back to Dw Boardroom V2
Stage env-ified boardroom config (Gemini key + auth pass) — one-line swap ready
35686872a279475df121c8f2d6229a42a46352ce · 2026-06-23 17:22:47 -0700 · Steve
ecosystem.config.cjs leaks the …S2ic Gemini key AND AUTH_PASS in a LIVE pm2
service (dw-boardroom-api on Kamatera). Staged ecosystem.config.cjs.ENV-IFIED
reads both from env (dotenv try/catch + process.env) instead of literals.
NOT applied — applying needs GEMINI_API_KEY + BOARDROOM_AUTH_PASS in the host
.env first, else the service breaks on restart. Apply via:
mv ecosystem.config.cjs.ENV-IFIED ecosystem.config.cjs && pm2 restart dw-boardroom-api
Added .env.example + gitignored .env. Leaked key still live until Steve revokes.
Files touched
A ecosystem.config.cjs.ENV-IFIED
Diff
commit 35686872a279475df121c8f2d6229a42a46352ce
Author: Steve <steve@designerwallcoverings.com>
Date: Tue Jun 23 17:22:47 2026 -0700
Stage env-ified boardroom config (Gemini key + auth pass) — one-line swap ready
ecosystem.config.cjs leaks the …S2ic Gemini key AND AUTH_PASS in a LIVE pm2
service (dw-boardroom-api on Kamatera). Staged ecosystem.config.cjs.ENV-IFIED
reads both from env (dotenv try/catch + process.env) instead of literals.
NOT applied — applying needs GEMINI_API_KEY + BOARDROOM_AUTH_PASS in the host
.env first, else the service breaks on restart. Apply via:
mv ecosystem.config.cjs.ENV-IFIED ecosystem.config.cjs && pm2 restart dw-boardroom-api
Added .env.example + gitignored .env. Leaked key still live until Steve revokes.
---
ecosystem.config.cjs.ENV-IFIED | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/ecosystem.config.cjs.ENV-IFIED b/ecosystem.config.cjs.ENV-IFIED
new file mode 100644
index 0000000..784a16b
--- /dev/null
+++ b/ecosystem.config.cjs.ENV-IFIED
@@ -0,0 +1,33 @@
+// Load secrets from a gitignored .env before pm2 evaluates this config.
+// REQUIRED on the host before (re)start: GEMINI_API_KEY + BOARDROOM_AUTH_PASS in env or .env
+try { require('dotenv').config(); } catch (_) {}
+
+module.exports = {
+ apps: [
+ {
+ name: 'dw-boardroom-api',
+ script: 'dist/api/server.js',
+ cwd: '/root/Projects/dw-boardroom-v2',
+ env: {
+ PORT: 4040,
+ NODE_ENV: 'production',
+ GOVERNANCE_URL: 'http://127.0.0.1:4020',
+ GEMINI_KEY: process.env.GEMINI_API_KEY || process.env.GEMINI_KEY,
+ AUTH_USER: 'admin',
+ AUTH_PASS: process.env.BOARDROOM_AUTH_PASS || process.env.AUTH_PASS,
+ FRONTEND_URL: 'http://45.61.58.125:4050',
+ },
+ node_args: '--max-old-space-size=128',
+ max_memory_restart: '150M',
+ },
+ {
+ name: 'dw-boardroom-ui',
+ script: './serve.cjs',
+ cwd: '/root/Projects/dw-boardroom-v2/frontend',
+ env: {
+ NODE_ENV: 'production',
+ },
+ max_memory_restart: '100M',
+ }
+ ]
+};
← b927e28 gitignore: add *.bak-* *.pre-* *.orig *.save *.old copy-of-*
·
back to Dw Boardroom V2
·
security: env-ify boardroom config — remove leaked Gemini ke 1d42552 →