50 lines
1.2 KiB
Bash
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 "======================================================"
|