Add comprehensive backup system and Docker registry push script
This commit is contained in:
parent
5490229922
commit
ee84c18e90
5 changed files with 297 additions and 0 deletions
99
restore-complete.sh
Executable file
99
restore-complete.sh
Executable file
|
|
@ -0,0 +1,99 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: ./restore-complete.sh TIMESTAMP"
|
||||
echo ""
|
||||
echo "Available backups:"
|
||||
ls -1 backups/masina-dock-complete-*.tar.gz 2>/dev/null | sed 's/backups\/masina-dock-complete-/ /' | sed 's/.tar.gz//'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TIMESTAMP=$1
|
||||
BACKUP_ARCHIVE="backups/masina-dock-complete-$TIMESTAMP.tar.gz"
|
||||
BACKUP_DIR="backups/backup-$TIMESTAMP"
|
||||
|
||||
if [ ! -f "$BACKUP_ARCHIVE" ]; then
|
||||
echo "Error: Backup file not found: $BACKUP_ARCHIVE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=========================================="
|
||||
echo "MASINA-DOCK COMPLETE RESTORE"
|
||||
echo "=========================================="
|
||||
echo "Restoring from backup: $TIMESTAMP"
|
||||
echo ""
|
||||
echo "WARNING: This will overwrite all current data!"
|
||||
echo ""
|
||||
read -p "Type 'RESTORE' to continue: " confirm
|
||||
if [ "$confirm" != "RESTORE" ]; then
|
||||
echo "Restore cancelled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "STEP 1: Stopping Docker containers..."
|
||||
docker-compose down
|
||||
|
||||
echo ""
|
||||
echo "STEP 2: Extracting backup archive..."
|
||||
tar -xzf "$BACKUP_ARCHIVE" -C backups/
|
||||
|
||||
echo ""
|
||||
echo "STEP 3: Restoring database..."
|
||||
cp "$BACKUP_DIR/vehicles.db" backend/vehicles.db
|
||||
echo " Database restored"
|
||||
|
||||
echo ""
|
||||
echo "STEP 4: Restoring uploads..."
|
||||
rm -rf uploads
|
||||
cp -r "$BACKUP_DIR/uploads" .
|
||||
echo " Uploads restored"
|
||||
|
||||
echo ""
|
||||
echo "STEP 5: Restoring configuration files..."
|
||||
cp "$BACKUP_DIR/docker-compose.yml" .
|
||||
cp "$BACKUP_DIR/Dockerfile" .
|
||||
cp "$BACKUP_DIR/.env" . 2>/dev/null || true
|
||||
echo " Configuration restored"
|
||||
|
||||
echo ""
|
||||
echo "STEP 6: Restoring application files..."
|
||||
rm -rf backend frontend
|
||||
cp -r "$BACKUP_DIR/backend" .
|
||||
cp -r "$BACKUP_DIR/frontend" .
|
||||
echo " Application files restored"
|
||||
|
||||
echo ""
|
||||
echo "STEP 7: Restoring Docker image..."
|
||||
if [ -f "$BACKUP_DIR/docker-image-masina-dock.tar.gz" ]; then
|
||||
echo " Loading Docker image..."
|
||||
gunzip -c "$BACKUP_DIR/docker-image-masina-dock.tar.gz" | docker load
|
||||
echo " Docker image restored"
|
||||
else
|
||||
echo " No Docker image found, will rebuild..."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "STEP 8: Restoring Docker volumes..."
|
||||
if [ -f "$BACKUP_DIR/docker-volumes.tar.gz" ]; then
|
||||
docker volume create masina-dock_masina-data 2>/dev/null || true
|
||||
docker run --rm -v masina-dock_masina-data:/data -v "$PWD/$BACKUP_DIR":/backup alpine tar xzf /backup/docker-volumes.tar.gz -C /data
|
||||
echo " Volumes restored"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "STEP 9: Starting application..."
|
||||
docker-compose up -d --build
|
||||
|
||||
echo ""
|
||||
echo "Waiting for application to start..."
|
||||
sleep 10
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "RESTORE COMPLETED SUCCESSFULLY!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
docker-compose ps
|
||||
echo ""
|
||||
echo "Application should be available at: http://localhost:5000"
|
||||
Loading…
Add table
Add a link
Reference in a new issue