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