Skip to content

v2.94.0

Latest

Choose a tag to compare

@marcpope marcpope released this 05 Sep 00:19
· 1 commit to main since this release

📱 BBS Manager is here

BBS Manager is now available on the Apple App Store. Manage your Borg Backup Server from your phone, with native push notifications for failed backups, server status, and more. It's an optional companion app; see the announcement for details and how to connect it under Settings → Push Service. If you run BBS Manager, upgrade to this release for optimal results: it adds the API the app uses for BorgBase accounts and repository import.


New: BorgBase accounts

BorgBase gives every repository its own SSH login, so an install that backs up to BorgBase ended up with one storage location per repository and no view of the account behind them. This release adds a BorgBase account that groups them.

Setup. Storage → Add SSH Host → BorgBase now asks for an API token. Create one in BorgBase under Account → API → New Token, name it (for example "BBS") and choose Full Access. BBS validates the token, generates its own SSH key and registers it on the account, reads the plan's storage and repository limits, and attaches any BorgBase locations you already have whose SSH user matches a repository on the account. The old connection-string form is still available for a single repository without a token.

Storage page. One card per account with the plan, repositories used against the plan limit, and an account-wide usage bar. The dashboard's storage widget shows accounts the same way.

Account page. One line per repository with the client it belongs to, usage, last modified time, a connection test and delete. From here you can:

  • Add a repository. Pick the client, a name, a region and an optional quota. BBS creates the repository on BorgBase, initialises borg on it and creates the client's repository in one step. The client is fixed at creation. The button disables when the plan's repository limit is reached.
  • Add a repository that already exists on BorgBase. Repositories on the account that BBS doesn't have are listed. Adding one grants the BBS key access and creates the location; assign it to a client from the client's Repos tab with its passphrase.
  • Delete. Removes the storage location from BBS. A checkbox deletes the repository on BorgBase as well; leave it unticked and the data stays there.

Quota sync is now one API call per account every 15 minutes instead of one per repository. Existing BorgBase locations keep working unchanged; they show a note on the Storage page until you connect the account.

New: repository check progress (#464)

Check and repair jobs now show progress while borg runs. The segment check reports a percentage, and the archive check shows which archive is being checked, N of M, in the queue list and on the job page. Borg's phase messages and any problems it finds land in the activity log as they happen, and a check that reports problems finishes as completed with warnings instead of a clean pass. Remote SSH repositories get the same progress. Thanks to the reporter.

Fixes

  • Long server-side jobs no longer stall the scheduler (#464). Since the worker split in 2.90, each prune, compact, check or catalog job runs in its own process, but that process inherited the cron's lock. For as long as the job ran, every following minute's scheduler pass was skipped: nothing was scheduled and the dashboard reported the scheduler as not running. A 40-minute repository check made it obvious. Workers now start without the lock, so a long job only holds its own repository.

API

For BBS Manager and other integrations:

  • GET/POST /api/v1/borgbase-accounts and GET/PUT/DELETE /api/v1/borgbase-accounts/{id}, plus refresh, repos (create for a client), repos/import (add an existing BorgBase repository) and locations/{id} (delete, optionally on BorgBase).
  • POST /api/v1/clients/{id}/repositories/import/verify and POST /api/v1/clients/{id}/repositories/import register an existing repository for a client, local or remote SSH, matching the web's Import Repository flow.
  • Remote SSH config and dashboard remote_storage entries carry borgbase_account_id.

No agent changes in this release; agents stay on 2.93.9.