#!/bin/bash
# ==============================================================================
# HomeLab Automated Backup & Uptime Kuma Push Script
# Target: /home/user/homelab-portal and Portainer configs
# ==============================================================================

BACKUP_DIR="/home/user/homelab-backups"
TARGET_DIR="/home/user/homelab-portal"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="${BACKUP_DIR}/homelab_portal_backup_${TIMESTAMP}.tar.gz"

# Create backup directory if it doesn't exist
mkdir -p "${BACKUP_DIR}"

echo "[$(date)] Starting backup of ${TARGET_DIR}..."

# Compress the portal directory
tar -czf "${BACKUP_FILE}" -C "$(dirname "${TARGET_DIR}")" "$(basename "${TARGET_DIR}")"

if [ $? -eq 0 ]; then
    echo "[$(date)] Backup completed successfully: ${BACKUP_FILE}"
    
    # Optional: Delete backups older than 30 days to save space
    find "${BACKUP_DIR}" -type f -name "*.tar.gz" -mtime +30 -delete
    
    # ==========================================================================
    # Uptime Kuma Dead Man's Switch Check-in
    # Replace URL below with your Uptime Kuma Push Monitor URL if you create one
    # ==========================================================================
    # curl -s "https://status.mwbreur.eu/api/push/your_secret_key?msg=BackupOK"
    
else
    echo "[$(date)] ERROR: Backup failed!"
    exit 1
fi
