Connector Open-Source Code
Browse connector files locally. Exchange API keys stay on your device.
uninstall.sh
#!/usr/bin/env bash
set -euo pipefail
CONNECTOR_DIR="/opt/nuxvision_connector"
echo "== NuxVision Connector uninstaller =="
if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root (sudo)."
exit 1
fi
echo
echo "This will REMOVE:"
echo "- /etc/systemd/system/nuxvision-ui.service"
echo "- /etc/systemd/system/nuxvision-runner@.service"
echo "- /etc/systemd/system/nuxvision-tracker@.service"
echo "- /etc/systemd/system/nuxvision-updater.service"
echo "- /etc/systemd/system/nuxvision-updater.timer"
echo "- /etc/cron.d/nuxvision-updater"
echo "- /var/log/nuxvision-updater.log"
echo "- /etc/sudoers.d/nuxvision"
echo "- ${CONNECTOR_DIR} (including instances, configs, logs)"
echo
read -r -p "Continue? (yes/no): " ans
if [ "${ans}" != "yes" ]; then
echo "Aborted."
exit 0
fi
echo "[1/5] Stopping services..."
systemctl stop nuxvision-ui.service >/dev/null 2>&1 || true
systemctl stop nuxvision-updater.timer >/dev/null 2>&1 || true
systemctl stop nuxvision-updater.service >/dev/null 2>&1 || true
# Stop any running runner/tracker instance services
for u in $(systemctl list-units --type=service --no-legend 'nuxvision-runner@*.service' 2>/dev/null | awk '{print $1}'); do
systemctl stop "$u" >/dev/null 2>&1 || true
done
for u in $(systemctl list-units --type=service --no-legend 'nuxvision-tracker@*.service' 2>/dev/null | awk '{print $1}'); do
systemctl stop "$u" >/dev/null 2>&1 || true
done
echo "[2/5] Disabling services..."
systemctl disable nuxvision-ui.service >/dev/null 2>&1 || true
systemctl disable nuxvision-runner@.service >/dev/null 2>&1 || true
systemctl disable nuxvision-tracker@.service >/dev/null 2>&1 || true
systemctl disable nuxvision-updater.timer >/dev/null 2>&1 || true
# Disable any enabled instance units (best effort)
for u in $(systemctl list-unit-files --type=service --no-legend 'nuxvision-runner@*.service' 2>/dev/null | awk '{print $1}'); do
systemctl disable "$u" >/dev/null 2>&1 || true
done
for u in $(systemctl list-unit-files --type=service --no-legend 'nuxvision-tracker@*.service' 2>/dev/null | awk '{print $1}'); do
systemctl disable "$u" >/dev/null 2>&1 || true
done
# Also remove/disable old legacy names if they exist (migration cleanup)
OLD_UNITS=(
"nuxvision-connector-ui.service"
"nuxvision-connector-sync@.service"
"nuxvision-connector-runner@.service"
"nuxvision-connector-tracker@.service"
"nuxvision-connector-sync.service"
)
for u in "${OLD_UNITS[@]}"; do
systemctl stop "$u" >/dev/null 2>&1 || true
systemctl disable "$u" >/dev/null 2>&1 || true
done
echo "[3/5] Removing systemd unit files..."
rm -f /etc/systemd/system/nuxvision-ui.service
rm -f /etc/systemd/system/nuxvision-runner@.service
rm -f /etc/systemd/system/nuxvision-tracker@.service
rm -f /etc/systemd/system/nuxvision-updater.service
rm -f /etc/systemd/system/nuxvision-updater.timer
rm -f /etc/cron.d/nuxvision-updater
rm -f /var/log/nuxvision-updater.log
# Legacy cleanup
rm -f /etc/systemd/system/nuxvision-connector-ui.service
rm -f /etc/systemd/system/nuxvision-connector-sync@.service
rm -f /etc/systemd/system/nuxvision-connector-runner@.service
rm -f /etc/systemd/system/nuxvision-connector-tracker@.service
rm -f /etc/systemd/system/nuxvision-connector-sync.service
systemctl daemon-reload >/dev/null 2>&1 || true
echo "[4/5] Removing sudoers rule..."
rm -f /etc/sudoers.d/nuxvision
rm -f /etc/sudoers.d/nuxvision-connector
echo "[5/5] Removing connector directory..."
# If launched from inside the connector dir, leave it before deletion.
CUR_DIR="$(pwd -P 2>/dev/null || pwd)"
if [[ "$CUR_DIR" == "$CONNECTOR_DIR" || "$CUR_DIR" == "$CONNECTOR_DIR/"* ]]; then
cd /
fi
rm -rf "$CONNECTOR_DIR"
echo
echo "Uninstall complete."
echo "Note: hostname (/etc/hostname) and /etc/hosts entry were not reverted."
echo "If you want to revert them manually, edit /etc/hostname and /etc/hosts."