[object Object]

← back to Adsense Command Post

adsense command post: Kamatera remote-deploy script (pm2+nginx+certbot @ adsense.agentabrams.com) (TK-11322)

be41f3f12788d67eb3910c571c19cb887ac6ef4f · 2026-09-09 16:36:33 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit be41f3f12788d67eb3910c571c19cb887ac6ef4f
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 9 16:36:33 2026 -0700

    adsense command post: Kamatera remote-deploy script (pm2+nginx+certbot @ adsense.agentabrams.com) (TK-11322)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 remote-deploy.sh | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/remote-deploy.sh b/remote-deploy.sh
new file mode 100644
index 0000000..7be1aa9
--- /dev/null
+++ b/remote-deploy.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+# Runs ON Kamatera. Brings up the AdSense Command Post at adsense.agentabrams.com.
+set -uo pipefail
+REMOTE=/root/public-projects/adsense-command-post
+PORT=11190
+DOMAIN=adsense.agentabrams.com
+cd "$REMOTE" || exit 1
+echo "--- pm2 start ---"
+pm2 delete adsense-command-post >/dev/null 2>&1
+PORT=$PORT pm2 start server.mjs --name adsense-command-post --time >/dev/null 2>&1 && echo "pm2 up on :$PORT"
+pm2 save >/dev/null 2>&1
+echo "--- nginx vhost ---"
+CONF=/etc/nginx/sites-available/$DOMAIN.conf
+if [ ! -e "$CONF" ]; then
+cat > "$CONF" <<NGINX
+server {
+    listen 80; listen [::]:80;
+    server_name $DOMAIN;
+    location / {
+        proxy_pass http://127.0.0.1:$PORT;
+        proxy_http_version 1.1;
+        proxy_set_header Host \$host;
+        proxy_set_header X-Real-IP \$remote_addr;
+        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
+        proxy_set_header X-Forwarded-Proto \$scheme;
+    }
+}
+NGINX
+  ln -sf "$CONF" /etc/nginx/sites-enabled/$DOMAIN.conf
+  echo "installed vhost"
+else echo "vhost exists — leaving as-is"; fi
+nginx -t 2>&1 | tail -1 && systemctl reload nginx && echo "nginx reloaded"
+echo "--- SSL ---"
+if [ ! -e /etc/letsencrypt/live/$DOMAIN/fullchain.pem ]; then
+  certbot --nginx --non-interactive --agree-tos -m steve@designerwallcoverings.com --redirect -d $DOMAIN 2>&1 | grep -iE "Congratulations|Successfully|error|fail" | head -2
+else echo "cert exists"; fi
+nginx -t 2>&1 | tail -1 && systemctl reload nginx
+echo "--- health ---"
+curl -s -u admin:DW2024! -o /dev/null -w "internal :$PORT -> %{http_code}\n" http://127.0.0.1:$PORT/
+echo DONE

← c2f837f adsense command post: grid renderer + synced shots/data (TK-  ·  back to Adsense Command Post  ·  auto-data-snapshot: 2026-09-15T14:13:07 (1 data files) — .de d522126 →