Netbird/scripts/backup-netbird.sh

50 lines
1.2 KiB
Bash

#!/bin/bash
set -e
BACKUP_DIR="/home/Dejan/Docker/Netbird-compose/backup"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_FILE="${BACKUP_DIR}/netbird_backup_${TIMESTAMP}.tar.gz"
echo "[*] Creating backup directory..."
mkdir -p "$BACKUP_DIR"
echo "[*] Stopping NetBird stack..."
docker compose down
echo "[*] Backing up Docker volumes..."
VOLUMES=(
"netbird_zdb_data"
"netbird_management"
"netbird_zitadel_certs"
)
TEMP_DIR="/tmp/netbird_backup_${TIMESTAMP}"
mkdir -p "$TEMP_DIR"
for VOL in "${VOLUMES[@]}"; do
echo "[*] Exporting volume: $VOL"
docker run --rm -v ${VOL}:/volume -v $TEMP_DIR:/backup \
alpine tar -czf /backup/${VOL}.tar.gz -C /volume .
done
echo "[*] Backing up configuration files..."
tar -czf "$BACKUP_FILE" \
docker-compose.yml \
*.env \
management.json \
turnserver.conf \
machinekey \
traefik-stack \
backup-netbird.sh \
$TEMP_DIR/*.tar.gz
echo "[*] Cleaning temporary files..."
rm -rf "$TEMP_DIR"
echo "[*] Starting NetBird stack again..."
docker compose up -d
echo "======================================================"
echo "Backup created: $BACKUP_FILE"
echo "======================================================"