diff --git a/proxmox-update.sh b/proxmox-update.sh new file mode 100755 index 0000000..56695e6 --- /dev/null +++ b/proxmox-update.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# Update-Script: 3D-Druck Kostenkalkulation im Proxmox LXC Container +# Im Container ausfuehren (pct enter oder SSH). +# +# Usage: +# ./proxmox-update.sh # interaktiv, fragt CT_ID +# ./proxmox-update.sh 201 # CT direkt angeben +# +# Von aussen (Proxmox-Host): +# pct enter 201 -- ./proxmox-update.sh 201 +# pct push 201 proxmox-update.sh /opt/3ddruck-kalkulation/proxmox-update.sh + +set -euo pipefail + +CT_ID="${1:-}" +APP_DIR="/opt/3ddruck-kalkulation" +SERVICE="3ddruck-kalkulation" + +# Pruefen ob wir im Container sind oder den CT_ID brauchen +if [ -z "$CT_ID" ]; then + if [ -d "$APP_DIR" ] && [ -f "/etc/systemd/system/$SERVICE.service" ]; then + echo "=== Update $APP_DIR ... ===" + else + echo "Usage: $0 " + echo " oder im Container ausfuehren ohne Argument" + exit 1 + fi +else + echo "=== Update via pct exec CT $CT_ID ... ===" + SCRIPT=$(realpath "$0") + pct push "$CT_ID" "$SCRIPT" "/tmp/proxmox-update.sh" + pct exec "$CT_ID" -- bash /tmp/proxmox-update.sh + exit 0 +fi + +# Im Container +if [ ! -d "$APP_DIR" ]; then + echo "Fehler: $APP_DIR existiert nicht" + exit 1 +fi + +cd "$APP_DIR" + +echo "=== Alte Abhaengigkeiten sichern ===" +OLD_DEPS=$(.venv/bin/pip freeze 2>/dev/null || echo "") + +echo "=== Pull von Git ===" +git pull + +echo "=== Python-Dependencies aktualisieren ===" +.venv/bin/pip install --upgrade flask fpdf2 pyyaml 2>/dev/null || \ + .venv/bin/pip install flask fpdf2 pyyaml + +echo "=== Service neustarten ===" +systemctl restart "$SERVICE" + +echo "=== Status ===" +sleep 2 +systemctl status "$SERVICE" --no-pager | head -10 + +echo "" +echo "=== Fertig! ==="