update-picpeak.sh hinzugefügt
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user