commit ccf69f8fb9ebcb486e7f6daa04e43cdd42bd634e Author: Roland Strunze <1+xosna@noreply.localhost> Date: Sat May 23 16:04:50 2026 +0200 update-picpeak.sh hinzugefügt diff --git a/update-picpeak.sh b/update-picpeak.sh new file mode 100644 index 0000000..b9d2303 --- /dev/null +++ b/update-picpeak.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +set -euo pipefail + +APP_DIR="/opt/picpeak" +BACKUP_DIR="/root/picpeak-backups" +LOG_FILE="/var/log/picpeak-update.log" +DATE=$(date +"%Y-%m-%d_%H-%M-%S") + +mkdir -p "$BACKUP_DIR" + +exec > >(tee -a "$LOG_FILE") 2>&1 + +echo "=================================================" +echo " PicPeak Update gestartet: $DATE" +echo "=================================================" + +# Prüfen ob Verzeichnis existiert +if [ ! -d "$APP_DIR" ]; then + echo "FEHLER: $APP_DIR existiert nicht!" + exit 1 +fi + +cd "$APP_DIR" + +# Prüfen ob Git Repo +if [ ! -d ".git" ]; then + echo "FEHLER: Kein Git-Repository gefunden!" + exit 1 +fi + +# Prüfen ob Docker Compose vorhanden +if ! command -v docker >/dev/null 2>&1; then + echo "FEHLER: Docker nicht gefunden!" + exit 1 +fi + +echo "" +echo "1. Backup erstellen..." + +tar -czf "$BACKUP_DIR/picpeak-backup-$DATE.tar.gz" "$APP_DIR" + +echo "Backup gespeichert:" +echo "$BACKUP_DIR/picpeak-backup-$DATE.tar.gz" + +echo "" +echo "2. Git Status prüfen..." + +git status + +echo "" +echo "3. Neuen Code herunterladen..." + +git pull + +echo "" +echo "4. Docker Container bauen..." + +docker compose build --no-cache + +echo "" +echo "5. Container neu starten..." + +docker compose up -d + +echo "" +echo "6. Healthcheck prüfen..." + +sleep 15 + +if docker compose ps | grep -q "unhealthy"; then + echo "WARNUNG: Mindestens ein Container ist unhealthy!" + docker compose ps + exit 1 +fi + +echo "" +echo "7. Alte Docker Images bereinigen..." + +docker image prune -f + +echo "" +echo "=================================================" +echo " PicPeak Update erfolgreich abgeschlossen" +echo "=================================================" + +docker compose ps \ No newline at end of file