feat: complete nx9-wg v0.8.0 platform

This commit is contained in:
thakares committed 2026-08-17 14:25:45 +05:30
1 parent c75e5c4e71
commit c8a9b7cde6
52 files changed
+7751 -725

No files matched your search

+122
View File
@@ -0,0 +1,122 @@
#!/usr/bin/env bash
# ==============================================================================
# nx9-wg Uninstaller
# ==============================================================================
# Safely removes the nx9-wg service and binary while preserving user data
# and configuration by default. Supports --purge for total teardown.
# ==============================================================================
set -euo pipefail
BIN_PATH="/usr/local/bin/nx9-wg"
CONF_DIR="/etc/nx9-wg"
DATA_DIR="/var/lib/nx9-wg"
LOG_DIR="/var/log/nx9-wg"
SERVICE_PATH="/etc/systemd/system/nx9-wg.service"
PURGE=0
FORCE=0
usage() {
cat <<EOF
nx9-wg Uninstaller
Usage:
sudo bash uninstall.sh [OPTIONS]
Options:
--purge Remove all configuration files, databases, and backup archives
-f, --force Skip confirmation prompts during purge
-h, --help Show this help message
EOF
exit 0
}
while [[ $# -gt 0 ]]; do
case "$1" in
--purge)
PURGE=1
shift
;;
-f|--force)
FORCE=1
shift
;;
-h|--help)
usage
;;
*)
echo "Unknown option: $1" >&2
usage
;;
esac
done
log() {
echo -e "\033[1;34m[INFO]\033[0m $*"
}
warn() {
echo -e "\033[1;33m[WARN]\033[0m $*"
}
error() {
echo -e "\033[1;31m[ERROR]\033[0m $*" >&2
exit 1
}
if [[ "${EUID}" -ne 0 ]]; then
error "This uninstaller must be run as root (or via sudo)."
fi
# 1. Stop and Disable systemd Service
if command -v systemctl >/dev/null 2>&1; then
if systemctl is-active --quiet nx9-wg 2>/dev/null; then
log "Stopping nx9-wg service..."
systemctl stop nx9-wg || true
fi
if systemctl is-enabled --quiet nx9-wg 2>/dev/null; then
log "Disabling nx9-wg service..."
systemctl disable nx9-wg || true
fi
fi
# 2. Remove systemd Unit File
if [[ -f "${SERVICE_PATH}" ]]; then
log "Removing systemd unit file ${SERVICE_PATH}..."
rm -f "${SERVICE_PATH}"
if command -v systemctl >/dev/null 2>&1; then
systemctl daemon-reload || true
fi
fi
# 3. Remove Binary Executable
if [[ -f "${BIN_PATH}" ]]; then
log "Removing binary ${BIN_PATH}..."
rm -f "${BIN_PATH}"
fi
# 4. Handle Purge vs Data Preservation
if [[ "${PURGE}" -eq 1 ]]; then
if [[ "${FORCE}" -eq 0 ]]; then
echo -e "\033[1;31mWARNING: --purge will permanently delete all configuration, database state, and backups!\033[0m"
read -r -p "Type 'DELETE-ALL-DATA' to confirm: " CONFIRM
if [[ "${CONFIRM}" != "DELETE-ALL-DATA" ]]; then
error "Purge aborted by user. Preserving configuration and data directories."
fi
fi
log "Purging configuration directory ${CONF_DIR}..."
rm -rf "${CONF_DIR}"
log "Purging data directory ${DATA_DIR}..."
rm -rf "${DATA_DIR}"
log "Purging log directory ${LOG_DIR}..."
rm -rf "${LOG_DIR}"
log "All nx9-wg files purged."
else
log "Preserved configuration: ${CONF_DIR}"
log "Preserved database & backups: ${DATA_DIR}"
log "To remove them, re-run with: sudo bash uninstall.sh --purge"
fi
log "nx9-wg uninstalled successfully."
EOF