#!/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 "======================================================"