borgmatic

Simple, configuration-driven backup software for servers and workstations

GPL-3.0 License

Stars
1.7K
Committers
90

Bot releases are visible (Hide)

borgmatic - borgmatic 1.8.13 Latest Release

Published by witten 4 months ago

borgmatic - borgmatic 1.8.12

Published by witten 4 months ago

  • #817: Add a "--max-duration" flag to the "check" action and a "max_duration" option to the
    repository check configuration. This tells Borg to interrupt a repository check after a certain
    duration.
  • #860: Fix interaction between environment variable interpolation in constants and shell escaping.
  • #863: When color output is disabled (explicitly or implicitly), don't prefix each log line with
    the log level.
  • #865: Add an "upload_buffer_size" option to set the size of the upload buffer used in "create"
    action.
  • #866: Fix "Argument list too long" error in the "spot" check when checking hundreds of thousands
    of files at once.
  • #874: Add the configured repository label as "repository_label" to the interpolated variables
    passed to before/after command hooks.
  • #881: Fix "Unrecognized argument" error when the same value is used with different command-line
    flags.
  • In the "spot" check, don't try to hash symlinked directories.
borgmatic - borgmatic 1.8.11

Published by witten 6 months ago

  • #815: Add optional Healthchecks auto-provisioning via "create_slug" option.
  • #851: Fix lack of file extraction when using "extract --strip-components all" on a path with a
    leading slash.
  • #854: Fix a traceback when the "data" consistency check is used.
  • #857: Fix a traceback with "check --only spot" when the "spot" check is unconfigured.
borgmatic - borgmatic 1.8.10

Published by witten 6 months ago

  • #656 (beta): Add a "spot" consistency check that compares file counts and contents between your
    source files and the latest archive, ensuring they fall within configured tolerances. This can
    catch problems like incorrect excludes, inadvertent deletes, files changed by malware, etc. See
    the documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/#spot-check
  • #779: When "--match-archives *" is used with "check" action, don't skip Borg's orphaned objects
    check.
  • #842: When a command hook exits with a soft failure, ping the log and finish states for any
    configured monitoring hooks.
  • #843: Add documentation link to Loki dashboard for borgmatic:
    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#loki-hook
  • #847: Fix "--json" error when Borg includes non-JSON warnings in JSON output.
  • #848: SECURITY: Mask the password when logging a MongoDB dump or restore command.
  • Fix handling of the NO_COLOR environment variable to ignore an empty value.
  • Add documentation about backing up containerized databases by configuring borgmatic to exec into
    a container to run a dump command:
    https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#containers
borgmatic - borgmatic 1.8.9

Published by witten 7 months ago

  • #311: Add custom dump/restore command options for MySQL and MariaDB.
  • #811: Add an "access_token" option to the ntfy monitoring hook for authenticating
    without username/password.
  • #827: When the "--json" flag is given, suppress console escape codes so as not to
    interfere with JSON output.
  • #829: Fix "--override" values containing deprecated section headers not actually overriding
    configuration options under deprecated section headers.
  • #835: Add support for the NO_COLOR environment variable. See the documentation for more
    information:
    https://torsion.org/borgmatic/docs/how-to/set-up-backups/#colored-output
  • #839: Add log sending for the Apprise logging hook, enabled by default. See the documentation for
    more information:
    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#apprise-hook
  • #839: Document a potentially breaking shell quoting edge case within error hooks:
    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#error-hooks
  • #840: When running the "rcreate" action and the repository already exists but with a different
    encryption mode than requested, error.
  • Switch from Drone to Gitea Actions for continuous integration.
  • Rename scripts/run-end-to-end-dev-tests to scripts/run-end-to-end-tests and use it in both dev
    and CI for better dev-CI parity.
  • Clarify documentation about restoring a database: borgmatic does not create the database upon
    restore.
borgmatic - borgmatic 1.8.8

