[object Object]

← back to Abramsagency

repoint agency site to agency.agentabrams.com (owned CF zone): email/footer/deploy host + one-shot golive.sh (deploy+nginx conf.d+certbot)

b0ab28aa5c6f483acc748f50050433a1318bd85b · 2026-08-13 12:51:04 -0700 · Steve Abrams

Files touched

Diff

commit b0ab28aa5c6f483acc748f50050433a1318bd85b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Aug 13 12:51:04 2026 -0700

    repoint agency site to agency.agentabrams.com (owned CF zone): email/footer/deploy host + one-shot golive.sh (deploy+nginx conf.d+certbot)
---
 .deploy.conf      |  4 ++--
 golive.sh         | 54 +++++++++++++++++++-----------------------------------
 golive2.sh        | 41 -----------------------------------------
 public/index.html |  6 +++---
 4 files changed, 24 insertions(+), 81 deletions(-)

diff --git a/.deploy.conf b/.deploy.conf
index 907db3d..20c6a84 100644
--- a/.deploy.conf
+++ b/.deploy.conf
@@ -1,4 +1,4 @@
 PROJECT_NAME=abramsagency
-DEPLOY_PATH=/var/www/abramsagency.com
-HEALTH_URL=http://127.0.0.1:9788/healthz
+DEPLOY_PATH=/var/www/agency.agentabrams.com
+HEALTH_URL=https://agency.agentabrams.com/healthz
 PORT=9788
diff --git a/golive.sh b/golive.sh
index 2743cdc..1003669 100755
--- a/golive.sh
+++ b/golive.sh
@@ -1,60 +1,44 @@
 #!/usr/bin/env bash
-# One-shot go-live for abramsagency.com → Kamatera (deploy + pm2 + nginx).
+# One-shot go-live for agency.agentabrams.com → Kamatera (deploy + pm2 + nginx + SSL).
+# DNS is already done (Cloudflare A agency.agentabrams.com → 45.61.58.125).
 # Run from Mac2:  bash ~/Projects/abramsagency/golive.sh
-# DNS + SSL are a SECOND step (need your GoDaddy login) — printed at the end.
 set -euo pipefail
 SRV=root@45.61.58.125
 APP=abramsagency
-DIR=/var/www/abramsagency.com
+DIR=/var/www/agency.agentabrams.com
 PORT=9788
+HOST=agency.agentabrams.com
 
-echo "==> 1/5 prep remote dir"
+echo "==> 1/6 prep remote dir"
 ssh -o StrictHostKeyChecking=accept-new "$SRV" "mkdir -p $DIR"
 
-echo "==> 2/5 rsync build up"
+echo "==> 2/6 rsync build up"
 rsync -az --delete \
   --exclude node_modules --exclude .git --exclude '.env*' --exclude 'data/leads.jsonl' \
   ~/Projects/abramsagency/ "$SRV:$DIR/"
 
-echo "==> 3/5 install + (re)start pm2 on :$PORT"
+echo "==> 3/6 install + (re)start pm2 on :$PORT"
 ssh "$SRV" "cd $DIR && npm install --omit=dev --no-audit --no-fund \
   && (pm2 restart $APP --update-env || PORT=$PORT pm2 start server.js --name $APP) && pm2 save"
 
-echo "==> 4/5 nginx vhost"
-ssh "$SRV" "cat > /etc/nginx/sites-available/abramsagency.com <<'NGINX'
+echo "==> 4/6 nginx vhost (conf.d — the include dir this box actually loads)"
+ssh "$SRV" "cat > /etc/nginx/conf.d/$HOST.conf <<NG
 server {
   listen 80;
-  server_name abramsagency.com www.abramsagency.com;
+  server_name $HOST;
   location / {
     proxy_pass http://127.0.0.1:$PORT;
-    proxy_set_header Host \$host;
-    proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
-    proxy_set_header X-Forwarded-Proto \$scheme;
+    proxy_set_header Host \\\$host;
+    proxy_set_header X-Forwarded-For \\\$proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto \\\$scheme;
   }
 }
-NGINX
-ln -sf /etc/nginx/sites-available/abramsagency.com /etc/nginx/sites-enabled/abramsagency.com
+NG
 nginx -t && systemctl reload nginx"
 
-echo "==> 5/5 smoke test (origin)"
-ssh "$SRV" "curl -s -o /dev/null -w 'origin :$PORT -> %{http_code}\n' http://127.0.0.1:$PORT/healthz"
-
-cat <<DONE
-
-✅ App is live on the server (pm2 '$APP', nginx vhost ready).
+echo "==> 5/6 SSL (Let's Encrypt via certbot --nginx)"
+ssh "$SRV" "certbot --nginx -d $HOST --non-interactive --agree-tos -m steve@designerwallcoverings.com --redirect || echo 'certbot: rerun once DNS has propagated'"
 
