32 lines
1.0 KiB
Bash
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"
|