mirror of
https://github.com/acedanger/shell.git
synced 2025-12-06 06:40:13 -08:00
- Updated README.md to streamline content and improve navigation with a new Quick Navigation section. - Consolidated detailed Plex backup descriptions into dedicated documentation files. - Added comprehensive Docker Bootstrap Testing Framework documentation. - Created Immich backup enhancement summary and migration summary documents. - Implemented webhook notifications and Backblaze B2 integration in Immich backup scripts. - Centralized logging for Immich backup operations and updated configuration requirements. - Restructured Telegram bot project documentation for better clarity and organization. - Enhanced .gitignore to include environment files and Backblaze CLI tool. - Updated dotfiles README to reference new testing documentation. Resolves Documentation review #11.
3.8 KiB
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-linuxv4.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
.envfile
📊 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
-
/home/acedanger/shell/immich/backup-immich.sh- Added notification functions
- Added B2 upload functionality
- Enhanced error handling with notifications
- Added file size reporting
-
/home/acedanger/shell/.env- Added webhook URL configuration
- Added B2 configuration template
-
/home/acedanger/shell/immich/README.md- Documented new notification features
- Added B2 setup instructions
- Enhanced feature documentation
Files Added
/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
-
Configure B2 (Optional):
- Create Backblaze B2 account and bucket
- Generate application keys
- Add credentials to
.envfile
-
Test Full Backup:
- Run complete backup:
./immich/backup-immich.sh - Verify notifications received
- Check B2 uploads (if configured)
- Run complete backup:
-
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.