mirror of
https://github.com/acedanger/shell.git
synced 2025-12-06 03:20:12 -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.
133 lines
3.8 KiB
Markdown
133 lines
3.8 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
send_notification() {
|
|
local title="$1"
|
|
local message="$2"
|
|
local status="${3:-info}"
|
|
# Sends to webhook with tags: backup,immich,hostname
|
|
}
|
|
```
|
|
|
|
### B2 Upload Function
|
|
|
|
```bash
|
|
upload_to_b2() {
|
|
local file_path="$1"
|
|
# Authorizes and uploads to B2 bucket
|
|
# Returns success/failure status
|
|
}
|
|
```
|
|
|
|
### Configuration Updates
|
|
|
|
Added to `.env` file:
|
|
|
|
```bash
|
|
# 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.
|