[object Object]

← back to Quadrille House Site

add deploy config: .deploy.conf (port 9944), ecosystem.config.js, deploy-kamatera.sh

732ad3b944fa5d66f6f040424757fd7193743bf3 · 2026-06-23 18:09:09 -0700 · Steve Abrams

pm2 process quadrille-house-site live at root@45.61.58.125:9944 (health OK).
Excludes public/lookbooks (657 MB), data/assets, node_modules, .git from rsync.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files touched

Diff

commit 732ad3b944fa5d66f6f040424757fd7193743bf3
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue Jun 23 18:09:09 2026 -0700

    add deploy config: .deploy.conf (port 9944), ecosystem.config.js, deploy-kamatera.sh
    
    pm2 process quadrille-house-site live at root@45.61.58.125:9944 (health OK).
    Excludes public/lookbooks (657 MB), data/assets, node_modules, .git from rsync.
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---
 .deploy.conf        |  3 ++-
 deploy-kamatera.sh  | 37 +++++++++++++++++++++++++++++++++++++
 ecosystem.config.js | 15 +++++++++++++++
 3 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/.deploy.conf b/.deploy.conf
index 50acc03..663133b 100644
--- a/.deploy.conf
+++ b/.deploy.conf
@@ -1,3 +1,4 @@
 PROJECT_NAME=quadrille-house-site
 DEPLOY_PATH=/root/Projects/quadrille-house-site
-HEALTH_URL=http://127.0.0.1:9943/api/config
+HEALTH_URL=http://127.0.0.1:9944/api/config
+PORT=9944
diff --git a/deploy-kamatera.sh b/deploy-kamatera.sh
new file mode 100755
index 0000000..4adbd13
--- /dev/null
+++ b/deploy-kamatera.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+# deploy-kamatera.sh — rsync + npm ci + pm2 startOrReload + 4-layer health check
+# Usage: bash deploy-kamatera.sh
+set -euo pipefail
+
+REMOTE=root@45.61.58.125
+REMOTE_DIR=/root/Projects/quadrille-house-site
+PORT=9944
+HEALTH=http://127.0.0.1:${PORT}/api/config
+
+echo "==> Step 1: rsync (exclude node_modules, .git, public/lookbooks, data/assets)"
+rsync -az --delete \
+  --exclude=node_modules \
+  --exclude=.git \
+  --exclude='public/lookbooks' \
+  --exclude='data/assets' \
+  --exclude='.env*' \
+  --exclude='*.log' \
+  --exclude='.DS_Store' \
+  . ${REMOTE}:${REMOTE_DIR}/
+
+echo "==> Step 2: npm ci on remote"
+ssh ${REMOTE} "cd ${REMOTE_DIR} && npm ci --omit=dev"
+
+echo "==> Step 3: pm2 startOrReload"
+ssh ${REMOTE} "cd ${REMOTE_DIR} && pm2 startOrReload ecosystem.config.js --update-env && pm2 save"
+
+echo "==> Step 4: health check (origin direct)"
+sleep 2
+ssh ${REMOTE} "curl -sf ${HEALTH} | head -c 200"
+
+echo ""
+echo "==> Deploy complete. Port ${PORT} live on Kamatera."
+echo "    Next steps (gated — paste into Kamatera or your session):"
+echo "    1. Set up nginx vhost (see GATED_STEPS.md or the deploy report)"
+echo "    2. certbot SSL"
+echo "    3. CF A record"
diff --git a/ecosystem.config.js b/ecosystem.config.js
new file mode 100644
index 0000000..1b160c8
--- /dev/null
+++ b/ecosystem.config.js
@@ -0,0 +1,15 @@
+module.exports = {
+  apps: [{
+    name: 'quadrille-house-site',
+    script: 'server.js',
+    cwd: '/root/Projects/quadrille-house-site',
+    env: {
+      NODE_ENV: 'production',
+      PORT: 9944
+    },
+    instances: 1,
+    autorestart: true,
+    watch: false,
+    max_memory_restart: '512M'
+  }]
+};

← fbcc6c4 step-0: remap lookbook PDFs to S3 source URLs, drop 657 MB l  ·  back to Quadrille House Site  ·  add 3D Showroom Experience hero band below top hero (iframe d992b93 →