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