-
borgmatic 2.1.1 Stable
released this
2026-01-27 21:09:10 +00:00 | 4 commits to main since this release- #1241: For the "recreate" action, actually pass the "--dry-run" flag through to Borg instead of
just skipping the Borg call. - #1242: Fix a regression in which the "spot" check hung while collecting archive contents.
- #1244: When the "unsafe_skip_path_validation_before_create" option is enabled, don't log a
warning about it. - #1245: Fix a regression in which the KeePassXC credential hook password prompt was invisible.
- #1246: Fix a regression in which the ntfy monitoring hook failed to send a ping when the
"priority" option was set.
Downloads
- #1241: For the "recreate" action, actually pass the "--dry-run" flag through to Borg instead of
-
borgmatic 2.1.0
Stablereleased this
2026-01-16 20:42:25 +00:00 | 23 commits to main since this release- TL;DR: Many logging, memory, and performance improvements. Mind those breaking changes!
- #485: When running commands (database clients, command hooks, etc.), elevate stderr output to
show up as borgmatic error logs. - #858: With the "--log-json" flag, log borgmatic's own logs as JSON, not just Borg's.
- #1092: BREAKING: Treat most Borg warnings as errors by default, so for instance backups now fail
when source directories are missing. You can still override this behavior with the
"borg_exit_codes" option. See the documentation for more information:
https://torsion.org/borgmatic/how-to/customize-warnings-and-errors/ - #1092: Deprecate the "source_directories_must_exist" option, as borgmatic now treats "backup file
not found" warnings from Borg as errors, which accomplishes the same thing. - #1132: BREAKING/SECURITY: For the Healthchecks, Apprise, Pagerduty, and Loki monitoring hooks,
disable log sending when not explicitly enabled. This avoids revealing private log information to
third-party services. To send logs anyway, set the monitoring hook's "send_logs" option to
"true". - #1204: When verbosity levels differ between console/monitoring/syslog/file, log Borg's output to
each one at a different level. Previously, it was logged at the maximum level of all the
verbosities. - #1208: Fix for the "restore" action incorrectly extracting more database dumps than the
"--database" flag specifies. - #1210: Fix an error when running the "spot" check or "extract" action with the "progress" option
or "--progress" flag. - #1211: Fix an error about the runtime directory getting excluded by tweaking its logic and
lowering the error to a warning. - #1212: Fix an error when restoring multiple directory-format database dumps at once.
- #1213: BREAKING: Support disabling both constant and variable interpolation by escaping with
backslashes. For instance, interpret "\{name\}" as literally "{name}" instead of trying to
resolve it as a constant/variable. - #1220: Cleanup snapshots immediately after ZFS, LVM, or Btrfs hooks error—rather than waiting
until the next time borgmatic runs. - #1221: Add an "unsafe_skip_path_validation_before_create" option to skip pre-backup safety
validation so as to reduce backup times on large filesystems. - #1224: When running an "extract" check with the "--progress" flag, show file extraction progress.
- #1225: Improve performance and greatly reduce memory usage during pre-backup safety validation on
large filesystems. - #1230: Fix another warning from LVM about leaked file descriptors, this time when calling
"lvcreate" from a command hook. - #1234: Fix for the ntfy monitoring hook erroring on emojis in the "title" option.
- When syslog verbosity is enabled, log to systemd's journal (if present) with
structured data. See the documentation for more information:
https://torsion.org/borgmatic/reference/command-line/logging/#systemd-journal - SECURITY: Prevent shell injection attacks via constant interpolation in command hooks. (This was
already implemented for deprecated "before_*"/"after_*" command hooks.) - Fix for an error in the "key import" action when importing a key from stdin.
- Fix the "recreate" action to include borgmatic-specific paths (database dumps, etc.) in recreated
archives. - Update the "list" action to support the "--json" flag when the "--archive" flag is also used.
- Promote the ZFS, LVM, and Btrfs hooks from beta features to stable.
Downloads
-
borgmatic 2.0.13 Stable
released this
2025-12-21 01:16:51 +00:00 | 112 commits to main since this release- #1054: Allow the Btrfs hook to create and delete snapshots even when running
as a non-root user. See the documentation for more information:
https://torsion.org/borgmatic/reference/configuration/data-sources/btrfs/#non-root-user - #1179: Add a "file_list_format" option for setting the "list" action's output format and an
"archive_list_format" option for setting the "repo-list" action's format. - #1192: Fix for over-aggressive deduplication of source directories that contain the borgmatic
runtime directory, potentially resulting in data loss (data not getting backed up) when
snapshotting these source directories. - #1192, #1163: Document potential interactions between security settings in borgmatic's sample
systemd service file and the ZFS, LVM, and Btrfs hooks. - #1193: In the documentation for the MariaDB/MySQL database hooks, clarify how to set custom
command-line flags for database commands. - #1193: For the MariaDB and MySQL database hooks, add a "socket_path" option for Unix socket
database connections. - #1193: For the MariaDB and MySQL database hooks, creates a consistent snapshot by dumping all
tables in a single transaction. - #1194: Fix for an incorrect diff command shown when running the "generate config" action with a
source configuration file. - #1195: Fix a regression in the ZFS, LVM, and Btrfs hooks in which snapshotted paths ignored
global excludes. - #1201: Document a problematic interaction between borgmatic and systemd-tmpfiles:
https://torsion.org/borgmatic/reference/configuration/runtime-directory/#systemd-tmpfiles - #1203: Fix that errors and exits when the borgmatic runtime directory is partially excluded by
configured excludes. Previously, borgmatic only errored when the runtime directory was completely
excluded. - #1206: Adjust Btrfs snapshot paths so that Borg 1.x gets file cache hits when backing them up,
improving performance. - Update the sample systemd timer with a shorter random delay when catching up on a missed run.
Downloads
- #1054: Allow the Btrfs hook to create and delete snapshots even when running
-
borgmatic 2.0.12 Stable
released this
2025-11-26 23:31:04 +00:00 | 145 commits to main since this release- #1127: Fix for the database hooks not respecting the "working_directory" option.
- #1181: Add an "ask_for_password" option to the KeePassXC credential hook for disabling
KeePassXC's password prompt, e.g. if you're only using a key file to decrypt your database. - #1184: Fix the fish shell completion's detection of version mismatches.
- #1186: Fix a regression in the Btrfs hook in which subvolume snapshots didn't get cleaned up
until the start of the next borgmatic run. - In the SQLite database hook, run SQLite such that it exits upon encountering an error instead of,
you know, not doing that. - Add documentation on repositories, including SSH, Rclone, S3, and B2:
https://torsion.org/borgmatic/reference/configuration/repositories/ - Improve documentation search results for individual configuration options.
- Add borgmatic release artifacts (wheel and tarball) to each release on the releases page:
https://projects.torsion.org/borgmatic-collective/borgmatic/releases - Move the tarball of borgmatic's HTML documentation from the packages page to the releases page.
Downloads
-
borgmatic 2.0.11 Stable
released this
2025-11-03 03:41:38 +00:00 | 168 commits to main since this release- #957: Document borgmatic's limitations around parallelism—both its own and Borg's. See the
documentation for more information:
https://torsion.org/borgmatic/how-to/make-per-application-backups/#limitations - #1165: Fix for when the systemd service directories (RuntimeDirectory and StateDirectory) each
contain multiple paths. - #1168: Fix for the "list", "info", and "delete" options in "extra_borg_options" being ignored
when "--archive" is omitted with Borg 1.x. - #1169: Fix for a regression in the ZFS, LVM, and Btrfs hooks in which partial excludes of
snapshot paths were ignored. - #1170: Fix for an inconsistent log level for Borg's last output line before exiting.
- #1172: Add an "environment" option to the Sentry monitoring hook.
- #1176: Fix the "--repository" flag not applying to command hooks.
- Add a "rename" option to "extra_borg_options" to support passing arbitrary flags to "borg
rename". - Add documentation on patterns and excludes:
https://torsion.org/borgmatic/reference/configuration/patterns-and-excludes/ - Drop support for Python 3.9, which has been end-of-lifed.
Downloads
- #957: Document borgmatic's limitations around parallelism—both its own and Borg's. See the
-
borgmatic 2.0.10
Stablereleased this
2025-10-24 04:47:56 +00:00 | 194 commits to main since this release- #427: Expand the "extra_borg_options" option to support passing arbitrary Borg flags to every
Borg sub-command that borgmatic uses. As part of this, deprecate the "init" option under
"borg_extra_options" in favor of "repo_create". - #942: Factor reference material out of the documentation how-to guides. This means there's now a
whole reference section in the docs! Check it out: https://torsion.org/borgmatic/ - #973: For the MariaDB and MySQL database hooks, add a "skip_names" option to ignore particular
databases when dumping "all". - #1150: Fix for a runtime directory error when the "create" action is used with the "--log-json"
flag. - #1150: Fix for a runtime directory error when the configured patterns contain a global exclude.
- #1161: Fix a traceback (TypeError) in the "check" action with Python 3.14.
- #1166: Add a "borg_key_file" option for setting the Borg repository key file path.
- Add documentation search.
- Change the URL of the local documentation development server to be more like the production URL.
Downloads
- #427: Expand the "extra_borg_options" option to support passing arbitrary Borg flags to every
-
borgmatic 2.0.9
Stablereleased this
2025-10-07 16:55:41 +00:00 | 229 commits to main since this release- #1105: More accurately collect Btrfs subvolumes to snapshot. As part of this, the Btrfs hook no
longer uses "findmnt" and the "findmnt_command" option is deprecated. - #1123: Add loading of systemd credentials even when running borgmatic outside of a systemd
service. - #1149: Add support for Python 3.14.
- #1149: Include automated tests in the source dist tarball uploaded to PyPI.
- #1151: Fix snapshotting in the ZFS, Btrfs, and LVM hooks to play nicely with the Borg 1.4+
"slashdot" hack within source directory paths. - #1152: Fix a regression in the Loki monitoring hook in which log messages weren't sending.
- #1156: Fix snapshotting in the ZFS, Btrfs, and LVM hooks to snapshot both parent and child
volumes/filesystems instead of just the parent. As part of this fix, borgmatic no longer
deduplicates patterns except for those containing the borgmatic runtime directory. - Fix a traceback (TypeError) regression in the "spot" check when the "local_path" option isn't
set.
Downloads
- #1105: More accurately collect Btrfs subvolumes to snapshot. As part of this, the Btrfs hook no
-
borgmatic 2.0.8
Stablereleased this
2025-09-20 00:32:13 +00:00 | 250 commits to main since this release- #1114: Document systemd configuration changes for the ZFS filesystem hook.
- #1116: Add dumping of database containers via their container names, handy for backing up
database containers from the host. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#database-client-on-the-host - #1116: Add optional database labels to make it easier to find your dumps within a Borg archive.
- #1118: Fix a bug in which Borg hangs during database backup when different filesystems are in
use. - #1122: To prevent the user from inadvertently excluding the "bootstrap" action's manifest, always
error and exit when the borgmatic runtime directory overlaps with the configured excludes. - #1125: Clarify documentation about ZFS, Btrfs, and LVM snapshotting when a separate
filesystem is mounted in the source directory. (Spoiler: The separate filesystem doesn't get
included in the snapshot.) - #1126: Create LVM snapshots as read-write to avoid an error when snapshotting ext4 filesystems
with orphaned files that need recovery. - #1133: Fix the "spot" check to include borgmatic configuration files that were backed up to
support the "bootstrap" action. - #1136: For all database hooks, record metadata about the dumps contained within an archive.
- #1139: Set "borgmatic" as the user agent when connecting to monitoring services.
- #1146: Fix a broken "create" action and "--archive latest" flag when multiple archives share the
same name with Borg 2. - Treat configuration file permissions issues as errors instead of warnings.
- When running tests, use Ruff for faster and more comprehensive code linting and formatting,
replacing Flake8, Black, isort, etc. - Switch from pipx to uv for installing development tools, and added tox-uv for speeding up test
environment creation. See the developer documentation for more information:
https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/
Downloads
-
borgmatic 2.0.7
Stablereleased this
2025-07-01 01:04:06 +00:00 | 325 commits to main since this release- #1032: Fix a bug in which a Borg archive gets created even when a database hook fails.
- #1043: Support Btrfs subvolume paths in "source_directories" even when the subvolume is mounted
elsewhere. - #1048: Ignore Btrfs subvolumes whose read-only status can't be determined.
- #1083: Add "debug_passphrase"/"display_passphrase" options and a "{unixtime}" placeholder in
support of Borg 2 features. - #1099: Clarify documentation on command hooks order of execution.
- #1100: Fix a bug in which "borg --version" failing isn't considered a "fail" state in a command
hook. - #1108: Fix a bug in which quoted "extra_borg_options" values containing spaces are passed to Borg
incorrectly. - #1108: Add a "--comment" flag to the "create" action for creating an archive with a comment.
- Use the Bandit security analysis tool when running tests.
- SECURITY: Add timeouts to all monitoring hooks to prevent hangs on network requests, e.g. due to
a compromised monitoring server holding requests open. - SECURITY: For the "spot" check, use a more secure source of randomness when selecting paths to
check.
Downloads
-
borgmatic 2.0.6
Stablereleased this
2025-05-15 04:16:33 +00:00 | 353 commits to main since this release- #1068: Fix a warning from LVM about leaked file descriptors.
- #1086: Fix for the "spot" check breaking when the "--progress" flag is used.
- #1089: Fix for the "spot" check erroring when a checksum command errors.
- #1091: Fix for the "config generate" action generating invalid configuration when upgrading
deprecated command hooks. - #1093: Fix for the LVM hook erroring when the "--dry-run" flag is used.
- #1094: Fix incorrect documentation about customizing Borg exit codes:
https://torsion.org/borgmatic/docs/how-to/customize-warnings-and-errors/ - #1095: Fix for the "spot" check's "xxh64sum_command" option erroring on commands containing
spaces. - Add support for Borg 2's "s3:" and "b2:" repository URLs, so you can backup to S3 or B2 cloud
storage services even without using Rclone. - During the "spot" check, truncate log messages containing many file paths.
Downloads