Files
dropshell-templates/wikijs/backup.sh
j 624a5d8575
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 39s
Update 2 files
2025-12-19 17:48:43 +13:00

39 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
source "${AGENT_PATH}/common.sh"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
_check_required_env_vars "CONTAINER_NAME" "DATA_PATH" "DB_NAME" "DB_USER"
# Export variables for docker compose
export CONTAINER_NAME DATA_PATH HTTP_PORT PUID PGID TZ IMAGE_TAG DB_NAME DB_USER DB_PASS
cd "$SCRIPT_DIR"
# Create backup directory
BACKUP_DIR="${DATA_PATH}/backups"
mkdir -p "$BACKUP_DIR"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/wikijs_backup_${TIMESTAMP}.tar.gz"
echo "Creating backup..."
# Dump PostgreSQL database
echo "Dumping PostgreSQL database..."
docker exec ${CONTAINER_NAME}_db pg_dump -U "$DB_USER" "$DB_NAME" > "${BACKUP_DIR}/database.sql" || _die "Failed to dump database"
# Create tarball of config, data, and database dump
echo "Creating backup archive..."
tar -czf "$BACKUP_FILE" \
-C "${DATA_PATH}" \
config \
data \
-C "${BACKUP_DIR}" \
database.sql \
|| _die "Failed to create backup archive"
# Clean up temporary database dump
rm -f "${BACKUP_DIR}/database.sql"
echo "Backup created: $BACKUP_FILE"
echo "Backup size: $(du -h "$BACKUP_FILE" | cut -f1)"