-NEXT — DNS (your GoDaddy login; domain is on GoDaddy nameservers):
-  Option A (quick, stay on GoDaddy):
-    - A     @    -> 45.61.58.125
-    - CNAME www  -> abramsagency.com
-    then SSL on the box:
-      ssh $SRV 'certbot --nginx -d abramsagency.com -d www.abramsagency.com --non-interactive --agree-tos -m steve@designerwallcoverings.com'
-  Option B (Cloudflare, fleet-consistent): create CF zone, A @ + A www -> 45.61.58.125 (proxied),
-    then switch nameservers at GoDaddy to CF's. CF handles SSL.
-
-Verify after DNS propagates:
-  curl -sI https://abramsagency.com   # expect 200 + valid cert
-
-OPTIONAL — turn on form email notifications (routes to steve@designerwallcoverings.com):
-  ssh $SRV 'cd $DIR && LEAD_NOTIFY=1 pm2 restart $APP --update-env'
-DONE
+echo "==> 6/6 verify"
+ssh "$SRV" "curl -s -o /dev/null -w 'origin :$PORT -> %{http_code}\n' http://127.0.0.1:$PORT/healthz"
+echo "Done. Try: https://$HOST"
diff --git a/golive2.sh b/golive2.sh
deleted file mode 100644
index 16e6ce9..0000000
--- a/golive2.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-# Fix: place the abramsagency.com vhost where THIS box actually includes configs
-# (fleet uses conf.d, not sites-enabled), then re-verify. Run from Mac2:
-#   bash ~/Projects/abramsagency/golive2.sh
-set -euo pipefail
-SRV=root@45.61.58.125
-
-ssh -o StrictHostKeyChecking=accept-new "$SRV" 'bash -s' <<'EOS'
-set -e
-PORT=9788
-echo "== include dirs nginx actually loads =="
-nginx -T 2>/dev/null | grep -Eo 'include [^;]*(sites-enabled|conf\.d)[^;]*' | sort -u || true
-
-echo "== writing vhost to /etc/nginx/conf.d/abramsagency.com.conf =="
-cat > /etc/nginx/conf.d/abramsagency.com.conf <<NG
-server {
-  listen 80;
-  server_name abramsagency.com www.abramsagency.com;
-  location / {
-    proxy_pass http://127.0.0.1:$PORT;
-    proxy_set_header Host \$host;
-    proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
-    proxy_set_header X-Forwarded-Proto \$scheme;
-  }
-}
-NG
-
-# drop the inert sites-enabled copy so there's no ambiguity
-rm -f /etc/nginx/sites-enabled/abramsagency.com
-
-nginx -t && systemctl reload nginx
-
-echo "== verify: request the vhost locally by Host header (should now be 200, not 301) =="
-curl -s -o /dev/null -w "  :80 Host=abramsagency.com -> %{http_code}\n" -H 'Host: abramsagency.com' http://127.0.0.1/
-curl -s -H 'Host: abramsagency.com' http://127.0.0.1/healthz; echo
-EOS
-
-echo
-echo "✅ vhost placed. NEXT:"
-echo "  1) GoDaddy DNS:  A @ -> 45.61.58.125   |   CNAME www -> abramsagency.com"
-echo "  2) then SSL:     ssh $SRV 'certbot --nginx -d abramsagency.com -d www.abramsagency.com --non-interactive --agree-tos -m steve@designerwallcoverings.com'"
diff --git a/public/index.html b/public/index.html
index 5e4f79b..3a0bc49 100644
--- a/public/index.html
+++ b/public/index.html
@@ -432,7 +432,7 @@ footer .logo{justify-content:center;margin-bottom:14px}
         <h2>Let's build yours.</h2>
         <p>Tell us what you're trying to run better. We'll come back with a concrete plan — what we'd build, what it'd cost, and what it'd save.</p>
         <div class="taplinks">
-          <a class="tap glass lg" href="mailto:info@abramsagency.com"><span class="ic">✉️</span><div><b>info@abramsagency.com</b><small>Email us — we reply same day</small></div></a>
+          <a class="tap glass lg" href="mailto:info@agentabrams.com"><span class="ic">✉️</span><div><b>info@agentabrams.com</b><small>Email us — we reply same day</small></div></a>
           <a class="tap glass lg" href="tel:+13105551234"><span class="ic">📞</span><div><b>Tap to call</b><small>Talk it through in 15 minutes</small></div></a>
         </div>
       </div>
@@ -460,7 +460,7 @@ footer .logo{justify-content:center;margin-bottom:14px}
 <footer class="wrap">
   <a class="logo" href="#top"><span class="dot"></span>Abrams<span style="opacity:.6">Agency</span></a>
   <div>We build the machine that runs your business.</div>
-  <div style="margin-top:8px">© <span id="yr"></span> Abrams Agency · abramsagency.com</div>
+  <div style="margin-top:8px">© <span id="yr"></span> Abrams Agency · agentabrams.com</div>
 </footer>
 
 <script>
@@ -580,7 +580,7 @@ form.addEventListener('submit',async(e)=>{
     const r=await fetch('/api/contact',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(data)});
     if(!r.ok)throw 0;
     msg.className='form-msg ok';msg.textContent="Got it — we'll be in touch shortly. 🎉";form.reset();
-  }catch(_){msg.className='form-msg err';msg.textContent='Something went wrong — email info@abramsagency.com directly.';}
+  }catch(_){msg.className='form-msg err';msg.textContent='Something went wrong — email info@agentabrams.com directly.';}
 });
 </script>
 </body>

← 776b054 add golive2.sh: place vhost in conf.d (box doesn't include s  ·  back to Abramsagency  ·  golive: fix SSL — serve ACME challenge from webroot (not pro 11c9639 →