#!/usr/bin/env bash set -euo pipefail ROOT="/data/aios-gitops" WORKSPACE="$ROOT/workspace" LOG="$ROOT/logs/g-cnnetmkt-ingress-fix.log" BACKUP_DIR="$ROOT/backups/nginx-g-cnnetmkt-$(date +%Y%m%d-%H%M%S)" SITE="/etc/nginx/sites-available/aios-user-portal.conf" TRACKED="$WORKSPACE/deploy/nginx/g-cnnetmkt-gitea-server.conf" REPORT="$ROOT/artifacts/CNNETMKT_SSL_INGRESS_STATUS.md" mkdir -p "$ROOT/logs" "$BACKUP_DIR" "$WORKSPACE/deploy/nginx" "$ROOT/artifacts" exec > >(tee -a "$LOG") 2>&1 echo "== backup ==" sudo cp -a "$SITE" "$BACKUP_DIR/aios-user-portal.conf" cat > "$TRACKED" <<'NGINX' # AIOS GitOps alias for https://g.cnnetmkt.top/ # Note: this server block intentionally keeps /git/ as the Gitea app prefix, # matching the current Gitea ROOT_URL and avoiding a disruptive app.ini rewrite. server { listen 443 ssl; listen [::]:443 ssl; server_name g.cnnetmkt.top; access_log /var/log/nginx/aios-g-cnnetmkt.access.log; error_log /var/log/nginx/aios-g-cnnetmkt.error.log; ssl_certificate /etc/letsencrypt/live/user.cnnetmkt.top/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/user.cnnetmkt.top/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location = / { return 302 /git/; } location = /git { return 302 /git/; } location /git/ { proxy_pass http://127.0.0.1:3000/; 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Prefix /git; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_redirect off; } } server { listen 80; listen [::]:80; server_name g.cnnetmkt.top; location = / { return 302 https://$host/git/; } location / { return 301 https://$host$request_uri; } } NGINX echo "== install g.cnnetmkt server block ==" sudo cp "$TRACKED" /etc/nginx/sites-available/g-cnnetmkt-gitea.conf sudo ln -sfn /etc/nginx/sites-available/g-cnnetmkt-gitea.conf /etc/nginx/sites-enabled/g-cnnetmkt-gitea.conf sudo nginx -t sudo systemctl reload nginx echo "== local validation before cert expand ==" for h in g.cnnetmkt.top cnnetmkt.top user.cnnetmkt.top; do echo "-- $h /" curl -k -sS -D - -o /tmp/aios-body --resolve "$h:443:127.0.0.1" "https://$h/" | sed -n '1,12p' || true grep -ao '