← back to Homesonspec

retarget-domain.sh

51 lines

#!/usr/bin/env bash
# Retarget the live Kamatera origin to homesonspec.com (from spechomes.com).
#   ! bash ~/Projects/spechomes/retarget-domain.sh
# Rewrites the nginx vhost server_names + regenerates the self-signed origin cert.
# App/DB/pm2 unchanged (nginx matches by server_name only).
set -euo pipefail
KH=root@45.61.58.125
WEB_PORT=9975
ADMIN_PORT=9976
DOMAIN=homesonspec.com

ssh $KH "
mkdir -p /etc/nginx/ssl
openssl req -x509 -nodes -newkey rsa:2048 -days 3650 \
  -keyout /etc/nginx/ssl/homesonspec.key -out /etc/nginx/ssl/homesonspec.crt \
  -subj '/CN=$DOMAIN' 2>/dev/null
cat > /etc/nginx/sites-available/spechomes.com <<'NGINX'
server {
    listen 45.61.58.125:80;
    listen 45.61.58.125:443 ssl;
    server_name homesonspec.com www.homesonspec.com;
    ssl_certificate     /etc/nginx/ssl/homesonspec.crt;
    ssl_certificate_key /etc/nginx/ssl/homesonspec.key;
    location / {
        proxy_pass http://127.0.0.1:$WEB_PORT;
        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;
    }
}
server {
    listen 45.61.58.125:80;
    listen 45.61.58.125:443 ssl;
    server_name admin.homesonspec.com;
    ssl_certificate     /etc/nginx/ssl/homesonspec.crt;
    ssl_certificate_key /etc/nginx/ssl/homesonspec.key;
    location / {
        proxy_pass http://127.0.0.1:$ADMIN_PORT;
        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
nginx -t && systemctl reload nginx
echo -n '  origin HTTPS (real SNI) → '; curl -sk --resolve $DOMAIN:443:45.61.58.125 -o /dev/null -w '%{http_code}\n' https://$DOMAIN/
"
echo "✅  nginx now serves $DOMAIN"