Borg Documentation
******************

[image: BorgBackup Basic Usage][image]

More screencasts: installation, advanced usage


What is BorgBackup?
===================

BorgBackup (short: Borg) is a deduplicating backup program.
Optionally, it supports compression and authenticated encryption.

The main goal of Borg is to provide an efficient and secure way to
backup data. The data deduplication technique used makes Borg suitable
for daily backups since only changes are stored. The authenticated
encryption technique makes it suitable for backups to not fully
trusted targets.

See the installation manual or, if you have already downloaded Borg,
"docs/installation.rst" to get started with Borg. There is also an
offline documentation available, in multiple formats.


Main features
-------------

**Space efficient storage**
   Deduplication based on content-defined chunking is used to reduce
   the number of bytes stored: each file is split into a number of
   variable length chunks and only chunks that have never been seen
   before are added to the repository.

   A chunk is considered duplicate if its id_hash value is identical.
   A cryptographically strong hash or MAC function is used as id_hash,
   e.g. (hmac-)sha256.

   To deduplicate, all the chunks in the same repository are
   considered, no matter whether they come from different machines,
   from previous backups, from the same backup or even from the same
   single file.

   Compared to other deduplication approaches, this method does NOT
   depend on:

   * file/directory names staying the same: So you can move your stuff
     around without killing the deduplication, even between machines
     sharing a repo.

   * complete files or time stamps staying the same: If a big file
     changes a little, only a few new chunks need to be stored - this
     is great for VMs or raw disks.

   * The absolute position of a data chunk inside a file: Stuff may
     get shifted and will still be found by the deduplication
     algorithm.

**Speed**
   * performance-critical code (chunking, compression, encryption) is
     implemented in C/Cython

   * local caching of files/chunks index data

   * quick detection of unmodified files

**Data encryption**
   All data can be protected using 256-bit AES encryption, data
   integrity and authenticity is verified using HMAC-SHA256. Data is
   encrypted client-side.

**Obfuscation**
   Optionally, Borg can actively obfuscate, e.g., the size of
   files/chunks to make fingerprinting attacks more difficult.

**Compression**
   All data can be optionally compressed:

   * lz4 (super fast, low compression)

   * zstd (wide range from high speed and low compression to high
     compression and lower speed)

   * zlib (medium speed and compression)

   * lzma (low speed, high compression)

**Off-site backups**
   Borg can store data on any remote host accessible over SSH. If Borg
   is installed on the remote host, significant performance gains can
   be achieved compared to using a network file system (sshfs, NFS,
   ...).

**Backups mountable as file systems**
   Backup archives are mountable as user-space file systems for easy
   interactive backup examination and restores (e.g., by using a
   regular file manager).

**Easy installation on multiple platforms**
   We offer single-file binaries that do not require installing
   anything - you can just run them on these platforms:

   * Linux

   * macOS

   * FreeBSD

   * OpenBSD and NetBSD (no xattrs/ACLs support or binaries yet)

   * Cygwin (experimental, no binaries yet)

   * Windows Subsystem for Linux (WSL) on Windows 10/11 (experimental)

**Free and Open Source Software**
   * security and functionality can be audited independently

   * licensed under the BSD (3-clause) license, see License for the
     complete license


Easy to use
-----------

Initialize a new backup repository (see "borg init --help" for
encryption options):

   $ borg init -e repokey /path/to/repo

Create a backup archive:

   $ borg create /path/to/repo::Saturday1 ~/Documents

Now doing another backup, just to show off the great deduplication:

   $ borg create -v --stats /path/to/repo::Saturday2 ~/Documents
   -----------------------------------------------------------------------------
   Archive name: Saturday2
   Archive fingerprint: 622b7c53c...
   Time (start): Sat, 2016-02-27 14:48:13
   Time (end):   Sat, 2016-02-27 14:48:14
   Duration: 0.88 seconds
   Number of files: 163
   -----------------------------------------------------------------------------
                  Original size      Compressed size    Deduplicated size
   This archive:        6.85 MB              6.85 MB             30.79 kB  <-- !
   All archives:       13.69 MB             13.71 MB              6.88 MB

                  Unique chunks         Total chunks
   Chunk index:             167                  330
   -----------------------------------------------------------------------------

For a graphical frontend, refer to our complementary project BorgWeb.


Helping, donations and bounties, becoming a Patron
==================================================

