update-picpeak.sh hinzugefügt

This commit is contained in:
2026-06-06 08:06:28 +02:00
parent 4eed844259
commit f543ead2f9
+110
View File
@@ -0,0 +1,110 @@
#!/bin/bash
set -Eeuo pipefail
APP_DIR="/opt/picpeak"
BACKUP_DIR="/root/picpeak-backups"
LOG_FILE="/var/log/picpeak-update.log"
RETENTION_DAYS=30
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
mkdir -p "$BACKUP_DIR"
exec > >(tee -a "$LOG_FILE") 2>&1
echo ""
echo "================================================="
echo " PicPeak Update gestartet: $DATE"
echo "================================================="
cd "$APP_DIR"
# Git Safe Directory
git config --global --add safe.directory "$APP_DIR" >/dev/null 2>&1 || true
# Prüfungen
[ -d ".git" ] || { echo "FEHLER: Kein Git Repository"; exit 1; }
echo ""
echo "1. Dateibackup erstellen..."
tar -czf \
"$BACKUP_DIR/picpeak-files-$DATE.tar.gz" \
"$APP_DIR"
echo "OK"
echo ""
echo "2. Datenbank sichern..."
DB_USER=$(grep '^DB_USER=' .env | cut -d= -f2)
DB_NAME=$(grep '^DB_NAME=' .env | cut -d= -f2)
docker exec picpeak-postgres \
pg_dump -U "$DB_USER" "$DB_NAME" \
> "$BACKUP_DIR/picpeak-db-$DATE.sql"
echo "OK"
echo ""
echo "3. Git Update..."
git pull
echo "OK"
echo ""
echo "4. Docker Images neu bauen..."
docker compose build --no-cache
echo "OK"
echo ""
echo "5. Container starten..."
docker compose up -d
echo "OK"
echo ""
echo "6. Healthcheck..."
sleep 20
docker compose ps
if docker compose ps | grep -q unhealthy; then
echo "FEHLER: Mindestens ein Container unhealthy"
exit 1
fi
echo "OK"
echo ""
echo "7. Alte Docker Images bereinigen..."
docker image prune -f
echo "OK"
echo ""
echo "8. Alte Backups löschen (> $RETENTION_DAYS Tage)..."
find "$BACKUP_DIR" -type f -mtime +$RETENTION_DAYS -delete
echo "OK"
echo ""
echo "================================================="
echo " Update erfolgreich abgeschlossen"
echo "================================================="
echo ""
echo "Aktive Container:"
docker compose ps
echo ""
echo "Neueste Backups:"
ls -lh "$BACKUP_DIR" | tail -10