Back up with confidence. Restore with clarity.
bbackup is an encrypted, restic-based backup tool for Linux system administrators, homelab and self-hosted operators, and small infrastructure teams. It brings local file backups, selected database workflows, verified file restores, and observable scheduled jobs into one operator workflow.
Get started · Install · Qualification evidence · Automation and agents · All documentation
Use bbackup when you want to know what a job captured, whether each repository copy succeeded, and whether files can be restored into a clean destination.
- Set up once. The terminal dashboard guides source, encrypted storage, schedule, and enrollment. Portable policy records job intent; private host bindings hold paths and credential-file references.
- Capture and copy. Create encrypted restic snapshots of file trees and optionally copy a successful snapshot to a separately configured repository. Results show the outcome for each destination.
- Restore and verify. Restore files into a new directory and ask restic to verify them. This checks file data, not application startup or full-machine recovery.
- Schedule and observe. Run named jobs from the dashboard, the JSON CLI, or generated user-level systemd timers. Progress, results, repository locks, and interrupted-operation status are visible to operators and automation.
- Recover deliberately. An interrupted mutation can have an uncertain result. Inspect the destination and reconcile that operation explicitly; bbackup does not automatically replay it.
For packaged releases, start with the latest release downloads and installation guide.
Check the tested scope before choosing a workflow. Cloud protection and complete-machine recovery remain unqualified.
From a development checkout with Python 3.12+, uv, and restic installed:
git clone https://github.com/CruxExperts/BestBackup.git
cd BestBackup
uv sync --locked
uv run bbackup production tuiChoose a source folder, encrypted storage, and a schedule. Review and enroll once. The dashboard then guides you through initializing storage, running the first backup, and restoring into a new folder. Advanced settings and the command line remain available. The quick start covers migration, password custody, replica setup, and deliberate schedule activation.
The qualified scope is unchanged from v2.0.5 and v2.0.4: local file capture and restore; live capture and restore for PostgreSQL 17.11, MySQL 8.4.12, and MariaDB 11.8.9; headless dashboard happy paths; and AMD64 Ubuntu 24.04/26.04 packages. User-timer reboot qualification covers only the components and conditions in the recorded guest drill.
B2/AWS protection, native Docker, ARM64 backup/restore, cross-application-version upgrades and rollback, root-owned systemd package templates, and off-host recovery remain unqualified. Package-build or install checks alone do not qualify those paths. Keep an independently retrievable copy of repository passwords; a second repository on the same host does not protect against host loss.
Experimental cloud credentials, central recovery and retention, remote-primary capture, and reviewed Linux coverage ship with documented limits. Issues #23–#26 were canceled and closed as not planned. Historical B2 maintenance interruption and lifecycle guard trials do not prove prune completion, elapsed expiry, physical reclamation or provider protection. The qualification record owns the complete evidence and support limits.
v2.0.6 includes issue #30 maintenance: reviewed stale-lock handling, optional local last/weekly retention, strict keep-all parsing, B2 lifecycle-read compatibility and nested cache handling. Follow the maintenance quick start for the new commands.
The current maintenance batch also repairs compact-terminal layouts and refreshes reviewed Python and CI dependencies. Release preparation uses the official Release Please CLI with a reviewed lockfile and patched Node runtime; publication still requires the signed candidate, tag, checksums and artifact verification described in versioning.
- Install: prerequisites, release packages, and development setup.
- Quick start: first backup, schema-2 migration, replica, verified restore, and user-level scheduling.
- Automation and agent integration: schemas, progress, results, and uncertain-operation reconciliation.
- Production command reference: generated command and input-schema reference.
- Cloud storage: implemented provider paths and their qualification limits.
- Encryption: password custody and legacy encryption compatibility.
- Architecture: shared operations, durable state, and safety boundaries.
- Legacy management: retained 1.x Docker/YAML commands and compatibility guidance.
- Support · Security · Contributing
Code is available under the MIT License. Original documentation artwork carries separate asset terms and provenance.
Slavic Kozyuk
© 2026 Crux Experts LLC — MIT License
