25 lines
719 B
Bash
Executable File
25 lines
719 B
Bash
Executable File
#!/bin/bash
|
|
# Daily backup for Vaultwarden data volume
|
|
# Creates compressed tar.gz archives with 7-day rotation
|
|
|
|
set -euo pipefail
|
|
|
|
BACKUP_DIR="/srv/docker_services/www/sites/knusperkerne/vault/backups"
|
|
VOLUME_NAME="vaultwarden-data"
|
|
DATE=$(date +%F)
|
|
ARCHIVE="$BACKUP_DIR/vaultwarden_${DATE}.tar.gz"
|
|
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
echo "[INFO] Creating backup for Vaultwarden volume: $VOLUME_NAME"
|
|
docker run --rm \
|
|
-v "${VOLUME_NAME}:/data:ro" \
|
|
-v "${BACKUP_DIR}:/backup" \
|
|
alpine tar czf "/backup/vaultwarden_${DATE}.tar.gz" /data
|
|
|
|
# Keep only 7 most recent backups
|
|
echo "[INFO] Rotating old backups..."
|
|
ls -1t "$BACKUP_DIR"/vaultwarden_*.tar.gz | tail -n +8 | xargs -r rm -f
|
|
|
|
echo "[OK] Backup completed: $ARCHIVE"
|