This release makes BorgWarehouse a lot more flexible about where your backups live: you can now send each repository to a different external storage, straight from the UI.
✨ Features
- Per-repository external storage 💾 : you can now keep some repositories local and send others to one or several external storages (an SSHFS remote, an NFS or SMB/CIFS share, a dedicated disk, an
rclonemount, etc.). The target is picked from a "Storage location" selector when creating a repository. BorgWarehouse stores the data on the chosen storage and adds a symbolic link insiderepos/automatically, so quota, storage usage and last backup keep working transparently. Available targets are declared by the admin with the newSTORAGE_TARGETSenvironment variable.
-
Friendly names for your storage targets 🏷️ : mount paths are often cryptic, so you can give each target a readable name with the
path|namesyntax, for exampleSTORAGE_TARGETS="/mnt/nas|Home NAS,/mnt/backup-disk". The name is shown in the storage selector and on each repository, while the real path stays the source of truth. -
Storage targets monitoring 🟢🔴 : a new Storage targets section in Account → Storage lists every declared target with a live status (online / unreachable) and a Test again button, so you can tell at a glance whether a mount is reachable and writable.
🎨 UI/UX
- New Storage tab in the account settings
- Storage chip on each repository in the list, showing its storage target on hover
- Icons added across all account settings categories for a more consistent look
🔄 Miscellaneous
- Safety guard: BorgWarehouse refuses to create a repository whose external target is the
repospool itself or nested inside it, to avoid double-counting and broken links - Documentation updated: External storage and the
STORAGE_TARGETSenvironment variable - Additional unit and shell (bats) tests covering the storage targets logic
💖 Support the project
If you like my work, if you use BorgWarehouse in your business, or if you just want to give, think about sponsoring me.
🤝 Thank you to all contributors and sponsors!