• 2.1.10 67e6f1f576

    borgmatic 2.1.10
    All checks were successful
    build / test (push) Successful in 5m14s
    build / docs (push) Successful in 53s
    Stable

    witten released this 2026-10-05 16:16:00 +00:00 | 0 commits to main since this release

    • #1185: Add support for setting top-level configuration options under each repository, making
      those options repository-specific. See the documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/repositories/
    • #1361: Update command-line overrides to support disabling configuration options, e.g.
      "--no-btrfs" to temporarily disable the Btrfs hook.
    • #1361: Fix a traceback (TypeError) in command-line overrides when setting a sub-option of an
      option without a configured value.
    • #1362, #1364: For the ZFS, LVM, and Btrfs hooks, support relative source paths with a configured
      working directory.
    • #1363: For the "restore" action, fix an invalid JSON error when running with the "--dry-run"
      flag.
    • Remove support for "rest://" repository URLs, which Borg 2.0.0b25 renamed back to "ssh://".
    Downloads
  • 2.1.9 96e5709ea0

    borgmatic 2.1.9
    All checks were successful
    build / test (push) Successful in 5m0s
    build / docs (push) Successful in 51s
    Stable

    witten released this 2026-09-25 22:53:31 +00:00 | 20 commits to main since this release

    • #951: For the PostgreSQL, MariaDB, and MySQL database hooks, support globs in configured database
      names (e.g. "users_*"), so borgmatic can dump multiple matching databases without needing each
      one defined in configuration.
    • #951: Add glob support to the "--data-source" flag on the "restore" action.
    • #1316: Deprecate "statistics" and "quick_statistics" true/false options, replacing them with a
      single combined "statistics" option that expects a named value.
    • #1316: Enforce that "--stats" and "--quick-stats" flags aren't used together.
    • #1354, #1353: Fix a regression in which soft failure exit codes in command hooks were not
      respected.
    • #1355: Fix a regression in which the MongoDB hook no longer worked with passwordless database
      connections.
    Downloads
  • 2.1.8 a972329775

    witten released this 2026-09-18 17:21:11 +00:00 | 26 commits to main since this release

    • #450: Add an InfluxDB database hook for dumping and restoring InfluxDB 1 and 2 databases. See the
      documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/data-sources/influxdb/
    • #1332: For the MongoDB hook, add a "password_transport" option for customizing how borgmatic
      transmits passwords to the database client. See the documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/data-sources/mongodb/
    • #1345: Add a 1Password credential hook for loading credentials from the 1Password CLI. See the
      documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/credentials/onepassword/
    • #1346: Add an OpenLDAP database hook for dumping and restoring OpenLDAP databases with slapcat
      and slapadd. See the documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/data-sources/openldap/
    • #1348: Add support for "rest://" repository URLs introduced in Borg 2.0.0b22.
    • #1348: BREAKING: For the "prune" action, remove Borg 2's "--oldest", "--newest", "--older", and
      "--newer" flags, as Borg 2.0.0b22 has removed them.
    • #1348: For the "prune" action, add support for Borg 2's "--from" flag.
    • #1349: Fix for Borg 2.0.0b23 dropping support for the "--remote-path" flag in favor of an
      environment variable.
    • #1349: Document the "upload_rate_limit" and "upload_buffer_size" option as Borg 1.x only.
    • #1340: For the --repair flag on the check action, don't attempt to run borg info first,
      as it can fail on a corrupted repository—like the kind you might by trying to repair. Also ignore
      any check frequency/days configuration and skip recording check timestamps.
    • #1352: Fix a hang in which PostgreSQL child processes prevented borgmatic from exiting when Borg
      errored out.
    • #1353: Fix for soft failures in command hooks incorrectly being treated as hard failures,
      resulting in monitoring ping fails.
    • For the "user_runtime_directory" option and the "XDG_RUNTIME_DIR" environment variable, create a
      temporary directory for borgmatic within the given runtime directory. This makes cleanup easier
      and prevents unintentional runtime file reuse across borgmatic runs.
    Downloads
  • 2.1.7 3624f68d0a

    borgmatic 2.1.7
    All checks were successful
    build / test (push) Successful in 4m53s
    build / docs (push) Successful in 1m49s
    Stable

    witten released this 2026-08-14 19:20:14 +00:00 | 117 commits to main since this release

    • #1309: Add support for the "--quick-stats" flag and the "quick_statistics" option to the "prune"
      action. Borg >= 1.4.5 and < 2 only.
    • #1310: For the "bootstrap" action, provide a more helpful error message when borgmatic can't
      determine the latest archive.
    • #1317: Add an "archive_hostname" option and a corresponding "--archive-hostname" flag for
      overriding the hostname used for the "{hostname}" placeholder in the "archive_name_format"
      option. Also add an "archive_username" option and corresponding "--archive-username" flag to
      override the "{user}" placeholder. Both options/flags are Borg 1.4.5+ only.
    • #1319: Fix the ZFS hook's overzealous unmounting of snapshot paths when a source dataset is at
      "/".
    • #1322: Fix for the "restore" action sometimes failing to find a database dump that was dumped
      with a default port.
    • #1324: For the MariaDB and MySQL hooks, add "events", "routines", and "tablespaces" options for
      disabling dumping of scheduled events, stored routines, and tablespaces, respectively.
    • #1327: Fix an error from the "diff" action when exclude options are configured.
    • #1331: Fix the "repo-create" action to more surgically suppress Borg "Repository does not exist"
      logs and avoid inadvertently suppressing other error logs.
    • #1333: Fix the "--progress" flag on the "compact" action to actually update the progress of
      segment compaction.
    • #1334: Add the "CAP_FOWNER" capability to "CapabilityBoundingSet" in the sample systemd service,
      so that Borg can open source files without changing file access times.
    • #1336: Fix for the "bootstrap" action ignoring the "--verbosity" flag when no configuration is
      present.
    • #1335: Add a Watchgoose monitoring hook. See the documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/monitoring/watchgoose/
    • BREAKING: Remove the Cronhub monitoring hook, as Cronhub has shut down.
    • Fix a bug in which the "compact" action does not pass a compact threshold of zero to Borg.
    • Add support for the Borg 2 "--id-hash", "--key-location", and "--from-borg1" flags on the
      "repo-create" action. Also add corresponding configuration "id_hash" and "key_location" options
      under the "repositories" option.
    • Add support for the Borg 2 "--from-borg1" flag on the "transfer" action.
    • Update the documentation on upgrading repositories from Borg version 1 to 2, using current Borg
      2 flags: https://torsion.org/borgmatic/how-to/upgrade/#borg-1-to-2
    Downloads
  • 2.1.6 4af31db99c

    borgmatic 2.1.6
    All checks were successful
    build / test (push) Successful in 7m40s
    build / docs (push) Successful in 1m28s
    Stable

    witten released this 2026-06-01 22:52:45 +00:00 | 145 commits to main since this release

    • #1256: Fix a race condition in which borgmatic sometimes swallows Borg error output without
      logging it.
    • #1300: Fix the "source_directories_must_exist" option to support source directories relative to a
      "working_directory".
    • #1301: Expand the "patterns_from" and "exclude_from" options to support paths containing tildes
      and globs.
    • #1303: For the MariaDB and MySQL database hooks, include events, routines, and tablespaces when
      dumping a database.
    • #1303: For the MariaDB hook, include only a subset of system data when dumping the "mysql" system
      database (or "all" databases), so the dump is actually restorable. See the documentation for more
      information: https://torsion.org/borgmatic/reference/configuration/data-sources/mariadb/
    • #1308: Update the Apprise monitoring hook's "url" option to support loading credentials with the
      "{credential ...}" syntax. See the documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/credentials/
    • #1309: Add a "--quick-stats" flag and corresponding "quick_statistics" option for showing only
      abbreviated statistics for the "create" action. Borg 1.4.5+ only.
    • #1314: Add a minimal stand-alone borgmatic binary in addition to the standard one. The minimal
      binary omits support for the Apprise monitoring hook.
    • Add an experimental "browse" action providing a console UI for browsing your backups. See the
      documentation for more information:
      https://torsion.org/borgmatic/how-to/inspect-your-backups/#browsing-backups
    • Update the KeePassXC credential hook to support KeePassXC's secret service integration. See the
      documentation for more information:
      https://torsion.org/borgmatic/reference/configuration/credentials/keepassxc/
    • Add the NEWS changelog file to release tarball (#1298).
    • Enable reply by email on projects.torsion.org, so replies to notification emails get posted as
      comments on tickets.
    • For the MariaDB and MySQL database hooks, escape quotes in passwords when the
      "password_transport" option is "pipe".
    • Add a development script for upgrading pinned dependencies.
    • Fix the PostgreSQL database hook to properly parse "*options" values containing quoted spaces.
    • Update the documentation to use Pagefind's component-based search UI.
    Downloads
  • 2.1.5 d085fc2398

    borgmatic 2.1.5
    All checks were successful
    build / test (push) Successful in 8m35s
    build / docs (push) Successful in 1m48s
    Stable

    witten released this 2026-04-20 16:46:54 +00:00 | 239 commits to main since this release

    Downloads
  • 2.1.4 731e8d7c37

    borgmatic 2.1.4
    All checks were successful
    build / test (push) Successful in 7m30s
    build / docs (push) Successful in 1m17s
    Stable

    witten released this 2026-04-06 02:57:22 +00:00 | 251 commits to main since this release

    • #1266: Add a stand-alone borgmatic Linux binary to the release downloads to serve as another way
      to install borgmatic. Consider this binary a beta feature.
    • #1286: Fix a regression in which running borgmatic with no arguments and no configuration files
      doesn't error as expected.
    • #1257: Fix for the Loki monitoring hook not respecting the monitoring verbosity.
    • #1264: Improve performance of the "info" and "repo-list" actions by eliminating a second "borg
      info" call that supports a "no matching archives" warning. The warning still occurs; it's just
      done now without the extra "borg info" call.
    • #1268: Fix the "spot" check, "extract" check, and all uses of the archive name "latest" to
      respect the "match_archives" and "archives_name_format" options. This means that borgmatic now
      uses the "latest" archive that also matches those options instead of the latest archive overall.
    • When Borg exits with a warning exit code, show a description of it, so you don't have to look up
      the code.
    • Split out borgmatic installation documentation to its own page, so it's easier to find.
    • Switch the default borgmatic installation method from pipx to uv, as uv is faster and used for
      borgmatic development. If you'd like to switch, see the documentation for more information:
      https://torsion.org/borgmatic/how-to/upgrade/
    • Move the project tracker from Gitea to Forgejo.
    • Fix a regression in which borgmatic didn't show an error message when run with no configuration.
    • Fix a traceback in the "spot" check with Borg 2.
    Downloads
  • 2.1.3 d2903640a8

    borgmatic 2.1.3
    All checks were successful
    build / test (push) Successful in 7m42s
    build / docs (push) Successful in 1m18s
    Stable

    witten released this 2026-03-06 18:19:42 +00:00 | 277 commits to main since this release

    • #1175: Add a "files_changed" option for customizing Borg's file modification detection.
    • #1175: Add a "msgpack_version_check" option to prevent Borg from validating msgpack's version.
    • #1218: Add a "config show" action to display computed borgmatic configuration as YAML or JSON,
      handy for fetching borgmatic configuration from external scripts. See the documentation for more
      information:
      https://torsion.org/borgmatic/reference/command-line/actions/config-show/
    • #1228: Adjust the "spot" check so error output includes more information about what failed.
    • #1236: Fix the "spot" check to skip hard links, as Borg doesn't produces hashes for them.
    • #1243: Add a "diff" action for viewing the difference between the contents of two archives.
    • #1248: Go back to treating Borg "file not found" warnings (exit code 107) as
      warnings instead of errors. Otherwise, borgmatic can error on files that a user intentionally
      deletes while a backup is running. 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/
    • #1248: Un-deprecate the "source_directories_must_exist" option and default it to true, to
      compensate for Borg "file not found" warnings no longer being treated as errors.
    • #1269: Fix the ZFS hook to support datasets with a "canmount" property of "noauto".
    • #1270: Follow symlinks when backing up borgmatic configuration files to support the "bootstrap"
      action.
    • #1274: Add an optional override for the documentation development listen port and use Podman
      Compose if present.
    • #1281: Fix a unicode error when backing up a non-UTF-8 source filename with a
      corresponding system locale.
    • Add a policy about the use of generative AI in the borgmatic codebase:
      https://torsion.org/borgmatic/how-to/develop-on-borgmatic/#use-of-generative-ai
    Downloads
  • 2.1.2 ad8d074eff

    borgmatic 2.1.2
    All checks were successful
    build / test (push) Successful in 7m46s
    build / docs (push) Successful in 1m32s
    Stable

    witten released this 2026-02-06 20:53:27 +00:00 | 326 commits to main since this release

    • #1231: If a source file is deleted during a "spot" check, consider the file as non-matching
      and move on instead of immediately failing the entire check.
    • #1250: Fix a regression in which the "--stats" flag hides statistics at default verbosity.
    • #1251: Fix a regression in the ntfy monitoring hook in which borgmatic sends tags incorrectly,
      resulting in "400 Bad Request" from ntfy.
    • #1258: Fix a "codec can't decode byte" error when running commands that output multi-byte unicode
      characters.
    • #1260: Fix for SSH warnings from Borg showing up as JSON logs even without the "--log-json" flag.
    • #1252: Work around Borg returning a warning exit code when a repository/archive check fails. Now,
      borgmatic interprets such failures as errors.
    • Deduplicate overlapping source directories and patterns so they don't throw off "spot" check file
      counts and cause spurious check failures.
    Downloads
  • 2.1.1 aba45f03d6

    witten released this 2026-01-27 21:09:10 +00:00 | 341 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