Files
Domain_web/uninstall.sh
Андрей Бобырев eec5c214e9 fix(deploy): run next start from repo root on VPS
Standalone traced node_modules were incomplete after partial sync;
use npm start with production deps at INSTALL_DIR for reliable boots.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 22:55:53 +03:00

67 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Domain Scanner — one-command uninstall
set -euo pipefail
INSTALL_DIR="${DOMAIN_SCANNER_INSTALL_DIR:-/opt/domain-scanner}"
SERVICE_NAME="domain-scanner"
NGINX_SITE="domain-scanner"
LEGACY_SERVICE="geoexport-site"
LEGACY_NGINX="geoexport-site"
log() { echo "[domain-scanner-uninstall] $*"; }
need_root() {
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
echo "Run as root: sudo bash uninstall.sh" >&2
exit 1
fi
}
stop_docker() {
log "Stopping Docker stack..."
if [[ -f "${INSTALL_DIR}/docker-compose.yml" ]]; then
if docker compose version >/dev/null 2>&1; then
docker compose -f "${INSTALL_DIR}/docker-compose.yml" down -v 2>/dev/null || true
else
docker-compose -f "${INSTALL_DIR}/docker-compose.yml" down -v 2>/dev/null || true
fi
fi
}
stop_app() {
systemctl stop "${SERVICE_NAME}.service" 2>/dev/null || true
systemctl disable "${SERVICE_NAME}.service" 2>/dev/null || true
rm -f "/etc/systemd/system/${SERVICE_NAME}.service"
systemctl daemon-reload
}
stop_legacy() {
systemctl stop "${LEGACY_SERVICE}.service" 2>/dev/null || true
systemctl disable "${LEGACY_SERVICE}.service" 2>/dev/null || true
rm -f "/etc/systemd/system/${LEGACY_SERVICE}.service"
systemctl daemon-reload
}
remove_nginx() {
log "Removing nginx site..."
for site in "${NGINX_SITE}" "${LEGACY_NGINX}"; do
rm -f "/etc/nginx/sites-enabled/${site}"
rm -f "/etc/nginx/sites-available/${site}"
done
if command -v nginx >/dev/null 2>&1; then
nginx -t 2>/dev/null && systemctl reload nginx 2>/dev/null || true
fi
}
remove_files() {
log "Removing ${INSTALL_DIR}..."
rm -rf "${INSTALL_DIR}"
}
need_root
stop_app
stop_docker
stop_legacy
remove_nginx
remove_files
log "Domain Scanner removed."