Backup Reconciliation
Local Storage Sync
Local backups are now strictly synchronized with the Panel database. When prune runs, any archive not tracked in the Panel will be automatically deleted. This fixes the long-standing issue where backups deleted via Panel would remain on disk indefinitely.
Remote Retention Policy
Remote repository now follows a 7-day safety net:
- Archives that exist locally are always kept as mirrors
- Archives less than 7 days old are kept regardless of local state
- Archives older than 7 days that don't exist locally are deleted
How It Works
When you click Prune Backups in the addon settings, the Panel sends a list of all valid backup UUIDs to Wings. Wings then compares this list against the local Borg repository and deletes any archive not in the list.
Requirements
- Full reconciliation requires the autobackup addon (sends the backup list)
- Without the addon, only backups for deleted servers are cleaned up
- Prune API now accepts
valid_backupsJSON payload from Panel- Added
panel_urlandpanel_api_tokenconfig options for future standalone integration- Batch deletion uses shared cache directory to minimize I/O overhead
- All delete operations use
ionice -c3for low-priority disk access- 100ms throttle between archive deletions to reduce burst I/O
Bug Fixes
Disaster Recovery Console Downloads Fixed
- Fixed an issue where backup downloads from the Disaster Recovery Console would hang indefinitely and never start
- Downloads now work reliably, even while background sync operations are running
- Multiple downloads can now run simultaneously without blocking each other
Desktop UI Improvement
- Fixed the header layout on desktop where the logout button was overlapping the sync status indicator
- The header now displays correctly on all screen sizes
Performance Improvements
Cleaner System Logs
- Reduced unnecessary log messages from automated security scanning and failed login attempts
- System logs are now cleaner and easier to read, showing only important information
- This makes it easier to troubleshoot issues when they occur
- Native sync mode now properly isolates cache directories to prevent lock conflicts
- SFTP brute-force attempt logging reduced from ERROR/WARN to DEBUG level
- Download streaming now uses direct response writer instead of SSE-style streaming
- Removed stacktrace output for expected client disconnection errors
Changelog - December 2024
Sync
- Native sync mode added and set as default
- Parallel transfers for faster sync on large repos
- Manual sync trigger button in DRC
- Remote retention cleanup (7 days) enabled by default
- Fixed lock timeouts and race conditions
- I/O throttling to reduce server load
Performance
- DRC cache extended to 24 hours
- Progressive archive loading (loads in batches as needed)
- Removed periodic cache cleanup that caused I/O spikes
- Increased timeouts for large repositories
- Fixed out-of-memory on repos with many archives
Discord Notifications
- Fixed "New Data" showing wrong size for deduplicated backups
- Archive size now included in sync notifications
- Fixed 0 bytes display issue
Mobile UI
- Header layout fixed (logo left, title center, logout right)
- Stat cards display horizontally
- Cards use full screen width
- Pagination stays in one row
- Added per-page selector
- Fixed iOS input zoom
- Modals sized correctly
Installer
- Preserves existing config during upgrades
- Added config editor option
- Added manual sync button to DRC
- Added parallel rsync (4 concurrent streams by default)
- Added rsync_concurrency config option
- Added config value preservation during upgrades
- Fixed sync timeout issues on large repositories
- Fixed SSH connection stability for long syncs
- Updated Kopia commands with I/O throttling
- Updated SSH keepalive settings for reliability
- Updated standalone version of Autobackups to fix crontab bug
- Fixed remote sync discord log bug. It now sends proper server uuid
- Improved DRC backup list fetching and refresh
- Removed old export function, replaced with rsync
- Added refresh button to DRC
- Bug fixes for both regular and S3 backups when syncing to remote.
- Added config updater in script
- Automatic Config Migration
- Stale worker threshold is now configurable in config.yml
- Added S3 deduplicated backups support for both remote only, and local + remote mode.
