Files
tesm-license/update.sh
T
alientimandClaude Sonnet 5 3f5d85c7ee Lizenzserver-Deployment: install-license.sh/update-license.sh + systemd/nginx-Vorlagen
Fork von install.sh/update.sh/tesm.service/nginx-Site (TESM selbst),
beschraenkt auf /srv/tesm-license -- deployt ausschliesslich den in Phase 2
gebauten Master-Lizenzserver, laesst eine evtl. auf demselben Host
vorhandene TESM-Installation komplett unberuehrt (eigener Pfad-/Env-Var-
Namespace, siehe app.py). Gleiches Backup+Health-Check+Rueckroll-
Sicherheitsnetz wie bei TESMs eigenem Installer.

Teil von Phase 3 (Infrastruktur), siehe Plan toasty-twirling-hickey.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 10:15:02 +02:00

74 lines
3.0 KiB
Bash

#!/bin/bash
# ============================================================================
# TESM-Lizenzserver — Update/Reinstall (Bootstrapper)
# Fork von update.sh (TESM selbst) -- lädt dasselbe gepackte Gitea-Release
# herunter (das Repo enthält beide Apps: srv/tesm/ UND srv/tesm-license/)
# und übergibt an install-license.sh aus dem Paket, statt install.sh.
#
# Auszuführen als root auf dem Zielsystem:
# sudo ./update-license.sh
# Optional übersteuerbar (z.B. für eine bestimmte Version statt "latest"):
# TESM_RELEASE_TAG=v1.0.0 sudo -E ./update-license.sh
# ============================================================================
set -e
GITEA_BASE="${TESM_GITEA_BASE:-https://gitea.int.eertmoed.net}"
REPO_OWNER="${TESM_REPO_OWNER:-alientim}"
REPO_NAME="${TESM_REPO_NAME:-tesm}"
RELEASE_TAG="${TESM_RELEASE_TAG:-latest}"
GITEA_USER="${TESM_GITEA_USER:-}"
GITEA_TOKEN="${TESM_GITEA_TOKEN:-}"
PACKAGE_NAME="tesm-${RELEASE_TAG}.tar.gz"
DOWNLOAD_URL="${GITEA_BASE}/${REPO_OWNER}/${REPO_NAME}/releases/download/${RELEASE_TAG}/${PACKAGE_NAME}"
WORK_DIR="/tmp/tesm-license-update-$(date +%s)"
PACKAGE_FILE="$WORK_DIR/${PACKAGE_NAME}"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
if [ "$(id -u)" -ne 0 ]; then
echo "Bitte als root ausführen (sudo ./update-license.sh)." >&2
exit 1
fi
echo -e "${YELLOW}============================================================================${NC}"
echo -e "${YELLOW} TESM-Lizenzserver Update/Reinstall — Release \"${RELEASE_TAG}\"${NC}"
echo -e "${YELLOW}============================================================================${NC}"
echo
echo "Lädt das Release-Paket herunter (enthält TESM und den Lizenzserver"
echo "zusammen) und übergibt Installation/Update an install-license.sh"
echo "daraus -- deployt ausschließlich srv/tesm-license/, lässt eine"
echo "eventuell auf demselben Host vorhandene TESM-Installation unberührt."
echo
read -r -p "Fortfahren? [y/N] " confirm
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
echo "Abgebrochen — nichts wurde verändert."
exit 0
fi
echo -e "${RED}${NC} Lade Paket von ${DOWNLOAD_URL}..."
mkdir -p "$WORK_DIR"
CURL_AUTH=()
if [ -n "$GITEA_USER" ] && [ -n "$GITEA_TOKEN" ]; then
CURL_AUTH=(-u "${GITEA_USER}:${GITEA_TOKEN}")
fi
curl -fsSL "${CURL_AUTH[@]}" -o "$PACKAGE_FILE" "$DOWNLOAD_URL"
echo -e "${GREEN}${NC} Paket heruntergeladen ($(du -h "$PACKAGE_FILE" | cut -f1))."
echo -e "${RED}${NC} Entpacke Paket..."
mkdir -p "$WORK_DIR/pkg"
tar xzf "$PACKAGE_FILE" -C "$WORK_DIR/pkg" --strip-components=1
echo -e "${GREEN}${NC} Paket entpackt."
echo -e "${RED}${NC} Starte install-license.sh aus dem Paket..."
bash "$WORK_DIR/pkg/install-license.sh"
echo
echo -e "${GREEN}============================================================================${NC}"
echo -e "${GREEN} TESM-Lizenzserver Update/Reinstall (Release \"${RELEASE_TAG}\") abgeschlossen.${NC}"
echo -e "${GREEN}============================================================================${NC}"