A simple utility to manage Nginx configurations.

Allow nginx test and reload commands to be specified by env var.

This allows the script to work in containerized contexts.

This change also updates the "enable" command to use relative links to avoid issues across container mounts.

+8 -4
+8 -4
nx.sh
··· 3 # Configuration 4 AVAILABLE=${NX_SITES_AVAILABLE_PATH:-/etc/nginx/sites-available} 5 ENABLED=${NX_SITES_ENABLED_PATH:-/etc/nginx/sites-enabled} 6 ACTION=$1 7 SITE=$2 8 ··· 63 [[ ! -f "$AVAILABLE/$SITE" ]] && SITE="$SITE.conf" 64 65 if [ -f "$AVAILABLE/$SITE" ]; then 66 - ln -sf "$AVAILABLE/$SITE" "$ENABLED/$SITE" 67 echo "Enabled $SITE" 68 - nginx -t && systemctl reload nginx && echo "Nginx configuration reloaded successfully!" 69 else 70 echo "${RED}Error${NC}: $SITE not found in $AVAILABLE" 71 fi ··· 78 if [ -L "$ENABLED/$SITE" ]; then 79 rm "$ENABLED/$SITE" 80 echo "Disabled $SITE" 81 - nginx -t && systemctl reload nginx && echo "Nginx configuration reloaded successfully!" 82 else 83 echo "${RED}Error${NC}: $SITE is not enabled" 84 fi ··· 94 echo "Check syntax and reload? (y/n)" 95 read -r answer 96 if [[ "$answer" == "y" ]]; then 97 - nginx -t && systemctl reload nginx && echo "Nginx configuration reloaded successfully!" 98 fi 99 else 100 echo "${RED}Error${NC}: $SITE not found in $AVAILABLE" ··· 142 EDITOR Currently set to ${BOLD}${EDITOR:-nano}${NC} 143 NX_SITES_AVAILABLE_PATH Currently set to ${BOLD}${AVAILABLE}${NC} 144 NX_SITES_ENABLED_PATH Currently set to ${BOLD}${ENABLED}${NC} 145 EOF 146 )" 147 exit 1
··· 3 # Configuration 4 AVAILABLE=${NX_SITES_AVAILABLE_PATH:-/etc/nginx/sites-available} 5 ENABLED=${NX_SITES_ENABLED_PATH:-/etc/nginx/sites-enabled} 6 + TEST_CMD=${NX_TEST_CMD:-"nginx -t"} 7 + RELOAD_CMD=${NX_RELOAD_CMD:-"systemctl reload nginx"} 8 ACTION=$1 9 SITE=$2 10 ··· 65 [[ ! -f "$AVAILABLE/$SITE" ]] && SITE="$SITE.conf" 66 67 if [ -f "$AVAILABLE/$SITE" ]; then 68 + ln -sfr "$AVAILABLE/$SITE" "$ENABLED/$SITE" 69 echo "Enabled $SITE" 70 + eval "${TEST_CMD}" && eval "${RELOAD_CMD}" && echo "Nginx configuration reloaded successfully!" 71 else 72 echo "${RED}Error${NC}: $SITE not found in $AVAILABLE" 73 fi ··· 80 if [ -L "$ENABLED/$SITE" ]; then 81 rm "$ENABLED/$SITE" 82 echo "Disabled $SITE" 83 + eval "${TEST_CMD}" && eval "${RELOAD_CMD}" && echo "Nginx configuration reloaded successfully!" 84 else 85 echo "${RED}Error${NC}: $SITE is not enabled" 86 fi ··· 96 echo "Check syntax and reload? (y/n)" 97 read -r answer 98 if [[ "$answer" == "y" ]]; then 99 + eval "${TEST_CMD}" && eval "${RELOAD_CMD}" && echo "Nginx configuration reloaded successfully!" 100 fi 101 else 102 echo "${RED}Error${NC}: $SITE not found in $AVAILABLE" ··· 144 EDITOR Currently set to ${BOLD}${EDITOR:-nano}${NC} 145 NX_SITES_AVAILABLE_PATH Currently set to ${BOLD}${AVAILABLE}${NC} 146 NX_SITES_ENABLED_PATH Currently set to ${BOLD}${ENABLED}${NC} 147 + NX_RELOAD_CMD Currently set to ${BOLD}${RELOAD_CMD}${NC} 148 + NX_TEST_CMD Currently set to ${BOLD}${TEST_CMD}${NC} 149 EOF 150 )" 151 exit 1