Summary
- Added stack-level backup coverage with Docker Compose/Swarm grouping, stack configuration badges, and quick volume/job actions.
- Added volume backup coverage states so volumes can be shown as backed up, pending backup, or unprotected.
- Persisted backup archive metadata on successful runs, including backup key and backup size when the destination can report it.
- Surfaced backup sizes in job details, run history, run details, recent backup runs, volume coverage, and Shoutrrr notifications.
- Added the
{{ backup_size }}notification template token and included backup size in default success notifications when available. - Improved backup job list UX by making rows/cards open the job details directly and removing the redundant view icon.
- Completed locale keys across supported frontend locales, using English fallback values where translations were missing.
- Updated API/OpenAPI responses and docs for volume coverage, backup metadata, and stack coverage.
Upgrade Notes
- This release includes a database migration adding
backup_keyandbackup_size_bytestobackup_runs. - Existing backup runs will not have archive size metadata; sizes are captured for new successful runs when the destination listing can find the generated archive.
- If a backup succeeds but archive metadata cannot be detected, the backup remains successful and the size is shown as unknown.
- Stack grouping depends on Docker volume labels from Compose or Swarm. Run a volume sync after upgrading if stack data looks incomplete.
- Notification templates can now use
{{ backup_size }}. The token is empty when the size is unknown.
Verification
- GitHub Actions tests workflow passed on main for 66d6518.
- GitHub Actions documentation deploy workflow passed on main for 66d6518.
- GitHub Actions container image publish workflow passed on main for 66d6518.
- Local verification before merge included
npm run build, Pint, locale key completeness checks, targeted feature tests, and the full PHP test suite.