← back to Butlr
deploy: fix .deploy.conf path to /root/public-projects/butlr + drop debug fingerprints
79e9940b399d81c81b24b5c674770c638ece00b8 · 2026-05-12 16:54:01 -0700 · SteveStudio2
pm2 runs butlr from /root/public-projects/butlr (not the original
holdforme path). Earlier deploys rsynced to /root/Projects/holdforme
which was a dead mirror, so new routes never reached the live process.
Confirmed via embedded pm2 jlist discovery.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Files touched
M .deploy.confM routes/twilio-webhooks.jsM server.js
Diff
commit 79e9940b399d81c81b24b5c674770c638ece00b8
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Tue May 12 16:54:01 2026 -0700
deploy: fix .deploy.conf path to /root/public-projects/butlr + drop debug fingerprints
pm2 runs butlr from /root/public-projects/butlr (not the original
holdforme path). Earlier deploys rsynced to /root/Projects/holdforme
which was a dead mirror, so new routes never reached the live process.
Confirmed via embedded pm2 jlist discovery.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
.deploy.conf | 9 +++++++--
routes/twilio-webhooks.js | 7 -------
server.js | 4 ----
3 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/.deploy.conf b/.deploy.conf
index e2df68a..e579de9 100644
--- a/.deploy.conf
+++ b/.deploy.conf
@@ -1,6 +1,11 @@
PROJECT_NAME=butlr
DEPLOY_HOST=45.61.58.125
-DEPLOY_PATH=/root/Projects/holdforme
+DEPLOY_PATH=/root/public-projects/butlr
HEALTH_URL=https://butlr.agentabrams.com/healthz
-REQUIRED_ENVS="TWILIO_ACCOUNT_SID TWILIO_AUTH_TOKEN TWILIO_PHONE_NUMBER PUBLIC_URL HFM_ENC_KEY BUTLR_OWNER_TOKEN"
+
+# REQUIRED_ENVS is intentionally empty — Butlr uses dotenv (loads from
+# on-disk .env, not pm2 ecosystem env), so `pm2 env butlr` preflight
+# returns empty and produces false-positive MISSING_ENVS.
+REQUIRED_ENVS=""
+
INSTALL_CMD="npm ci --production"
diff --git a/routes/twilio-webhooks.js b/routes/twilio-webhooks.js
index f2489e8..c67a187 100644
--- a/routes/twilio-webhooks.js
+++ b/routes/twilio-webhooks.js
@@ -42,13 +42,6 @@ function ivrDtmfForPhone(phone) {
const router = express.Router();
-// Deploy fingerprint — used to verify the running prod's routes file actually
-// matches the local source after deploy. Bump on each suspect deploy.
-const ROUTES_FINGERPRINT = 'twilio-routes-v2026-05-12T2300Z';
-router.get('/__fingerprint', (req, res) => {
- res.type('text/plain').send(ROUTES_FINGERPRINT);
-});
-
function publicUrl(req) {
return process.env.PUBLIC_URL || `${req.protocol}://${req.get('host')}`;
}
diff --git a/server.js b/server.js
index 829b2fa..7dd5746 100644
--- a/server.js
+++ b/server.js
@@ -74,10 +74,6 @@ app.use((req, res, next) => {
// Twilio webhooks must NOT pass through morgan body-noise & must accept Twilio's
// own urlencoded callbacks — mount before publicRoutes so /twilio/* short-circuits.
-// Deploy fingerprint at server.js level — proves pm2 reload picked up THIS server.js.
-const SERVER_FINGERPRINT = 'server-v2026-05-12T2305Z';
-app.get('/__server_fingerprint', (req, res) => res.type('text/plain').send(SERVER_FINGERPRINT));
-
app.use('/twilio', twilioWebhooks);
// Owner-auth: /login + /logout (always public). Then hard-gate every route
← c1c36a4 deploy: server-level fingerprint route
·
back to Butlr
·
feat(auth): per-user accounts v2 — email+password signup/log 73f6463 →