BorgBackup: deduplicating archiver with compression and authenticated encryption
The BorgBackup repository: a Python and C backup tool that stores deduplicated, compressed, encrypted archives on local disks or over SSH, with mountable archives and append-only repositories.
Drafted with AI from official documentation. Scripts were run in a test environment and repository links verified. Awaiting a human check. Did it work for you? Last edited Outdated?
borgbackup/borg
- Stars
- 13.8k
- Forks
- 883
- Language
- Python
- Licence
- NOASSERTION
- Last push
- 14 Oct 2026
On GitHub: Deduplicating archiver with compression and authenticated encryption.
Open on GitHubBorgBackup, or Borg (about 13,800 stars on GitHub), is a deduplicating backup program maintained by Thomas Waldmann and the Borg community. It stores each backup as an archive inside a repository, deduplicates across all archives with content-defined chunking, compresses with lz4, zstd, zlib or lzma, and encrypts with authenticated encryption. Repositories live on a local disk or on any SSH host that has Borg installed.
Pick Borg when your backup target is a Linux box you control (a NAS, a VPS, a friend’s server) and you want very efficient storage, fast incremental runs and the ability to borg mount an archive as a filesystem to browse old versions. Its append-only repository mode lets a server accept new backups while refusing deletions, which is a strong defence against ransomware running on the client. For object storage backends, restic or Borg behind rclone is the usual answer.
Install it with apt install borgbackup, brew install borgbackup or pipx install borgbackup; standalone binaries are published on the Releases page. A first repository:
borg init --encryption=repokey-blake2 /mnt/backup/borg
borg create --stats --compression zstd /mnt/backup/borg::{hostname}-{now} ~/Documents
borg list /mnt/backup/borg
borg extract --dry-run /mnt/backup/borg::$(borg list /mnt/backup/borg --last 1 --format '{archive}')
Export the key with borg key export and store it away from the machine; with repokey modes the key is inside the repository but still useless without the passphrase. Careful: borg prune followed by borg compact permanently removes archives and frees their space; use --dry-run --list on prune first. Credit to the BorgBackup contributors; the project is BSD licensed.
Did this work for you?
No votes yet. Be the first.
If it did not work, the report form below tells the editors what went wrong.
See also
- 0336 Back up and restore a Docker named volume to a tar archive A bash script that copies the contents of a named Docker volume into a .tar.gz on the host, and restores an archive… Intermediate · Step by step · Linux, macOS Script Backup tools · Docker basics 15 Oct 2026
- 0363 Restore drill: prove your backup works in 15 minutes A repeatable procedure to restore one file and one database from your newest backup into a scratch location, compare the result with… Intermediate · Step by step · Linux, macOS Article Backup tools · Strategy & restore drills 15 Oct 2026
- 0364 Schedule PostgreSQL and MySQL dumps with systemd timers Write one dump script for PostgreSQL and MySQL, run it from a systemd service and timer instead of cron, keep two weeks… Intermediate · Step by step · Linux Article Backup tools · PostgreSQL 15 Oct 2026
- 0365 Proxmox Backup Server: first setup and first restore Install Proxmox Backup Server, create a datastore and a backup user, connect it to Proxmox VE as storage, run the first VM… Intermediate · Step by step · Linux Article Backup & restore · Backup tools 15 Oct 2026
- 0366 restic backup wrapper with tagging, retention and a weekly check A bash wrapper that runs restic backup on a fixed list of paths, applies a keep-daily/weekly/monthly policy with forget and prune, runs… Intermediate · Step by step · Linux, macOS Script Backup tools · Backups & syncing 15 Oct 2026
History
Every saved edit is kept. The plot on the sleeve draws one line per edit. Open any edit to see exactly what changed.
- Dominik +1,723 chars