Published by witten 9 months ago

  • #370: For the PostgreSQL hook, pass the "PGSSLMODE" environment variable through to Borg when the
    database's configuration omits the "ssl_mode" option.
  • #818: Allow the "--repository" flag to match across multiple configuration files.
  • #820: Fix broken repository detection in the "rcreate" action with Borg 1.4. The issue did not
    occur with other versions of Borg.
  • #822: Fix broken escaping logic in the PostgreSQL hook's "pg_dump_command" option.
  • SECURITY: Prevent additional shell injection attacks within the PostgreSQL hook.
borgmatic - borgmatic 1.8.7

Published by witten 9 months ago

  • #736: Store included configuration files within each backup archive in support of the "config
    bootstrap" action. Previously, only top-level configuration files were stored.
  • #798: Elevate specific Borg warnings to errors or squash errors to
  • warnings. See the documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/customize-warnings-and-errors/
  • #810: SECURITY: Prevent shell injection attacks within the PostgreSQL hook, the MongoDB hook, the
    SQLite hook, the "borgmatic borg" action, and command hook variable/constant interpolation.
  • #814: Fix a traceback when providing an invalid "--override" value for a list option.
borgmatic - borgmatic 1.8.6

Published by witten 10 months ago

  • #767: Add an "--ssh-command" flag to the "config bootstrap" action for setting a custom SSH
    command, as no configuration is available (including the "ssh_command" option) until
    bootstrapping completes.
  • #794: Fix a traceback when the "repositories" option contains both strings and key/value pairs.
  • #800: Add configured repository labels to the JSON output for all actions.
  • #802: The "check --force" flag now runs checks even if "check" is in "skip_actions".
  • #804: Validate the configured action names in the "skip_actions" option.
  • #807: Stream SQLite databases directly to Borg instead of dumping to an intermediate file.
  • When logging commands that borgmatic executes, log the environment variables that
    borgmatic sets for those commands. (But don't log their values, since they often contain
    passwords.)
borgmatic - borgmatic 1.8.5

Published by witten 11 months ago

  • #701: Add a "skip_actions" option to skip running particular actions, handy for append-only or
    checkless configurations. See the documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/set-up-backups/#skipping-actions
  • #701: Deprecate the "disabled" value for the "checks" option in favor of the new "skip_actions"
    option.
  • #745: Constants now apply to included configuration, not just the file doing the includes. As a
    side effect of this change, constants no longer apply to option names and only substitute into
    configuration values.
  • #779: Add a "--match-archives" flag to the "check" action for selecting the archives to check,
    overriding the existing "archive_name_format" and "match_archives" options in configuration.
  • #779: Only parse "--override" values as complex data types when they're for options of those
    types.
  • #782: Fix environment variable interpolation within configured repository paths.
  • #782: Add configuration constant overriding via the existing "--override" flag.
  • #783: Upgrade ruamel.yaml dependency to support version 0.18.x.
  • #784: Drop support for Python 3.7, which has been end-of-lifed.
borgmatic - borgmatic 1.8.4

Published by witten 12 months ago

  • #715: Add a monitoring hook for sending backup status to a variety of monitoring services via the
    Apprise library. See the documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#apprise-hook
  • #748: When an archive filter causes no matching archives for the "rlist" or "info"
    actions, warn the user and suggest how to remove the filter.
  • #768: Fix a traceback when an invalid command-line flag or action is used.
  • #771: Fix normalization of deprecated sections ("location:", "storage:", "hooks:", etc.) to
    support empty sections without erroring.
  • #774: Disallow the "--dry-run" flag with the "borg" action, as borgmatic can't guarantee the Borg
    command won't have side effects.
borgmatic - borgmatic 1.8.3

