[object Object]

← back to Dw Yolo Loop

Artmura deploy: auto-pick free port on Kamatera (:9920 taken by another app) + pm2 start with PORT env

6d727715d22fe5e4559597183fe850bda3663a73 · 2026-06-12 11:12:11 -0700 · Steve Abrams

- ss-check finds first free port 9931-9939; pm2 start server.js with VENDOR/BUNDLE/PORT env (not ecosystem hardcode)
- LIVE: https://artmura.designerwallcoverings.com (161 products, LE SSL, CF proxied)

Files touched

Diff

commit 6d727715d22fe5e4559597183fe850bda3663a73
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Jun 12 11:12:11 2026 -0700

    Artmura deploy: auto-pick free port on Kamatera (:9920 taken by another app) + pm2 start with PORT env
    
    - ss-check finds first free port 9931-9939; pm2 start server.js with VENDOR/BUNDLE/PORT env (not ecosystem hardcode)
    - LIVE: https://artmura.designerwallcoverings.com (161 products, LE SSL, CF proxied)
---
 artmura-site/deploy-landing.sh | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/artmura-site/deploy-landing.sh b/artmura-site/deploy-landing.sh
index 248e615..43452b5 100755
--- a/artmura-site/deploy-landing.sh
+++ b/artmura-site/deploy-landing.sh
@@ -6,9 +6,13 @@ set -euo pipefail
 KAM="${KAM:-root@45.61.58.125}"
 APP="/root/Projects/artmura-site"
 DOMAIN="artmura.designerwallcoverings.com"
-PORT=9920
 REPO="$(cd "$(dirname "$0")/.." && pwd)"
 
+echo "→ finding a free port on the host"
+PORT=$(ssh "$KAM" 'for p in 9931 9932 9933 9934 9935 9936 9937 9938 9939; do ss -ltn | grep -q ":$p " || { echo $p; break; }; done')
+[ -z "$PORT" ] && { echo "no free port found"; exit 1; }
+echo "  using port $PORT"
+
 echo "→ shipping app + data + images to $KAM:$APP"
 ssh "$KAM" "mkdir -p $APP/_data $APP/_images"
 rsync -az --delete --exclude node_modules --exclude _images --exclude _data "$REPO/artmura-site/" "$KAM:$APP/"
@@ -18,7 +22,7 @@ rsync -az "$REPO/scripts/artmura-onboard/data/artmura.json" \
 rsync -az "$REPO/.newwall-ref/artmura/images/" "$KAM:$APP/_images/"
 
 echo "→ install + pm2 (BUNDLE=1, port $PORT)"
-ssh "$KAM" "cd $APP && npm install --omit=dev --silent && (pm2 reload ecosystem.config.cjs || pm2 start ecosystem.config.cjs) && pm2 save"
+ssh "$KAM" "cd $APP && npm install --omit=dev --silent && pm2 delete artmura-site 2>/dev/null; cd $APP && VENDOR=artmura BUNDLE=1 PORT=$PORT pm2 start server.js --name artmura-site && pm2 save"
 
 echo "→ nginx vhost"
 ssh "$KAM" "cat > /etc/nginx/sites-available/$DOMAIN <<NGINX

← f357517 Artmura landing: self-contained BUNDLE mode + turnkey deploy  ·  back to Dw Yolo Loop  ·  Artmura landing: re-skin as Designer Wallcoverings house bra 702c6d2 →