added script
This commit is contained in:
parent
f18d098eda
commit
71b6f1a8e4
62
backup.sh
Executable file
62
backup.sh
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
DATA_DIR="${BASE_DIR}/vw-data"
|
||||
ENV_FILE="${BASE_DIR}/.env"
|
||||
BACKUP_DIR="${BASE_DIR}/.backup"
|
||||
KEEP_LAST=7
|
||||
|
||||
COMPOSE_CMD="docker compose"
|
||||
|
||||
TIMESTAMP="$(date +'%Y%m%d-%H%M%S')"
|
||||
BACKUP_FILE="${BACKUP_DIR}/vaultwarden-backup-${TIMESTAMP}.tar.gz"
|
||||
|
||||
echo "======================================================"
|
||||
echo ">>> Vaultwarden BACKUP START"
|
||||
echo ">>> Time: $(date)"
|
||||
echo ">>> Directory: ${BASE_DIR}"
|
||||
echo "======================================================"
|
||||
|
||||
# 1. STOP container
|
||||
echo ">>> Stopping Vaultwarden (docker compose down)..."
|
||||
${COMPOSE_CMD} down
|
||||
|
||||
# Create backup dir if missing
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
|
||||
# Sanity checks
|
||||
if [[ ! -d "${DATA_DIR}" ]]; then
|
||||
echo "ERROR: Data directory not found: ${DATA_DIR}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "${ENV_FILE}" ]]; then
|
||||
echo "ERROR: .env file not found: ${ENV_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. CREATE BACKUP TAR.GZ
|
||||
echo ">>> Creating backup: ${BACKUP_FILE}"
|
||||
tar -czf "${BACKUP_FILE}" \
|
||||
-C "${BASE_DIR}" \
|
||||
.env \
|
||||
vw-data
|
||||
|
||||
echo ">>> Backup successfully created."
|
||||
|
||||
# 3. CLEAN OLD BACKUPS
|
||||
echo ">>> Cleaning old backups (keep last ${KEEP_LAST})..."
|
||||
ls -1t "${BACKUP_DIR}"/vaultwarden-backup-*.tar.gz 2>/dev/null | tail -n +$((KEEP_LAST+1)) | xargs -r rm -f
|
||||
|
||||
echo ">>> Current backups:"
|
||||
ls -1 "${BACKUP_DIR}"
|
||||
|
||||
# 4. START container again
|
||||
echo ">>> Starting Vaultwarden (docker compose up -d)..."
|
||||
${COMPOSE_CMD} up -d
|
||||
|
||||
echo "======================================================"
|
||||
echo ">>> BACKUP FINISHED OK"
|
||||
echo ">>> Vaultwarden is running again."
|
||||
echo "======================================================"
|
||||
Loading…
Reference in a new issue