Your help is always welcome!

Spread the word, give feedback, help with documentation, testing or
development.

You can also give monetary support to the project, see there for
details:

https://www.borgbackup.org/support/fund.html


Links
=====

* Main website

* Releases, PyPI packages and Changelog

* Offline documentation

* GitHub and Issue tracker.

* Web chat (IRC) and Mailing list

* License

* Security contact


Compatibility notes
===================

EXPECT THAT WE WILL BREAK COMPATIBILITY REPEATEDLY WHEN MAJOR RELEASE
NUMBER CHANGES (like when going from 0.x.y to 1.0.0 or from 1.x.y to
2.0.0).

NOT RELEASED DEVELOPMENT VERSIONS HAVE UNKNOWN COMPATIBILITY
PROPERTIES.

THIS IS SOFTWARE IN DEVELOPMENT, DECIDE YOURSELF WHETHER IT FITS YOUR
NEEDS.

Security issues should be reported to the Security contact (or see
"docs/support.rst" in the source distribution).

[image: Documentation][image] [image: Build Status (1.4-maint)][image]
[image: Test Coverage][image] [image: Best Practices Score][image]

* Installation

  * Distribution Package

  * Standalone Binary

  * From Source

* Quick Start

  * A step-by-step example

  * Archives and repositories

  * Important note about free space

  * Important note about permissions

  * Important note about files changing during the backup process

  * Automating backups

  * Pitfalls with shell variables and environment variables

  * Passphrase notes

  * Backup compression

  * Repository encryption

  * Remote repositories

  * Restoring a backup

* Usage

  * General

  * borg init

  * borg create

  * borg extract

  * borg check

  * borg rename

  * borg list

  * borg diff

  * borg delete

  * borg prune

  * borg compact

  * borg info

  * borg version

  * borg mount

  * borg umount

  * borg key change-passphrase

  * borg key export

  * borg key import

  * borg upgrade

  * borg recreate

  * borg import-tar

  * borg export-tar

  * borg serve

  * borg config

  * borg with-lock

  * borg break-lock

  * borg benchmark crud

  * Miscellaneous Help

  * Debugging Facilities

  * Additional Notes

* Deployment

  * Central repository server with Ansible or Salt

  * Hosting repositories

  * Automated backups to a local hard drive

  * Backing up entire disk images

  * Backing up in pull mode

  * Backing up using a non-root user

* Frequently asked questions

  * Usage & Limitations

  * Security

  * Common issues

  * Miscellaneous

  * Migrating from Attic

* Support

  * Support and Services

  * Security

  * Verifying signed releases

* Important notes

  * Pre-1.2.5 archives spoofing vulnerability (CVE-2023-36811)

  * Pre-1.1.11 potential index corruption / data loss issue

  * Pre-1.1.4 potential data corruption issue

  * Pre-1.0.9 manifest spoofing vulnerability (CVE-2016-10099)

  * Pre-1.0.9 potential data loss

  * Pre-1.0.4 potential repo corruption

* Upgrade Notes

  * borg 1.2.x to 1.4.x

  * borg 1.1.x to 1.2.x

