add shlink
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 12s

This commit is contained in:
j
2026-01-14 16:01:05 +13:00
parent 8a0d104dc2
commit dc4d42ed31
14 changed files with 377 additions and 0 deletions

32
shlink/backup.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/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"
# 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"
# Dump MariaDB database before backup
echo "Dumping MariaDB database..."
docker exec ${CONTAINER_NAME}_db mariadb-dump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "${DATA_PATH}/database.sql" || _die "Failed to dump database"
# Stop containers for consistent backup
docker compose stop
# Backup using dropshell's backup system
# shellcheck disable=SC2046
backup_items $(get_shlink_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 start
echo "Backup created successfully"