Published by witten about 1 year ago

  • #665: BREAKING: Simplify logging logic as follows: Syslog verbosity is now disabled by
    default, but setting the "--syslog-verbosity" flag enables it regardless of whether you're at an
    interactive console. Additionally, "--log-file-verbosity" and "--monitoring-verbosity" now
    default to 1 (info about steps borgmatic is taking) instead of 0. And both syslog logging and
    file logging can be enabled simultaneously.
  • #743: Add a monitoring hook for sending backup status and logs to Grafana Loki. See the
    documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#loki-hook
  • #753: When "archive_name_format" is not set, filter archives using the default archive name
    format.
  • #754: Fix error handling to log command output as one record per line instead of truncating
    too-long output and swallowing the end of some Borg error messages.
  • #757: Update documentation so "sudo borgmatic" works for pipx borgmatic installations.
  • #761: Fix for borgmatic not stopping Borg immediately when the user presses ctrl-C.
  • Update documentation to recommend installing/upgrading borgmatic with pipx instead of pip. See the
    documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/set-up-backups/#installation
    https://torsion.org/borgmatic/docs/how-to/upgrade/#upgrading-borgmatic
borgmatic - borgmatic 1.8.2

Published by witten about 1 year ago

  • #345: Add "key export" action to export a copy of the repository key for safekeeping in case
    the original goes missing or gets damaged.
  • #727: Add a MariaDB database hook that uses native MariaDB commands instead of the deprecated
    MySQL ones. Be aware though that any existing backups made with the "mysql_databases:" hook are
    only restorable with a "mysql_databases:" configuration.
  • #738: Fix for potential data loss (data not getting restored) in which the database "restore"
    action didn't actually restore anything and indicated success anyway.
  • Remove the deprecated use of the MongoDB hook's "--db" flag for database restoration.
  • Add source code reference documentation for getting oriented with the borgmatic code as a
    developer: https://torsion.org/borgmatic/docs/reference/source-code/
borgmatic - borgmatic 1.8.1

Published by witten about 1 year ago

borgmatic - borgmatic 1.8.0

Published by witten over 1 year ago

  • #575: BREAKING: For the "borgmatic borg" action, instead of implicitly injecting
    repository/archive into the resulting Borg command-line, pass repository to Borg via an
    environment variable and make archive available for explicit use in your commands. See the
    documentation for more information:
    https://torsion.org/borgmatic/docs/how-to/run-arbitrary-borg-commands/
  • #719: Fix an error when running "borg key export" through borgmatic.
  • #720: Fix an error when dumping a database and the "exclude_nodump" option is set.
  • #724: Add "check_i_know_what_i_am_doing" option to bypass Borg confirmation prompt when running
    "check --repair".
  • When merging two configuration files, error gracefully if the two files do not adhere to the same
    format.
  • #721: Remove configuration sections ("location:", "storage:", "hooks:" etc.), while still keeping
    deprecated support for them. Now, all options are at the same level, and you don't need to worry
    about commenting/uncommenting section headers when you change an option (if you remove your
    sections first).
  • #721: BREAKING: The retention prefix and the consistency prefix can no longer have different
    values (unless one is not set).
  • #721: BREAKING: The storage umask and the hooks umask can no longer have different values (unless
    one is not set).
  • BREAKING: Flags like "--config" that previously took multiple values now need to be given once
    per value, e.g. "--config first.yaml --config second.yaml" instead of "--config first.yaml
    second.yaml". This prevents argument parsing errors on ambiguous commands.
  • BREAKING: Remove the deprecated (and silently ignored) "--successful" flag on the "list" action,
    as newer versions of Borg list successful (non-checkpoint) archives by default.
  • All deprecated configuration option values now generate warning logs.
  • Remove the deprecated (and non-functional) "--excludes" flag in favor of excludes within
    configuration.
  • Fix an error when logging too-long command output during error handling. Now, long command output
    is truncated before logging.
borgmatic - borgmatic 1.7.15

Published by witten over 1 year ago

  • #326: Add configuration options and command-line flags for backing up a database from one
    location while restoring it somewhere else.
  • #399: Add a documentation troubleshooting note for MySQL/MariaDB authentication errors.
  • #529: Remove upgrade-borgmatic-config command for upgrading borgmatic 1.1.0 INI-style
    configuration.
  • #529: Deprecate generate-borgmatic-config in favor of new "config generate" action.
  • #529: Deprecate validate-borgmatic-config in favor of new "config validate" action.
  • #697, #712, #716: Extract borgmatic configuration from backup via new "config bootstrap"
    action—even when borgmatic has no configuration yet!
  • #669: Add sample systemd user service for running borgmatic as a non-root user.
  • #711, #713: Fix an error when "data" check time files are accessed without getting upgraded
    first.