* Change Log

  * Version 1.4.3 (2025-12-02)

  * Version 1.4.2 (2025-10-31)

  * Version 1.4.1 (2025-04-19)

  * Version 1.4.0 (2024-07-03)

  * Version 1.4.0rc1 (2024-05-26)

  * Version 1.4.0b2 (2024-03-31)

  * Version 1.4.0b1 (2024-01-21)

  * Version 1.4.0a1 (2024-01-01)

  * Version 1.2.7 (2023-12-02)

  * Version 1.2.6 (2023-08-31)

  * Version 1.2.5 (2023-08-30)

  * Version 1.2.4 (2023-03-24)

  * Version 1.2.3 (2022-12-24)

  * Version 1.2.2 (2022-08-20)

  * Version 1.2.1 (2022-06-06)

  * Version 1.2.0 (2022-02-22 22:02:22 :-)

  * Version 1.2.0rc1 (2022-02-05)

  * Version 1.2.0b4 (2022-01-23)

  * Version 1.2.0b3 (2021-05-12)

  * Version 1.2.0b2 (2021-02-06)

  * Version 1.2.0b1 (2020-12-06)

  * Version 1.2.0a9 (2020-10-05)

  * Version 1.2.0a8 (2020-04-22)

  * Version 1.2.0a7 (2019-09-07)

  * Version 1.2.0a6 (2019-04-22)

  * Version 1.2.0a5 (2019-03-21)

  * Version 1.2.0a4 (2019-03-11)

  * Version 1.2.0a3 (2019-02-26)

  * Version 1.2.0a2 and earlier (2019-02-24)

  * Version 1.1.18 (2022-06-05)

  * Version 1.1.17 (2021-07-12)

  * Version 1.1.16 (2021-03-23)

  * Version 1.1.15 (2020-12-25)

  * Version 1.1.14 (2020-10-07)

  * Version 1.1.13 (2020-06-06)

  * Version 1.1.12 (2020-06-06)

  * Version 1.1.11 (2020-03-08)

  * Version 1.1.10 (2019-05-16)

  * Version 1.1.9 (2019-02-10)

  * Version 1.1.8 (2018-12-09)

  * Version 1.1.7 (2018-08-11)

  * Version 1.1.6 (2018-06-11)

  * Version 1.1.5 (2018-04-01)

  * Version 1.1.4 (2017-12-31)

  * Version 1.1.3 (2017-11-27)

  * Version 1.1.2 (2017-11-05)

  * Version 1.1.1 (2017-10-22)

  * Version 1.1.0 (2017-10-07)

  * Version 1.1.0rc4 (2017-10-01)

  * Version 1.1.0rc3 (2017-09-10)

  * Version 1.1.0rc2 (2017-08-28)

  * Version 1.1.0rc1 (2017-07-24)

  * Version 1.1.0b6 (2017-06-18)

  * Version 1.1.0b5 (2017-04-30)

  * Version 1.1.0b4 (2017-03-27)

  * Version 1.1.0b3 (2017-01-15)

  * Version 1.1.0b2 (2016-10-01)

  * Version 1.1.0b1 (2016-08-28)

  * Version 1.0.13 (2019-02-15)

  * Version 1.0.12 (2018-04-08)

  * Version 1.0.11 (2017-07-21)

  * Version 1.0.11rc1 (2017-06-27)

  * Version 1.0.10 (2017-02-13)

  * Version 1.0.10rc1 (2017-01-29)

  * Version 1.0.9 (2016-12-20)

  * Version 1.0.9rc1 (2016-11-27)

  * Version 1.0.8 (2016-10-29)

  * Version 1.0.8rc1 (2016-10-17)

  * Version 1.0.7 (2016-08-19)

  * Version 1.0.7rc2 (2016-08-13)

  * Version 1.0.7rc1 (2016-08-05)

  * Version 1.0.6 (2016-07-12)

  * Version 1.0.6rc1 (2016-07-10)

  * Version 1.0.5 (2016-07-07)

  * Version 1.0.4 (2016-07-07)

  * Version 1.0.3 (2016-05-20)

  * Version 1.0.2 (2016-04-16)

  * Version 1.0.1 (2016-04-08)

  * Version 1.0.0 (2016-03-05)

  * Version 1.0.0rc2 (2016-02-28)

  * Version 1.0.0rc1 (2016-02-07)

  * Version 0.30.0 (2016-01-23)

  * Version 0.29.0 (2015-12-13)

  * Version 0.28.2 (2015-11-15)

  * Version 0.28.1 (2015-11-08)

  * Version 0.28.0 (2015-11-08)

  * Version 0.27.0 (2015-10-07)

  * Version 0.26.1 (2015-09-28)

  * Version 0.26.0 (2015-09-19)

  * Version 0.25.0 (2015-08-29)

  * Version 0.24.0 (2015-08-09)

  * Version 0.23.0 (2015-06-11)

  * Attic Changelog

* Internals

  * Security

  * Data structures and file formats

  * All about JSON: How to develop frontends

* Development

  * Contributions

  * Branching model

  * Code and issues

  * Style guide

  * Continuous Integration

  * Output and Logging

  * Building a development environment

  * Running the tests

  * Running the tests (using the pypi package)

  * Adding a compression algorithm

  * Documentation

  * Using Vagrant

  * Creating standalone binaries

  * Creating a new release

* Authors

  * Borg authors ("The Borg Collective")

  * Attic authors

  * BLAKE2

  * Slicing CRC32

  * Folding CRC32

  * xxHash

* License
