NewsArchiverV2/docker_backup.sh

32 lines
1.0 KiB
Bash

#!/bin/bash
# Docker backup script for NewsArchiver
# This script backs up archived data from the Docker volume to a local or NAS location
set -e
BACKUP_DIR="${BACKUP_DIR:-./backups}"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="newsarchiver_backup_${TIMESTAMP}.tar.gz"
echo "Starting backup..."
echo "Backup location: ${BACKUP_DIR}/${BACKUP_NAME}"
# Create backup directory
mkdir -p "$BACKUP_DIR"
# Create backup from the Docker volume
docker run --rm \
-v newsarchiver_data:/data:ro \
-v "${BACKUP_DIR}:/backup" \
alpine tar -czf "/backup/${BACKUP_NAME}" -C /data .
echo "Backup complete: ${BACKUP_DIR}/${BACKUP_NAME}"
echo ""
echo "To restore from backup:"
echo " 1. Stop the container: docker-compose down"
echo " 2. Remove the volume: docker volume rm newsarchiver_data"
echo " 3. Create a new volume: docker volume create newsarchiver_data"
echo " 4. Restore: docker run --rm -v newsarchiver_data:/data -v \${BACKUP_DIR}:/backup alpine tar -xzf /backup/${BACKUP_NAME} -C /data"
echo " 5. Start: docker-compose up -d"