borgmatic - borgmatic 1.7.14

Published by witten over 1 year ago

  • #484: Add a new verbosity level (-2) to disable output entirely (for console, syslog, log file,
    or monitoring), so not even errors are shown.
  • #688: Tweak archive check probing logic to use the newest timestamp found when multiple exist.
  • #659: Add Borg 2 date-based matching flags to various actions for archive selection.
  • #703: Fix an error when loading the configuration schema on Fedora Linux.
  • #704: Fix "check" action error when repository and archive checks are configured but the archive
    check gets skipped due to the configured frequency.
  • #706: Fix "--archive latest" on "list" and "info" actions that only worked on the first of
    multiple configured repositories.
borgmatic - borgmatic 1.7.12

Published by witten over 1 year ago

borgmatic - borgmatic 1.7.11

Published by witten over 1 year ago

  • #479, #588: BREAKING: Automatically use the "archive_name_format" option to filter which archives
    get used for borgmatic actions that operate on multiple archives. Override this behavior with the
    new "match_archives" option in the storage section. This change is "breaking" in that it silently
    changes which archives get considered for "rlist", "prune", "check", etc. See the documentation
    for more information:
    https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#archive-naming
  • #479, #588: The "prefix" options have been deprecated in favor of the new "archive_name_format"
    auto-matching behavior and the "match_archives" option.
  • #658: Add "--log-file-format" flag for customizing the log message format. See the documentation
    for more information:
    https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#logging-to-file
  • #662: Fix regression in which the "check_repositories" option failed to match repositories.
  • #663: Fix regression in which the "transfer" action produced a traceback.
  • Add spellchecking of source code during test runs.
borgmatic - borgmatic 1.7.10

Published by witten over 1 year ago

  • #396: When a database command errors, display and log the error message instead of swallowing it.
  • #501: Optionally error if a source directory does not exist via "source_directories_must_exist"
    option in borgmatic's location configuration.
  • #576: Add support for "file://" paths within "repositories" option.
  • #612: Define and use custom constants in borgmatic configuration files. See the documentation for
    more information:
    https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#constant-interpolation
  • #618: Add support for BORG_FILES_CACHE_TTL environment variable via "borg_files_cache_ttl" option
    in borgmatic's storage configuration.
  • #623: Fix confusing message when an error occurs running actions for a configuration file.
  • #635: Add optional repository labels so you can select a repository via "--repository yourlabel"
    at the command-line. See the configuration reference for more information:
    https://torsion.org/borgmatic/docs/reference/configuration/
  • #649: Add documentation on backing up a database running in a container:
    https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#containers
  • #655: Fix error when databases are configured and a source directory doesn't exist.
  • Add code style plugins to enforce use of Python f-strings and prevent single-letter variables.
    To join in the pedantry, refresh your test environment with "tox --recreate".
  • Rename scripts/run-full-dev-tests to scripts/run-end-to-end-dev-tests and make it run end-to-end
    tests only. Continue using tox to run unit and integration tests.
borgmatic - borgmatic 1.7.9

Published by witten over 1 year ago

  • #295: Add a SQLite database dump/restore hook.
  • #304: Change the default action order when no actions are specified on the command-line to:
    "create", "prune", "compact", "check". If you'd like to retain the old ordering ("prune" and
    "compact" first), then specify actions explicitly on the command-line.
  • #304: Run any command-line actions in the order specified instead of using a fixed ordering.
  • #564: Add "--repository" flag to all actions where it makes sense, so you can run borgmatic on
    a single configured repository instead of all of them.
  • #628: Add a Healthchecks "log" state to send borgmatic logs to Healthchecks without signalling
    success or failure.
  • #647: Add "--strip-components all" feature on the "extract" action to remove leading path
    components of files you extract. Must be used with the "--path" flag.
  • Add support for Python 3.11.