Files
dropshell-templates/seafile/backup.sh
j 767d4eb21e
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 7s
config: Add 1 and update 10 files
2025-12-29 12:59:13 +13:00

33 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# shellcheck disable=SC1091
source "${AGENT_PATH}/common.sh"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/_volumes.sh"
_check_required_env_vars "CONTAINER_NAME" "DATA_PATH"
# Export variables for docker compose
export CONTAINER_NAME DATA_PATH HTTP_PORT IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG
export MYSQL_ROOT_PASSWORD DB_PASSWORD SEAFILE_ADMIN_EMAIL SEAFILE_ADMIN_PASSWORD
export SEAFILE_SERVER_HOSTNAME SEAFILE_SERVER_PROTOCOL TZ
cd "$SCRIPT_DIR" || _die "Failed to change to script directory"
# Dump MariaDB database before backup
echo "Dumping MariaDB database..."
docker exec "${CONTAINER_NAME}_db" mariadb-dump -u root -p"${MYSQL_ROOT_PASSWORD}" --all-databases > "${DATA_PATH}/database.sql" || _die "Failed to dump database"
# Stop containers for consistent backup
docker compose -p "${CONTAINER_NAME}" stop
# Backup using dropshell's backup system
# shellcheck disable=SC2046
backup_items $(get_seafile_volumes) || _die "Failed to create backup"
# Clean up database dump (it's now in the backup)
rm -f "${DATA_PATH}/database.sql"
# Restart containers
docker compose -p "${CONTAINER_NAME}" start
echo "Backup created successfully"