From b634fa32c9d379c43f4fee5a6360bd231e590f63 Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Tue, 5 Aug 2025 23:39:51 +0200 Subject: [PATCH] =?UTF-8?q?install=5Fnewt.sh=20gel=C3=B6scht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install_newt.sh | 182 ------------------------------------------------ 1 file changed, 182 deletions(-) delete mode 100644 install_newt.sh diff --git a/install_newt.sh b/install_newt.sh deleted file mode 100644 index 52959b2..0000000 --- a/install_newt.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/bash -set -ex # -e = bei Fehler abbrechen, -x = jede Zeile ausgeben (Debug) - -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -RED='\033[0;31m' -NC='\033[0m' - -REPO="fosrl/newt" -INSTALL_DIR="/opt/newt" -SERVICE_NAME="PVE-MGNT" -SYMLINK="${INSTALL_DIR}/newt_latest" -SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service" - -info() { echo -e "${GREEN}[INFO]${NC} $1"; } -warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } -error() { echo -e "${RED}[ERROR]${NC} $1"; } - -MODE="auto" - -for arg in "$@"; do - case "$arg" in - --install) MODE="install" ;; - --update) MODE="update" ;; - --reinstall|--force) MODE="reinstall" ;; - *) error "Unbekannter Parameter: $arg" && exit 1 ;; - esac -done - -get_latest_version() { - echo "[DEBUG] get_latest_version aufgerufen" >&2 - curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" | grep -Po '"tag_name": *"\K[^"]+' -} - -download_newt() { - echo "[DEBUG] download_newt aufgerufen mit Version=$1" - version="$1" - arch=$(uname -m) - echo "[DEBUG] Architektur erkannt: $arch" - - case "$arch" in - x86_64) file="newt_linux_amd64" ;; - aarch64) file="newt_linux_arm64" ;; - armv7l) file="newt_linux_arm32" ;; - *) error "Nicht unterstützte Architektur: $arch" && exit 1 ;; - esac - - url="https://github.com/${REPO}/releases/download/${version}/${file}" - target="${INSTALL_DIR}/newt_${version}" - temp_target="${target}.tmp" - - mkdir -p "$INSTALL_DIR" - info "⬇️ Lade $url herunter …" - curl -fsSL "$url" -o "$temp_target" || { error "Download fehlgeschlagen."; rm -f "$temp_target"; exit 1; } - - chmod +x "$temp_target" - mv "$temp_target" "$target" - ln -sf "$target" "$SYMLINK" - info "✅ newt ${version} installiert als ${target}" -} - -cleanup_old_versions() { - echo "[DEBUG] cleanup_old_versions aufgerufen" - cd "$INSTALL_DIR" - keep=$(readlink -f newt_latest) - versions=($(ls -1 newt_* | grep -v latest | sort -Vr)) - count=0 - for ver in "${versions[@]}"; do - if [[ "$(readlink -f "$ver")" != "$keep" ]]; then - ((count++)) - if [ "$count" -gt 1 ]; then - info "🧹 Entferne alte Version: $ver" - rm -f "$ver" - fi - fi - done -} - -setup_systemd_service() { - echo "[DEBUG] setup_systemd_service aufgerufen" - info "🛠️ Erstelle systemd-Dienst ${SERVICE_NAME} ..." - - read -rp "🆔 Bitte gib die Pangolin-ID ein: " PANGOLIN_ID - echo "[DEBUG] Pangolin-ID eingegeben: $PANGOLIN_ID" - read -rp "🔑 Bitte gib das Secret ein: " PANGOLIN_SECRET - echo "[DEBUG] Secret eingegeben (nicht angezeigt aus Sicherheitsgründen)" - read -rp "🌐 Bitte gib den Endpoint (z. B. https://pangolin.domain.de) ein: " PANGOLIN_ENDPOINT - echo "[DEBUG] Endpoint eingegeben: $PANGOLIN_ENDPOINT" - - SERVICE_CONTENT="[Unit] -Description=Newt Client - ${SERVICE_NAME} -After=network.target - -[Service] -ExecStart=${SYMLINK} --id ${PANGOLIN_ID} --secret ${PANGOLIN_SECRET} --endpoint ${PANGOLIN_ENDPOINT} -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target" - - echo "$SERVICE_CONTENT" > "$SERVICE_FILE" - - systemctl daemon-reexec - systemctl daemon-reload - systemctl enable "$SERVICE_NAME" - systemctl start "$SERVICE_NAME" - - info "✅ systemd-Dienst ${SERVICE_NAME} wurde eingerichtet und gestartet." -} - -perform_install() { - echo "[DEBUG] perform_install aufgerufen" - if [ -f "$SERVICE_FILE" ]; then - warn "Dienst ${SERVICE_NAME} existiert bereits. Nutze --reinstall für Neuinstallation." - exit 0 - fi - version=$(get_latest_version) - version=${version#v} - echo "[DEBUG] Version ist: '$version'" - info "📦 Neueste Version: ${version}" - download_newt "$version" - cleanup_old_versions - setup_systemd_service - info "🚀 Installation abgeschlossen!" -} - -perform_update() { - echo "[DEBUG] perform_update aufgerufen" - if [ ! -f "$SERVICE_FILE" ]; then - error "Dienst ${SERVICE_NAME} nicht installiert. Nutze --install oder --reinstall." - exit 1 - fi - version=$(get_latest_version) - version=${version#v} - echo "[DEBUG] Version ist: '$version'" - info "📦 Neueste Version: ${version}" - - if [ -f "${INSTALL_DIR}/newt_${version}" ]; then - info "✅ Version ${version} ist bereits installiert. Kein Update nötig." - else - download_newt "$version" - cleanup_old_versions - systemctl restart "$SERVICE_NAME" - info "🔄 Dienst ${SERVICE_NAME} wurde neu gestartet." - fi - info "🚀 Update abgeschlossen!" -} - -perform_reinstall() { - echo "[DEBUG] perform_reinstall aufgerufen" - version=$(get_latest_version) - version=${version#v} - echo "[DEBUG] Version ist: '$version'" - info "📦 Neueste Version: ${version}" - download_newt "$version" - cleanup_old_versions - echo "[DEBUG] Vor setup_systemd_service" - setup_systemd_service - echo "[DEBUG] Nach setup_systemd_service" - info "🚀 Reinstallation abgeschlossen!" -} - - -main() { - echo "[DEBUG] main aufgerufen mit MODE=$MODE" - case "$MODE" in - install) perform_install ;; - update) perform_update ;; - reinstall) perform_reinstall ;; - auto) - if [ -f "$SERVICE_FILE" ]; then - MODE="update" - else - MODE="install" - fi - main - ;; - esac -} - -main "$@"