diff --git a/scripts/backup/vw-backup.sh b/scripts/backup/vw-backup.sh new file mode 100644 index 0000000..0c67a1b --- /dev/null +++ b/scripts/backup/vw-backup.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +# This script requires root privileges and the existance of LOG_DIR and + +set -Eeuo pipefail +shopt -s failglob + +GPG_RECIP="wekuz@duck.com" + +DATA_DIR="/var/lib/vaultwarden/data" +BACKUP_DIR="$(mktemp -d /tmp/vw-backup.XXXXXX)" +DB_FILE="$BACKUP_DIR/db.sqlite3" +TAR_FILE="$BACKUP_DIR/vw-backup.tar.zst" +GPG_FILE="$TAR_FILE.gpg" + +LOG_DIR="/var/log/vaultwarden" +LOG_FILE="$LOG_DIR/backup.log" +STATUS_FILE="/var/lib/glance/assets/vw-backup.json" + +exec >>"$LOG_FILE" 2>&1 + +write_status() { + local status="$1" + local error_msg="${2:-null}" + local last_success="${3:-null}" + local size_bytes="${4:-null}" + + cat >"$STATUS_FILE" <