#!/bin/bash # ============================================= # ERPNext Full Restore Script mit S3 Download # Version 16 - Mit Verschlüsselung # ============================================= # ================== KONFIGURATION ================== SITE="erp.berchmans.de" # z.B. erp.meine-domain.de S3_BUCKET="dein-bucket-name" # z.B. erpnext-backups BACKUP_FOLDER="" # Leer lassen = neuesten Ordner automatisch nehmen ENCRYPTION_KEY="" # Dein Encryption Key AWS_PROFILE="default" # Falls es mehrere AWS-Profile sind # =================================================== if [ -z "$ENCRYPTION_KEY" ]; then echo "Fehler: ENCRYPTION_KEY muss gesetzt werden!" exit 1 fi echo "=== ERPNext S3 Restore Start ===" echo "Site: $SITE" echo "Bucket: $S3_BUCKET" echo "Startzeit: $(date)" echo "==================================================" cd ~/frappe-bench # 1. Neueste Backup-Version aus S3 herunterladen echo "1. Lade neuestes Backup aus S3 herunter..." if [ -z "$BACKUP_FOLDER" ]; then echo " → Automatisch neuesten Backup-Ordner suchen..." LATEST=$(aws s3 ls s3://$S3_BUCKET/ --recursive | sort | tail -1 | awk '{print $4}' | xargs dirname) BACKUP_FOLDER="s3://$S3_BUCKET/$LATEST" fi # Lokalen Backup-Ordner erstellen LOCAL_BACKUP_DIR=~/backups/$(date +%Y-%m-%d)_s3_restore mkdir -p $LOCAL_BACKUP_DIR echo " → Lade Backup herunter nach: $LOCAL_BACKUP_DIR" aws s3 cp $BACKUP_FOLDER/ $LOCAL_BACKUP_DIR/ --recursive --profile $AWS_PROFILE echo " → Download abgeschlossen." # 2. Restore durchführen echo "2. Restore wird durchgeführt..." bench --site $SITE restore \ $LOCAL_BACKUP_DIR/database.sql.gz \ --with-public-files $LOCAL_BACKUP_DIR/files.tar \ --with-private-files $LOCAL_BACKUP_DIR/private-files.tar \ --encryption-key "$ENCRYPTION_KEY" \ --force # 3. Nacharbeiten echo "3. Migration, Cache und Restart..." bench --site $SITE migrate bench --site $SITE clear-cache bench build bench restart echo "==================================================" echo "Restore mit S3-Download erfolgreich abgeschlossen!" echo "Endzeit: $(date)" echo "" echo "Nächste Schritte:" echo "- E-Mail-Konto prüfen und neu einrichten" echo "- Google Drive Autorisierung erneuern" echo "- Scheduler aktivieren"