Files
shell/docs/immich-backup-enhancement-summary.md
2025-05-29 11:25:02 -04:00

3.8 KiB

Immich Backup Enhancement Summary

Date: May 26, 2025

Overview

Enhanced the Immich backup script with notification system and Backblaze B2 cloud storage integration, following the same pattern as the existing Plex backup script.

New Features Added

🔔 Webhook Notifications

  • Start notification: Sent when backup begins
  • Success notification: Sent when backup completes with file details
  • Warning notification: Sent when local backup succeeds but B2 upload fails
  • Error notification: Sent when backup process fails
  • Rich content: Includes file names, sizes, and emojis for better readability

☁️ Backblaze B2 Integration

  • B2 CLI tool: Downloaded and installed b2-linux v4.3.2 in immich directory
  • Automatic uploads: Both database and upload archives are uploaded to B2
  • Organized storage: Files stored in immich-backups/ folder in B2 bucket
  • Error resilience: Script continues if B2 upload fails (local backup preserved)
  • Configuration: Optional B2 settings in .env file

📊 Enhanced Reporting

  • File size reporting: Backup sizes included in notifications
  • Upload status: B2 upload success/failure status in notifications
  • Detailed logging: All activities logged to centralized logs directory

Technical Implementation

Notification Function

send_notification() {
    local title="$1"
    local message="$2" 
    local status="${3:-info}"
    # Sends to webhook with tags: backup,immich,hostname
}

B2 Upload Function

upload_to_b2() {
    local file_path="$1"
    # Authorizes and uploads to B2 bucket
    # Returns success/failure status
}

Configuration Updates

Added to .env file:

# Notification settings
WEBHOOK_URL="https://notify.peterwood.rocks/lab"

# Backblaze B2 settings (optional)
B2_APPLICATION_KEY_ID=your_key_id_here
B2_APPLICATION_KEY=your_application_key_here  
B2_BUCKET_NAME=your_bucket_name_here

Files Modified

  1. /home/acedanger/shell/immich/backup-immich.sh

    • Added notification functions
    • Added B2 upload functionality
    • Enhanced error handling with notifications
    • Added file size reporting
  2. /home/acedanger/shell/.env

    • Added webhook URL configuration
    • Added B2 configuration template
  3. /home/acedanger/shell/immich/README.md

    • Documented new notification features
    • Added B2 setup instructions
    • Enhanced feature documentation

Files Added

  1. /home/acedanger/shell/immich/b2-linux
    • Backblaze B2 CLI tool v4.3.2
    • Executable file for B2 operations

Testing Results

Successful test run showed:

  • Environment variables loaded correctly
  • Webhook notifications sent successfully
  • Database backup created and compressed
  • Container pause/unpause functionality working
  • Error handling and cleanup working properly
  • Notifications include proper emojis and formatting

Next Steps

User Action Required

  1. Configure B2 (Optional):

    • Create Backblaze B2 account and bucket
    • Generate application keys
    • Add credentials to .env file
  2. Test Full Backup:

    • Run complete backup: ./immich/backup-immich.sh
    • Verify notifications received
    • Check B2 uploads (if configured)
  3. Setup Automation:

    • Add to crontab for scheduled backups
    • Monitor backup logs in /home/acedanger/shell/logs/

Benefits

  • Visibility: Real-time notifications of backup status
  • Reliability: Off-site backup storage with B2
  • Consistency: Same notification pattern as Plex backups
  • Monitoring: Enhanced logging and error reporting
  • Scalability: Easy to extend with additional storage providers

Pattern Consistency

The implementation follows the same notification and logging patterns established in the Plex backup script, ensuring consistency across the backup system.