add shlink
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 12s
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 12s
This commit is contained in:
44
shlink/restore.sh
Executable file
44
shlink/restore.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/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" "DB_NAME" "DB_USER" "DB_PASSWORD" "DB_ROOT_PASSWORD"
|
||||
|
||||
# Export variables for docker compose
|
||||
export CONTAINER_NAME DATA_PATH HTTP_PORT DEFAULT_DOMAIN IS_HTTPS_ENABLED GEOLITE_LICENSE_KEY INITIAL_API_KEY
|
||||
export DB_NAME DB_USER DB_PASSWORD DB_ROOT_PASSWORD
|
||||
export IMAGE_REGISTRY IMAGE_REPO IMAGE_TAG DB_IMAGE_REGISTRY DB_IMAGE_REPO DB_IMAGE_TAG
|
||||
|
||||
cd "$SCRIPT_DIR" || _die "Failed to change to script directory"
|
||||
|
||||
# Stop and remove containers before restore
|
||||
docker compose down
|
||||
|
||||
# Restore files using dropshell's restore system
|
||||
# shellcheck disable=SC2046
|
||||
restore_items $(get_shlink_volumes) || _die "Failed to restore data from backup file"
|
||||
|
||||
# Start database container only
|
||||
docker compose up -d db
|
||||
echo "Waiting for database to be ready..."
|
||||
sleep 10
|
||||
|
||||
# Restore database if dump exists
|
||||
if [ -f "${DATA_PATH}/database.sql" ]; then
|
||||
echo "Restoring MariaDB database..."
|
||||
# Drop and recreate database
|
||||
docker exec ${CONTAINER_NAME}_db mariadb -u root -p"$DB_ROOT_PASSWORD" -e "DROP DATABASE IF EXISTS ${DB_NAME}; CREATE DATABASE ${DB_NAME};"
|
||||
# Restore from dump
|
||||
docker exec -i ${CONTAINER_NAME}_db mariadb -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" < "${DATA_PATH}/database.sql" || _die "Failed to restore database"
|
||||
# Clean up dump file
|
||||
rm -f "${DATA_PATH}/database.sql"
|
||||
echo "Database restored successfully"
|
||||
else
|
||||
echo "Warning: No database dump found in backup"
|
||||
fi
|
||||
|
||||
# Start all containers
|
||||
docker compose up -d
|
||||
|
||||
echo "Restore complete! Service is running."
|
||||
Reference in New Issue
Block a user