#!/usr/bin/env bash set -Eeuo pipefail # --- config you can tweak --- CONF="/etc/nginx/sites-available/lan-proxy.conf" PROXY_IP="192.168.1.202" # Nginx box LAN IP ID_BACKEND="192.168.1.202:21118" # id.generalinfinity.cloud target RELAY_BACKEND="192.168.1.202:21119" # relay.generalinfinity.cloud target # ---------------------------- STAMP="$(date +%F-%H%M%S)" sudo install -d /etc/nginx/sites-available /etc/nginx/sites-enabled sudo touch "$CONF" # backup sudo cp -a "$CONF" "${CONF}.bak-${STAMP}" # append id.generalinfinity.cloud if missing if ! sudo grep -q 'server_name id.generalinfinity.cloud' "$CONF"; then sudo tee -a "$CONF" >/dev/null </dev/null </dev/null 2>&1 # validate and hot-reload (zero downtime) if sudo nginx -t; then sudo systemctl reload nginx else echo "❌ nginx test failed; restoring backup" sudo mv "${CONF}.bak-${STAMP}" "$CONF" exit 1 fi # ensure local name resolution to the proxy grep -q 'id.generalinfinity.cloud' /etc/hosts || echo "$PROXY_IP id.generalinfinity.cloud" | sudo tee -a /etc/hosts grep -q 'relay.generalinfinity.cloud' /etc/hosts || echo "$PROXY_IP relay.generalinfinity.cloud" | sudo tee -a /etc/hosts # quick tests (ignore trust; use -k) curl -kI https://id.generalinfinity.cloud || true curl -kI https://relay.generalinfinity.cloud || true echo "✅ Done. Nginx reloaded without interruption."