refactor: nginx.conf is source of truth, drop generate script and template

nginx/nginx.conf is symlinked directly into system nginx config.
No need for a per-domain generate script or template — edit the file,
run nginx -t && systemctl reload nginx.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mguschin
2026-05-13 14:08:11 +03:00
parent ff32812b61
commit ddc3dc0a97
3 changed files with 0 additions and 92 deletions

View File

@@ -1,52 +0,0 @@
#!/bin/bash
# Generate an nginx site config for one domain from the template.
#
# Usage:
# sudo ./scripts/generate-nginx-conf.sh my-products.ru
# sudo ./scripts/generate-nginx-conf.sh xn----8sbfwtmcso8g.xn--p1ai
#
# For IDN/Cyrillic domains, pass the punycode form.
# Writes to /etc/nginx/sites-available/<domain>.conf and symlinks to sites-enabled.
# If no argument is given, DOMAIN is read from .env.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
TEMPLATE="$REPO_DIR/nginx/nginx.conf.template"
# ── resolve domain ────────────────────────────────────────────────────────────
if [ -n "${1:-}" ]; then
DOMAIN="$1"
else
if [ -f "$REPO_DIR/.env" ]; then
DOMAIN_FROM_ENV=$(grep -E '^DOMAIN=' "$REPO_DIR/.env" | cut -d= -f2- | tr -d '"'"'" | head -1)
DOMAIN="${DOMAIN:-${DOMAIN_FROM_ENV:-}}"
fi
fi
if [ -z "${DOMAIN:-}" ]; then
echo "ERROR: no domain specified." >&2
echo "Usage: $0 <domain> or set DOMAIN= in .env" >&2
exit 1
fi
CONF_FILE="/etc/nginx/sites-available/${DOMAIN}.conf"
ENABLED_LINK="/etc/nginx/sites-enabled/${DOMAIN}.conf"
echo "==> Generating nginx config for: $DOMAIN"
DOMAIN="$DOMAIN" envsubst '$DOMAIN' < "$TEMPLATE" | sudo tee "$CONF_FILE" > /dev/null
if [ ! -L "$ENABLED_LINK" ]; then
sudo ln -s "$CONF_FILE" "$ENABLED_LINK"
echo "==> Symlinked to sites-enabled"
else
echo "==> Symlink already exists in sites-enabled"
fi
echo "==> Testing nginx config..."
sudo nginx -t
echo ""
echo "==> Config written to: $CONF_FILE"
echo " Reload nginx to apply: sudo systemctl reload nginx"