Ctrl K
ComunidadGuías…

apps/navidrome/backup.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/usr/bin/env bash
set -euo pipefail

script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$script_dir"

if [[ -f "$script_dir/.env" ]]; then
  set -a
  # shellcheck disable=SC1091
  . "$script_dir/.env"
  set +a
fi

volume="${NAVIDROME_DATA_VOLUME:-navidrome-data}"
backup_dir="${NAVIDROME_BACKUP_DIR:-$script_dir/backups}"
timestamp="$(date -u +%Y%m%dT%H%M%SZ)"

mkdir -p "$backup_dir"

# The SQLite database only copies consistently from a stopped server.
docker compose stop navidrome
restart_container() {
  docker compose start navidrome >/dev/null
}
trap restart_container EXIT

docker run --rm \
  -v "${volume}:/source:ro" \
  -v "${backup_dir}:/backup" \
  alpine:3.22 \
  tar -C /source -czf "/backup/navidrome-${timestamp}.tar.gz" .

echo "Backup created: $backup_dir/navidrome-${timestamp}.tar.gz"
echo "The music library is not in the archive: copy NAVIDROME_MUSIC_LOCATION separately."