mirror of
https://github.com/borgbackup/borg.git
synced 2026-09-01 14:13:19 +02:00
- chunkers: fastcdc is the default now, add the keyed AES-based chunkers - id_hash: mention (keyed) blake3 besides (hmac-)sha256 - speed: mention the per-platform SIMD scan kernels - encryption: mention the authenticated-* and none-* modes - off-site backups: name the actual URL schemes (rest://, http(s)://, sftp://, s3://, b2://, rclone:) - platforms: separate the platforms we ship binaries for (linux, macOS, freebsd, windows) from the ones that need a package / source install; netbsd and illumos/solaris do support xattrs, add illumos/solaris - borg create --stats: show the current output format - badge: bestpractices.coreinfrastructure.org -> www.bestpractices.dev Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
240 lines
8.8 KiB
ReStructuredText
240 lines
8.8 KiB
ReStructuredText
This is borg2!
|
|
--------------
|
|
|
|
Please note that this is the README for (unstable) Borg2 / master branch.
|
|
|
|
For general project infos, versioned docs, screen casts, please see there:
|
|
|
|
https://www.borgbackup.org/
|
|
|
|
Borg2 is currently in beta testing and might get major and/or
|
|
breaking changes between beta releases (and there is no beta to
|
|
next-beta upgrade code, so you will have to delete and re-create repos).
|
|
|
|
Thus, **DO NOT USE BORG2 FOR YOUR PRODUCTION BACKUPS!** Please help with
|
|
testing it, but set it up *additionally* to your production backups.
|
|
|
|
|
|
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 back up 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 targets not
|
|
fully trusted.
|
|
|
|
See the `installation manual`_ or, if you have already
|
|
downloaded Borg, ``docs/installation.rst`` to get started with Borg.
|
|
|
|
.. _installation manual: https://borgbackup.readthedocs.io/en/master/installation.html
|
|
|
|
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 or (keyed) blake3.
|
|
|
|
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.
|
|
|
|
Supported chunkers:
|
|
|
|
* fastcdc (the default)
|
|
* buzhash64 (improved), buzhash (as in borg 1.x)
|
|
* toeplitz-aes / rabin-aes / goldilocks-aes (keyed, AES-based; they make
|
|
chunk-boundary fingerprinting attacks much harder)
|
|
* fixed (fixed blocksize, optionally with a differently sized header)
|
|
|
|
**Speed**
|
|
* performance-critical code (chunking, compression, encryption) is
|
|
implemented in C/Cython, using SIMD (NEON / AVX2 / AVX-512) where that
|
|
is a win - the scan kernel is picked per platform
|
|
* local caching
|
|
* quick detection of unmodified files
|
|
|
|
**Data encryption**
|
|
All data can be protected client-side using 256-bit authenticated encryption
|
|
(AES-OCB or chacha20-poly1305), ensuring data confidentiality, integrity and
|
|
authenticity.
|
|
|
|
If you do not need confidentiality, there are also modes that only
|
|
authenticate (``authenticated-sha256`` / ``authenticated-blake3``) and
|
|
modes that do neither (``none-sha256`` / ``none-blake3``).
|
|
|
|
**Hashing**
|
|
You can choose between HMAC-SHA256 and Blake3.
|
|
|
|
**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 via misc. protocols:
|
|
|
|
* ``rest://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
|
|
(REST-http-over-tcp). Significant performance gains can be achieved with
|
|
these by having a remote agent (borg must be installed on the repo server).
|
|
* ``sftp://``
|
|
* ``s3://`` / ``b2://``
|
|
* ``rclone:`` - lots of protocols / providers supported by rclone
|
|
|
|
**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 (x86_64, arm64)
|
|
* macOS (arm64, x86_64)
|
|
* FreeBSD (x86_64)
|
|
* Windows (x86_64, MSYS2/MINGW borg.exe, experimental)
|
|
|
|
Borg also runs on these platforms, but you need to install it from a
|
|
package or from source:
|
|
|
|
* NetBSD (xattrs, but no ACLs)
|
|
* OpenBSD (no xattrs/ACLs support)
|
|
* illumos / Solaris (xattrs, but no ACLs)
|
|
* Cygwin (experimental)
|
|
* 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
|
|
~~~~~~~~~~~
|
|
|
|
For ease of use, set the BORG_REPO environment variable::
|
|
|
|
$ export BORG_REPO=/path/to/repo
|
|
|
|
Create a new backup repository (see ``borg repo-create --help`` for encryption options)::
|
|
|
|
$ borg repo-create --encryption=aes256-ocb --key-location=repokey
|
|
|
|
Create a new backup archive::
|
|
|
|
$ borg create docs ~/Documents
|
|
|
|
Now do another backup, just to show off the great deduplication::
|
|
|
|
$ borg create -v --stats docs ~/Documents
|
|
Creating archive "docs" in repository /path/to/repo
|
|
Repository: /path/to/repo
|
|
Archive name: docs
|
|
Archive fingerprint: 7714aef97c1a24539cc3dc73f79b060f14af04e2541da33d54c7ee8e81a00089
|
|
Time (nominal): Mon, 2026-08-03 19:57:35 +0200
|
|
Time (start): Mon, 2026-08-03 19:57:35 +0200
|
|
Time (end): Mon, 2026-08-03 19:57:35 +0200
|
|
Duration: 0.01 seconds
|
|
Number of files: 24
|
|
Original size: 29.73 MB
|
|
Deduplicated size: 520 B
|
|
...
|
|
|
|
|
|
For demo videos, check out our homepage: https://www.borgbackup.org/#demo
|
|
|
|
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 here for details:
|
|
|
|
https://www.borgbackup.org/#fund
|
|
|
|
Thanks to everyone who has helped so far - these are the people with the most
|
|
commits, see `FAME.md <https://github.com/borgbackup/borg/blob/master/FAME.md>`_
|
|
for the full list:
|
|
|
|
.. image:: https://raw.githubusercontent.com/borgbackup/borg/master/FAME.svg
|
|
:alt: Borg contributors by commit count
|
|
:target: https://github.com/borgbackup/borg/blob/master/FAME.md
|
|
|
|
Links
|
|
-----
|
|
|
|
* `Main website <https://www.borgbackup.org/>`_
|
|
* `Releases <https://github.com/borgbackup/borg/releases>`_,
|
|
`PyPI packages <https://pypi.org/project/borgbackup/>`_ and
|
|
`Changelog <https://github.com/borgbackup/borg/blob/master/docs/changes.rst>`_
|
|
* `GitHub <https://github.com/borgbackup/borg>`_ and
|
|
`Issue tracker <https://github.com/borgbackup/borg/issues>`_.
|
|
* `Web chat (IRC) <https://web.libera.chat/#borgbackup>`_ and
|
|
`Mailing list <https://mail.python.org/mailman/listinfo/borgbackup>`_
|
|
* `License <https://borgbackup.readthedocs.io/en/master/authors.html#license>`_
|
|
* `Security contact <https://borgbackup.readthedocs.io/en/master/support.html#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 FOR YOURSELF WHETHER IT FITS YOUR NEEDS.
|
|
|
|
Security issues should be reported to the `Security contact`_ (or
|
|
see ``docs/support.rst`` in the source distribution).
|
|
|
|
.. start-badges
|
|
|
|
|doc| |build| |coverage| |bestpractices|
|
|
|
|
.. |doc| image:: https://readthedocs.org/projects/borgbackup/badge/?version=master
|
|
:alt: Documentation
|
|
:target: https://borgbackup.readthedocs.io/en/master/
|
|
|
|
.. |build| image:: https://github.com/borgbackup/borg/actions/workflows/ci.yml/badge.svg?branch=master
|
|
:alt: Build Status (master)
|
|
:target: https://github.com/borgbackup/borg/actions
|
|
|
|
.. |coverage| image:: https://codecov.io/github/borgbackup/borg/coverage.svg?branch=master
|
|
:alt: Test Coverage
|
|
:target: https://codecov.io/github/borgbackup/borg?branch=master
|
|
|
|
.. |bestpractices| image:: https://www.bestpractices.dev/projects/271/badge
|
|
:alt: Best Practices Score
|
|
:target: https://www.bestpractices.dev/projects/271
|
|
|
|
.. end-badges
|