install_newt.sh aktualisiert
This commit is contained in:
106
install_newt.sh
106
install_newt.sh
@@ -10,17 +10,21 @@ REPO="fosrl/newt"
|
|||||||
INSTALL_DIR="/opt/newt"
|
INSTALL_DIR="/opt/newt"
|
||||||
SERVICE_NAME="PVE-MGNT"
|
SERVICE_NAME="PVE-MGNT"
|
||||||
SYMLINK="${INSTALL_DIR}/newt_latest"
|
SYMLINK="${INSTALL_DIR}/newt_latest"
|
||||||
|
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
|
||||||
|
|
||||||
info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
||||||
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||||||
error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
||||||
|
|
||||||
FORCE=0
|
MODE="auto"
|
||||||
|
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
if [[ "$arg" == "--force" ]]; then
|
case "$arg" in
|
||||||
FORCE=1
|
--install) MODE="install" ;;
|
||||||
fi
|
--update) MODE="update" ;;
|
||||||
|
--reinstall|--force) MODE="reinstall" ;;
|
||||||
|
*) error "Unbekannter Parameter: $arg" && exit 1 ;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
get_latest_version() {
|
get_latest_version() {
|
||||||
@@ -67,26 +71,12 @@ cleanup_old_versions() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_systemd_service() {
|
setup_systemd_service() {
|
||||||
svc="/etc/systemd/system/${SERVICE_NAME}.service"
|
info "🛠️ Erstelle systemd-Dienst ${SERVICE_NAME} ..."
|
||||||
|
|
||||||
if [ -f "$svc" ] && [ $FORCE -eq 0 ]; then
|
|
||||||
info "systemd-Dienst ${SERVICE_NAME} existiert bereits. Überspringe Neuanlage."
|
|
||||||
sudo systemctl restart "$SERVICE_NAME"
|
|
||||||
info "Dienst ${SERVICE_NAME} neu gestartet."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$svc" ] && [ $FORCE -eq 1 ]; then
|
|
||||||
info "systemd-Dienst ${SERVICE_NAME} wird wegen --force neu erstellt."
|
|
||||||
# Dienst noch NICHT stoppen hier!
|
|
||||||
sudo rm -f "$svc"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Eingabe erst hier, bevor Dienst gestoppt wird
|
|
||||||
read -rp "🆔 Bitte gib die Pangolin-ID ein: " PANGOLIN_ID
|
read -rp "🆔 Bitte gib die Pangolin-ID ein: " PANGOLIN_ID
|
||||||
read -rp "🔑 Bitte gib das Secret ein: " PANGOLIN_SECRET
|
read -rp "🔑 Bitte gib das Secret ein: " PANGOLIN_SECRET
|
||||||
read -rp "🌐 Bitte gib den Endpoint (z. B. https://pangolin.domain.de) ein: " PANGOLIN_ENDPOINT
|
read -rp "🌐 Bitte gib den Endpoint (z. B. https://pangolin.domain.de) ein: " PANGOLIN_ENDPOINT
|
||||||
|
|
||||||
cat <<EOF | sudo tee "$svc" > /dev/null
|
cat <<EOF | sudo tee "$SERVICE_FILE" > /dev/null
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Newt Client - ${SERVICE_NAME}
|
Description=Newt Client - ${SERVICE_NAME}
|
||||||
After=network.target
|
After=network.target
|
||||||
@@ -100,43 +90,73 @@ RestartSec=5
|
|||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Dienst jetzt stoppen und neu starten (nur wenn force)
|
|
||||||
if [ $FORCE -eq 1 ]; then
|
|
||||||
sudo systemctl stop "$SERVICE_NAME" || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo systemctl daemon-reexec
|
sudo systemctl daemon-reexec
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl enable "$SERVICE_NAME"
|
sudo systemctl enable "$SERVICE_NAME"
|
||||||
sudo systemctl start "$SERVICE_NAME"
|
sudo systemctl start "$SERVICE_NAME"
|
||||||
|
info "✅ systemd-Dienst ${SERVICE_NAME} wurde eingerichtet und gestartet."
|
||||||
info "🛠️ systemd-Dienst ${SERVICE_NAME} eingerichtet und gestartet."
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
perform_install() {
|
||||||
info "🔧 Starte Installation/Update von newt ..."
|
if [ -f "$SERVICE_FILE" ]; then
|
||||||
|
warn "Dienst ${SERVICE_NAME} existiert bereits. Nutze --reinstall für Neuinstallation."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
version=$(get_latest_version)
|
version=$(get_latest_version)
|
||||||
version=${version#v}
|
version=${version#v}
|
||||||
|
info "📦 Neueste Version: ${version}"
|
||||||
|
download_newt "$version"
|
||||||
|
cleanup_old_versions
|
||||||
|
setup_systemd_service
|
||||||
|
info "🚀 Installation abgeschlossen!"
|
||||||
|
}
|
||||||
|
|
||||||
|
perform_update() {
|
||||||
|
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}
|
||||||
info "📦 Neueste Version: ${version}"
|
info "📦 Neueste Version: ${version}"
|
||||||
|
|
||||||
if [ -f "${INSTALL_DIR}/newt_${version}" ] && [ $FORCE -eq 0 ]; then
|
if [ -f "${INSTALL_DIR}/newt_${version}" ]; then
|
||||||
info "✅ Version ${version} ist bereits installiert. Kein Update nötig."
|
info "✅ Version ${version} ist bereits installiert. Kein Update nötig."
|
||||||
else
|
else
|
||||||
download_newt "$version"
|
download_newt "$version"
|
||||||
|
cleanup_old_versions
|
||||||
|
sudo systemctl restart "$SERVICE_NAME"
|
||||||
|
info "🔄 Dienst ${SERVICE_NAME} wurde neu gestartet."
|
||||||
fi
|
fi
|
||||||
|
info "🚀 Update abgeschlossen!"
|
||||||
cleanup_old_versions
|
|
||||||
setup_systemd_service
|
|
||||||
|
|
||||||
info "🔄 Versuche Dienst ${SERVICE_NAME} neu zu starten..."
|
|
||||||
if sudo systemctl restart "$SERVICE_NAME"; then
|
|
||||||
info "✅ Dienst ${SERVICE_NAME} erfolgreich neu gestartet."
|
|
||||||
else
|
|
||||||
error "❌ Dienst ${SERVICE_NAME} konnte nicht neu gestartet werden!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
info "🚀 Fertig! newt läuft als systemd-Dienst (${SERVICE_NAME})"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
perform_reinstall() {
|
||||||
|
version=$(get_latest_version)
|
||||||
|
version=${version#v}
|
||||||
|
info "📦 Neueste Version: ${version}"
|
||||||
|
download_newt "$version"
|
||||||
|
cleanup_old_versions
|
||||||
|
sudo systemctl stop "$SERVICE_NAME" || true
|
||||||
|
sudo rm -f "$SERVICE_FILE" || true
|
||||||
|
setup_systemd_service
|
||||||
|
info "🚀 Reinstallation abgeschlossen!"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
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 # rekursiver Aufruf mit gesetztem MODE
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
Reference in New Issue
Block a user