Compare commits

...

217 Commits
1.8.14 ... main

Author SHA1 Message Date
cfff6c6855 Btrfs snapshotting (#251).
All checks were successful
build / test (push) Successful in 5m46s
build / docs (push) Successful in 1m38s
Reviewed-on: #946
2024-11-30 19:19:09 +00:00
37efaeae88 Warn if Btrfs is configured but there are no Btrfs subvolumes detected (#251). 2024-11-30 10:55:30 -08:00
0978c669ad A little more Btrfs error handling (#251). 2024-11-30 10:25:01 -08:00
1366269586 Add a couple of missing tests (#251). 2024-11-30 09:44:55 -08:00
a9a0910817 Add Btrfs logo to integrations docs (#251). 2024-11-30 09:36:52 -08:00
5bcc7b60c8 Tests for Btrfs (#251). 2024-11-30 09:32:50 -08:00
84a0552277 Improve Btrfs hook factoring/organization (#251). 2024-11-29 09:36:46 -08:00
d4a02f73b5 Create Btrfs snapshots as read-only (#251). 2024-11-28 22:18:44 -08:00
3f901c0a52 Btrfs hook documentation (#251). 2024-11-28 20:32:12 -08:00
b5b5c1fafa Initial work on a Btrfs hook (#251). 2024-11-28 18:47:15 -08:00
86e5085acc Fix incorrect documentation links to source.
All checks were successful
build / test (push) Successful in 4m5s
build / docs (push) Successful in 1m38s
2024-11-27 08:54:19 -08:00
08a5e8717b Merge branch 'main' of ssh://projects.torsion.org:3022/borgmatic-collective/borgmatic
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
2024-11-27 08:51:00 -08:00
6b2f2b2ac4 Reorganize data source and monitoring hooks to make developing new hooks easier. 2024-11-27 08:50:34 -08:00
a07cf9e699 Revert temporary reversion of 1.9.4.dev0.
All checks were successful
build / test (push) Successful in 4m9s
build / docs (push) Successful in 6s
revert Temporary revert of 1.9.4.dev0 changeset so we can re-build 1.9.3 (which never actually got built).

revert Fix library error when running within a PyInstaller bundle (#926).
2024-11-26 16:20:06 +00:00
bf40b01077 Temporary revert of 1.9.4.dev0 changeset so we can re-build 1.9.3 (which never actually got built).
All checks were successful
build / test (push) Successful in 4m8s
build / docs (push) Successful in 55s
revert Fix library error when running within a PyInstaller bundle (#926).
2024-11-26 16:13:39 +00:00
a5c6a2fe1c Fix library error when running within a PyInstaller bundle (#926).
All checks were successful
build / test (push) Successful in 5m47s
build / docs (push) Successful in 1m39s
2024-11-25 20:14:18 -08:00
82141fe981 Bump version for release. 2024-11-25 07:49:11 -08:00
228a83978d Check docs clarifications.
All checks were successful
build / test (push) Successful in 4m19s
build / docs (push) Successful in 1m38s
2024-11-24 19:40:00 -08:00
638db3770b Clarify how frequent default checks run.
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
2024-11-24 19:38:20 -08:00
98df5c3af2 Fix docs about the relative speeds of different checks (#945).
All checks were successful
build / test (push) Successful in 4m9s
build / docs (push) Successful in 1m2s
Reviewed-on: #945
2024-11-25 03:23:39 +00:00
b0e906c0e7 NEWS clarifications.
All checks were successful
build / test (push) Successful in 4m9s
build / docs (push) Successful in 59s
2024-11-24 19:05:11 -08:00
e8dccbf1c1 Promote the "spot" check from a beta feature to stable.
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
2024-11-24 19:03:05 -08:00
4a997bc234 Add rclone to the integrations.
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
2024-11-24 18:59:21 -08:00
3197178b3d Fix flake errors.
All checks were successful
build / test (push) Successful in 4m10s
build / docs (push) Successful in 1m9s
2024-11-24 16:32:48 -08:00
5e618154d0 Clarify error message.
Some checks failed
build / test (push) Failing after 1m50s
build / docs (push) Has been skipped
2024-11-24 16:18:29 -08:00
84f611ae4f Require the runtime directory to be an absolute path.
Some checks failed
build / test (push) Failing after 1m51s
build / docs (push) Has been skipped
2024-11-24 16:15:19 -08:00
5dc8450c8e Adding missing bootstrap files. 2024-11-24 16:15:12 -08:00
689643e5fa Move bootstrap manifest file creation into a hook so it can actually clean up after itself.
Some checks failed
build / test (push) Failing after 1m9s
build / docs (push) Has been skipped
2024-11-24 16:00:33 -08:00
0a3d87eaea
docs: repository check means full CRC check -> slow
Ref: https://borgbackup.readthedocs.io/en/stable/usage/check.html#description
2024-11-24 18:04:58 +01:00
b45b62cd38 Don't recursively snapshot ZFS datasets, since we're not mounting them recursively (#261).
All checks were successful
build / test (push) Successful in 4m9s
build / docs (push) Successful in 56s
2024-11-23 22:37:46 -08:00
8de7094691 ZFS snapshots (#261).
All checks were successful
build / test (push) Successful in 6m1s
build / docs (push) Successful in 1m40s
Reviewed-on: #944
2024-11-24 04:42:19 +00:00
8c7e68305e A few clarifications to the ZFS docs (#261). 2024-11-23 20:41:43 -08:00
65a323433c Add comment (#261). 2024-11-23 20:12:40 -08:00
b5a3589471 A little more error handling (#261). 2024-11-23 18:09:59 -08:00
f4a736bdfe Deduplicate directories again after hooks have their way with them (#261). 2024-11-23 14:33:41 -08:00
eab0ec15ef Expand ZFS NEWS entry (#261). 2024-11-23 11:46:39 -08:00
c65aa24001 Add test coverage for ZFS hook (#261). 2024-11-23 10:50:58 -08:00
5a24bf2037 Get tests passing (#261). 2024-11-22 20:16:18 -08:00
324dbc3a79 Swallow temporary directory removal errors (#261). 2024-11-22 10:56:07 -08:00
9fe7db320a Consider ZFS hook as a beta feature (#261). 2024-11-22 09:53:46 -08:00
4d19596616 Add ZFS documentation (#261). 2024-11-22 08:33:24 -08:00
5cec2bf3d9 Don't unmount directories that don't exist. 2024-11-21 22:16:05 -08:00
06e0f98fd8 More refactoring for better organization of ZFS hook (#261). 2024-11-21 22:09:18 -08:00
87f36caf8d Factoring out some utility functions (#261). 2024-11-21 20:17:57 -08:00
ab7acceff6 Unmount and remove mounted snapshot directories, not just for the current process but for previous borgmatic runs as well (#261). 2024-11-21 19:09:30 -08:00
1b2b0c3020 Update out-of-date ZFS hook comments (#261). 2024-11-21 16:49:25 -08:00
289d178581 Also support discovery of ZFS datasets tagged with a borgmatic-specific user property (#261). 2024-11-21 16:45:44 -08:00
1e7f6d9f41 ZFS hook support for borgmatic's --dry-run (#261). 2024-11-21 11:55:45 -08:00
d0c90389fb Remove ZFS "enabled" option and fix override command options. 2024-11-21 10:52:00 -08:00
f9e920dce9 Prevent ZFS snapshots from ending up in the Borg archive twice (#261). 2024-11-21 10:23:27 -08:00
0ed52bbc4a Proceed gracefully in ZFS data source removal if ZFS isn't installed (#261). 2024-11-21 08:59:59 -08:00
da8278b566 Use os.path.normpath() instead of custom list comprehension (#261). 2024-11-21 08:36:15 -08:00
2af3522902 Fix broken check action (#261). 2024-11-21 08:32:02 -08:00
5e4784991a Comment tweaks and additional TODOs (#261). 2024-11-20 22:33:23 -08:00
ab43ef00ce ZFS snapshots WIP (#261). 2024-11-20 22:21:27 -08:00
47a8a95b29 Test path fix for finding schema file.
All checks were successful
build / test (push) Successful in 4m7s
build / docs (push) Successful in 58s
2024-11-20 08:18:06 -08:00
7c90c04ce0 Add a "--deleted" flag to the "repo-list" action (Borg 2 only).
All checks were successful
build / test (push) Successful in 5m49s
build / docs (push) Successful in 1m39s
2024-11-19 22:33:15 -08:00
97305cc3ce Fix broken tests when NO_COLOR=1 is set (#943).
All checks were successful
build / test (push) Successful in 4m7s
build / docs (push) Successful in 56s
2024-11-19 08:48:21 -08:00
4985b805b4 Bump version for release. 2024-11-18 20:40:51 -08:00
d09b4c72a9 Fix a few remaining Pushover issues from the PR.
All checks were successful
build / test (push) Successful in 5m45s
build / docs (push) Successful in 1m39s
2024-11-18 20:32:17 -08:00
9807549f88
Add a Pushover monitoring hook.
Merge pull request #86 from tony1661/pushover-branch.
2024-11-18 20:17:28 -08:00
30c821120e Fix borgmatic ignoring the "BORG_RELOCATED_REPO_ACCESS_IS_OK" and "BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK" environment variables (#939).
All checks were successful
build / test (push) Successful in 4m5s
build / docs (push) Successful in 55s
2024-11-18 09:46:52 -08:00
13884bd448 Apply the "umask" option to all relevant actions, not just some of them (#441).
All checks were successful
build / test (push) Successful in 4m5s
build / docs (push) Successful in 56s
2024-11-18 09:07:29 -08:00
6bce4c4a0d changed version release to 1.9.2 2024-11-18 07:56:00 -05:00
25572c98d7 better fuction name 2024-11-18 07:52:19 -05:00
dab0dfcb32 added test for value error 2024-11-18 07:49:53 -05:00
851c454ef0 Remove the restriction that the "extract" and "mount" actions must match a single repository (#722).
All checks were successful
build / test (push) Successful in 5m47s
build / docs (push) Successful in 1m40s
2024-11-17 21:39:59 -08:00
c7a0cebaf7 Add a documentation link to NEWS (#934).
All checks were successful
build / test (push) Successful in 4m5s
build / docs (push) Successful in 56s
2024-11-17 12:46:58 -08:00
76cfeda290 Update the logic that probes for the borgmatic runtime directory to support more platforms and use cases (#934).
All checks were successful
build / test (push) Successful in 5m45s
build / docs (push) Successful in 1m40s
Reviewed-on: #937
2024-11-17 19:57:09 +00:00
afdf831c59 Fix broken restore/bootstrap when using Borg 1.2 and a randomly named temporary directory (#934). 2024-11-17 11:55:10 -08:00
9ac3087304 Before creating a temp file in a directory, make sure the directory exists (#934). 2024-11-17 10:30:17 -08:00
7cca83b698 Log the path of the borgmatic runtime directory used (#934). 2024-11-17 10:15:58 -08:00
4b5df7117a Fix documentation type (#934). 2024-11-17 09:01:58 -08:00
57decfa4db Document the fact that the config bootstrap feature writes to the runtime directory (#934). 2024-11-16 16:45:49 -08:00
b80f60a731 Create the borgmatic runtime directory if it doesn't exist (#934). 2024-11-16 16:03:18 -08:00
8f5ea95348 Fix use of borgmatic runtime directory in the restore action (#934). 2024-11-16 12:19:20 -08:00
b0cad58d6c Add a dash to the prefix of the randomly named temporary directory to improve readability (#937). 2024-11-16 11:26:24 -08:00
073d6bddf6 Fix outdated comment (#934). 2024-11-16 07:26:23 -08:00
810b65589f Documentation for runtime/state directory changes (#934). 2024-11-15 22:23:49 -08:00
295bfb0c57 Update the logic that probes for the borgmatic streaming database dump, bootstrap metadata, and check state directories to support more platforms and use cases (#934). 2024-11-15 18:15:32 -08:00
5f3d4f9b03 final fix for true/false and 1/0 2024-11-13 15:27:25 -05:00
5321301708 fix for true/false to 1/0 2024-11-13 15:23:47 -05:00
a939a66fb4 raise ValueError on priprity 2 with retry or expire 2024-11-13 15:20:52 -05:00
c0721a8cad Fix misleading example for user_runtime_directory.
All checks were successful
build / test (push) Successful in 5m45s
build / docs (push) Successful in 1m40s
2024-11-13 11:17:40 -08:00
ea47704d86 added missing tests to get 100% test coverage 2024-11-13 12:09:25 -05:00
61e4eeff6c converted html to a boolean and updated documentation and schema 2024-11-13 11:52:08 -05:00
3ab4b45041 added test for early exit when state is not in config 2024-11-13 09:07:47 -05:00
4e1f256b48 added dryrun test case with minimum config 2024-11-12 10:15:19 -05:00
96bb402837 fix test 2 2024-11-12 10:10:13 -05:00
97949266b3 fix test 2024-11-12 10:09:23 -05:00
e69d2385fc better name for test 2024-11-12 10:08:13 -05:00
6d9340ebb2 better comment blocks 2024-11-12 10:05:57 -05:00
0441e79b41 "fail" -> "fails" 2024-11-12 10:00:34 -05:00
b1af304125 better data dict creation 2024-11-12 09:59:02 -05:00
eb8f7e0329 better description for expire and retry 2024-11-12 09:55:07 -05:00
bf978f2db4 Fix missing build backend setting in pyproject.toml to allow Fedora builds (#932).
All checks were successful
build / test (push) Successful in 4m3s
build / docs (push) Successful in 56s
2024-11-10 17:09:10 -08:00
22776b123d Bump version for release.
All checks were successful
build / test (push) Successful in 10m24s
build / docs (push) Successful in 1m37s
2024-11-10 08:13:18 -08:00
ef66349674 small fixed for some failing tests 2024-11-08 20:02:29 -05:00
51b885e7db added global constant for priority 2024-11-08 19:49:23 -05:00
1781787305 better schema description for retry and expire 2024-11-08 19:43:40 -05:00
46ebb0cebb removed redundant code 2024-11-08 18:45:46 -05:00
3e0fa57860 removed tests that are not needed 2024-11-08 17:44:27 -05:00
59f8722e05 better spacing for comments 2024-11-08 17:42:46 -05:00
4ba42e8905 better wording. Added 'by default' 2024-11-08 17:41:18 -05:00
3b79482b24 better wording 2024-11-08 17:38:58 -05:00
7eb19cb0a7 added period 2024-11-08 17:38:20 -05:00
a4fabb8521 fix version 2024-11-08 17:37:26 -05:00
85ea8f4f45 fix 10min in seconds 2024-11-08 15:03:38 -05:00
290559116d better logic for priority 2024-11-08 15:01:28 -05:00
72b27b0858 better message description in schema 2024-11-08 14:57:44 -05:00
0fdee067c7 double space fix 2024-11-08 14:45:36 -05:00
0dca5eeafc fix title wordwrap 2024-11-08 14:09:03 -05:00
02ce3ba190 fix url_title word wrap 2024-11-08 14:07:49 -05:00
dc78bf4d6b fix TTL wordwrap 2024-11-08 14:06:39 -05:00
4b7fbce291 fix sound word wrap 2024-11-08 14:05:27 -05:00
1817b9a9ea fix wordwrap for html 2024-11-08 13:50:22 -05:00
009055c61a device description rewrap 2024-11-08 13:48:21 -05:00
54884da8fa priority word wrap 2024-11-08 13:46:19 -05:00
1177385e08 fix expire description 2024-11-08 13:44:12 -05:00
a45ba8553c removed duplicate type:object 2024-11-08 13:42:19 -05:00
d7d6e30178 moved checks from hook to schema 2024-11-08 13:40:23 -05:00
56304fdcad Add NEWS entry for multiple system credentials fix (#930).
All checks were successful
build / test (push) Successful in 4m10s
build / docs (push) Successful in 1m37s
2024-11-07 20:20:41 -08:00
3f75e9931f Only support a single systemd credential by default (#930).
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
Reviewed-on: #930
Reviewed-by: Dan Helfman <witten@torsion.org>
2024-11-08 04:18:56 +00:00
227f475e17 Fix an error when implicitly upgrading the check state directory across filesystems (#931).
All checks were successful
build / test (push) Successful in 5m48s
build / docs (push) Successful in 1m38s
2024-11-07 19:19:56 -08:00
467ddd0e93 creds: Only support single credential by default 2024-11-08 00:36:24 +01:00
be08e889f0 Fix the user runtime directory location on macOS (and possibly Cygwin) (#928).
All checks were successful
build / test (push) Successful in 6m31s
build / docs (push) Successful in 2m5s
2024-11-03 21:44:11 -08:00
94c8a56373 Reorder NEWS items. 2024-11-03 13:58:04 -08:00
cecf04aa69 Bump version for release.
All checks were successful
build / test (push) Successful in 6m48s
build / docs (push) Successful in 2m5s
2024-11-03 13:23:57 -08:00
814cdb4b87 Deprecate the "borgmatic_source_directory" option in favor of "user_runtime_directory" and "user_state_directory" (#562). Move the default borgmatic streaming database dump and bootstrap metadata location on disk (#562). With Borg 1.4+, store database dumps and bootstrap metadata in a "/borgmatic" directory within a backup archive (#838). Add "--local-path", "--remote-path", and "--user-runtime-directory" flags to the "config bootstrap" action. 2024-11-03 13:14:05 -08:00
13878be254 Move the default check state directory (#562, #638). Deprecate the "borgmatic_source_directory" option in favor of "borgmatic_runtime_directory" and "borgmatic_state_directory" (#562).
All checks were successful
build / test (push) Successful in 6m56s
build / docs (push) Successful in 2m17s
2024-10-30 22:36:43 -07:00
94db527500 finalized support for Pushover 2024-10-30 15:43:06 -04:00
2849f54932 initial pushover commit 2024-10-30 11:25:26 -04:00
129f3e753c Flesh out the Zabbix monitoring hook tests, add a logo to the documentation, etc.
All checks were successful
build / test (push) Successful in 6m8s
build / docs (push) Successful in 2m9s
2024-10-29 10:33:19 -07:00
c85bf46ad9
Add Zabbix monitoring hook.
Merge pull request #85 from tony1661/zabbix-hook
2024-10-29 09:01:15 -07:00
fa6a4734d4 added auth tests with item id 2024-10-29 09:00:06 -04:00
e52e29444f added user/pass auth test 2024-10-29 08:54:25 -04:00
f713f1df7e better function names and comments 2024-10-29 08:21:52 -04:00
87d824553d converted constants to capitals 2024-10-29 08:05:05 -04:00
52fbf8cb24 capital 2024-10-28 09:54:07 -04:00
f758374772 adjustment in docs to reflect changes in 385ef2d 2024-10-28 09:52:20 -04:00
60c5949c23 adjusted to accept integers and strings 2024-10-28 09:51:08 -04:00
d11c517f67 better schema descriptions 2024-10-28 09:41:34 -04:00
237999cc81 fix word-wrap 2024-10-28 09:40:14 -04:00
d060f8d77a fix log for dry_run_label 2024-10-28 09:38:17 -04:00
385ef2d012 fixes and first unit test attempt 2024-10-28 09:36:30 -04:00
02a2e77315 Add Documentation=... to sample systemd service files.
All checks were successful
build / test (push) Successful in 5m5s
build / docs (push) Successful in 1m14s
2024-10-27 16:31:08 -07:00
9b623a8a8e Move docs exporting to a separate script in the hopes it'll actually work there.
All checks were successful
build / test (push) Successful in 4m57s
build / docs (push) Successful in 1m12s
2024-10-27 14:48:17 -07:00
e1f60e4b09 Fix podman create command to use correct image name.
Some checks failed
build / test (push) Successful in 4m48s
build / docs (push) Failing after 1m11s
2024-10-27 14:33:58 -07:00
269c00b240 Yet another attempt at making a docs tarball from a container image.
Some checks failed
build / test (push) Successful in 4m50s
build / docs (push) Failing after 1m6s
2024-10-27 14:26:00 -07:00
48f008d720 Fix image name of docs export.
Some checks failed
build / test (push) Successful in 5m2s
build / docs (push) Failing after 1m14s
2024-10-27 13:51:12 -07:00
53d9ffd1d3 Attempt to make a borgmatic docs tarball package in CI.
Some checks failed
build / test (push) Successful in 5m4s
build / docs (push) Failing after 1m16s
2024-10-27 13:26:41 -07:00
d7323e08ac Fix isort invocation referring to gone setup.cfg file (#922).
All checks were successful
build / test (push) Successful in 5m4s
build / docs (push) Successful in 2m4s
2024-10-26 20:44:14 -07:00
fc7a2852e0 Code formatting.
Some checks failed
build / test (push) Failing after 2m27s
build / docs (push) Has been skipped
2024-10-26 20:34:48 -07:00
f8c9d985e8 Add pyproject.toml transitin to NEWS.
Some checks failed
build / test (push) Failing after 2m44s
build / docs (push) Has been skipped
2024-10-26 16:40:15 -07:00
c7ca9bf844 Replace setup.py with pyproject.toml.
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
Reviewed-on: #922
2024-10-26 23:38:34 +00:00
7a117d5cc9 Add support for Borg 2's "sftp://" repository URLs.
All checks were successful
build / test (push) Successful in 4m51s
build / docs (push) Successful in 1m10s
2024-10-26 11:58:26 -07:00
bd9751586c Merge blake8 conf to tox.ini 2024-10-26 20:11:39 +02:00
fe0fe27c36 Adjust for Borg 2's change from "rclone://" repository URLs to just "rclone:".
All checks were successful
build / test (push) Successful in 4m55s
build / docs (push) Successful in 1m11s
2024-10-26 09:41:01 -07:00
1426859e1c Mention required borgmatic version in docs about Borg 2.x series changes.
All checks were successful
build / test (push) Successful in 6m48s
build / docs (push) Successful in 2m15s
2024-10-25 22:33:22 -07:00
ffb431e3ab minor improvement 2024-10-25 17:34:33 -04:00
11fee81486 converted string to dictionary as requested 2024-10-25 17:28:02 -04:00
83bc737185 Borg 2 changes: Default the "archive_name_format" option to just "{hostname}". Update the "--match-archives"/"--archive" flags to support series names / archive hashes. Add a "--match-archives" flag to the "prune" action.
All checks were successful
build / test (push) Successful in 5m38s
build / docs (push) Successful in 2m1s
2024-10-25 14:26:31 -07:00
cda83310c8 fixed version number 2024-10-25 08:10:25 -04:00
90ccbecf07 better documatation description 2024-10-25 08:08:38 -04:00
ccbf668bea fix for if logic 2024-10-24 09:01:10 -04:00
f18219a768 changes made with 'tox - e isort' 2024-10-24 08:00:14 -04:00
9ba8ca24eb changes made with 'tox -e black' 2024-10-24 07:52:32 -04:00
b42793a2dc convert concat to fstring 2024-10-23 18:26:22 -04:00
2877c1ad0d added spaces after commas 2024-10-23 18:10:58 -04:00
1b9f95ca47 better description in schema for server 2024-10-23 18:04:28 -04:00
7aff22536d better itemid description in schema 2024-10-23 17:53:07 -04:00
d6e1cc3e12 better wording 2024-10-23 17:43:54 -04:00
c1a08edca2 subheader formatting 2024-10-23 17:42:11 -04:00
02a219fac2 it will 2024-10-23 17:40:24 -04:00
78f81c7b73 changed verison to 1.9 - zabbix hook 2024-10-23 17:39:36 -04:00
8edb40a8e9 added dryrun check 2024-10-23 17:38:24 -04:00
f2d7687ca3 removed unused variable 2024-10-23 17:34:21 -04:00
b5fb0c8247 added returns when expected values are not provided 2024-10-23 17:33:09 -04:00
9b2ac961d7 capitalized Zabbix in logging 2024-10-23 17:30:28 -04:00
38ce98771b removed spaces before logging 2024-10-23 17:28:54 -04:00
f616284ffb better description for server string 2024-10-23 17:24:20 -04:00
5da898003f removed unnecessary parentheses here and below 2024-10-23 17:21:30 -04:00
5a464b3186 better logic for run_states 2024-10-23 17:19:51 -04:00
42fb8c38e0 better comments and logging 2024-10-23 17:15:55 -04:00
80839566d6 better wording for API key 2024-10-23 17:12:18 -04:00
702e55e6f7 formatting fix for key 2024-10-23 17:08:37 -04:00
1a8e8835c1 added quotes and period for host description 2024-10-23 17:00:31 -04:00
9abc5c60d4 its 2024-10-23 16:53:18 -04:00
fc87b74ab0 capital fixed 2024-10-23 16:52:45 -04:00
ad21eb41ae Add support for Borg 2's "rclone://" repository URLs.
All checks were successful
build / test (push) Successful in 6m5s
build / docs (push) Successful in 1m38s
2024-10-23 11:10:40 -07:00
601e393ec7 Fixed package discovery in pyproject.toml 2024-10-22 22:04:33 +02:00
e391fd196d Add loading of systemd credentials to NEWS (#902).
All checks were successful
build / test (push) Successful in 4m8s
build / docs (push) Successful in 1m39s
2024-10-22 09:01:18 -07:00
5f387b3991 Fix documentation URL in YAML (#902). 2024-10-22 08:59:13 -07:00
ed957a940a Load systemd encrypted credentials (#902).
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
Reviewed-on: #902
Reviewed-by: Dan Helfman <witten@torsion.org>
2024-10-22 15:58:41 +00:00
bd4c672382 Apply the "working_directory" option to all actions, not just "create". Also fix the glob expansion of "source_directories" values to respect the "working_directory" option (#609).
All checks were successful
build / test (push) Successful in 5m44s
build / docs (push) Successful in 1m36s
2024-10-20 16:04:41 -07:00
c71da46963 Fix change-passphrase to actually prompt for a new passphrase when an old one is configured (#911). 2024-10-19 09:58:32 -07:00
3da7471fe6 added note about zabbix 7.0+ 2024-10-18 18:00:14 -04:00
b874e7e66f zabbix hook added 2024-10-18 17:57:37 -04:00
b029d1cb67 Add codespell to pyproject.toml 2024-10-15 12:52:05 +02:00
33b1101ce1 Add isort to pyproject.toml 2024-10-15 12:51:33 +02:00
d96c5f79fb Add pytest to pyproject.toml 2024-10-14 18:30:39 +02:00
9e29ce788f Fixed release script 2024-10-14 18:17:22 +02:00
4658c5d1cb Moving to pyproject.toml 2024-10-14 18:17:14 +02:00
5280de86ff Load encrypted systemd credentials 2024-10-13 15:42:07 +02:00
29d5b36a78 Change soft failure command hooks to skip only the current repository (#921).
All checks were successful
build / test (push) Successful in 4m48s
build / docs (push) Successful in 1m16s
2024-10-06 17:39:02 -07:00
29f214a269 Change borgmatic 1.8.15 (unreleased) to 1.9.0 due to breaking changes.
All checks were successful
build / test (push) Successful in 6m20s
build / docs (push) Successful in 1m57s
2024-10-06 16:07:14 -07:00
6fdce2a4a6 Fix a confusing apparent hang when when the repository location changes, and instead show a helpful error message (#914).
All checks were successful
build / test (push) Successful in 5m1s
build / docs (push) Successful in 1m15s
2024-10-03 16:48:34 -07:00
a4b65cf710 Update Borg 2 beta links.
All checks were successful
build / test (push) Successful in 6m30s
build / docs (push) Successful in 1m57s
2024-10-03 08:03:47 -07:00
79725d2ff7 Document a policy for versioning and breaking changes (#919).
All checks were successful
build / test (push) Successful in 4m47s
build / docs (push) Successful in 1m14s
2024-10-02 09:10:12 -07:00
f7e8a2c1d1 Clarify the command-line help for the "--config" flag (#919).
All checks were successful
build / test (push) Successful in 6m25s
build / docs (push) Successful in 2m2s
2024-10-02 08:47:52 -07:00
f54d566edc Fixes to make the inclusive language linter happy.
All checks were successful
build / test (push) Successful in 5m0s
build / docs (push) Successful in 1m24s
2024-10-01 13:37:31 -07:00
b7efa0d3f0 When databases are configured, don't auto-enable the "one_file_system" option (#918).
All checks were successful
build / test (push) Successful in 5m0s
build / docs (push) Successful in 1m17s
2024-10-01 10:16:30 -07:00
88b945dcb9 Add missing test (#911).
All checks were successful
build / test (push) Successful in 5m8s
build / docs (push) Successful in 1m57s
2024-10-01 09:31:03 -07:00
34305d686c Revert "Add missing test (#911)" which accidentally included unrelated changes.
This reverts commit bf1e8bc44e.
2024-10-01 09:28:39 -07:00
bf1e8bc44e Add missing test (#911).
Some checks failed
build / docs (push) Blocked by required conditions
build / test (push) Has been cancelled
2024-10-01 09:26:00 -07:00
fd4f69f6c3 Rename repository actions for compatibility with recent Borg 2 changes (#915).
All checks were successful
build / test (push) Successful in 6m23s
build / docs (push) Successful in 1m59s
2024-09-09 10:05:32 -07:00
1fe6ae83a8 Add a "key change-passphrase" action to change the passphrase protecting a repository key (#911).
All checks were successful
build / test (push) Successful in 6m22s
build / docs (push) Successful in 1m53s
2024-09-01 11:13:39 -07:00
190 changed files with 10714 additions and 2646 deletions

View File

@ -1 +0,0 @@
select = Q0

View File

@ -26,3 +26,5 @@ jobs:
PASSWORD: "${{ secrets.REGISTRY_PASSWORD }}"
- run: podman build --tag "$IMAGE_NAME" --file docs/Dockerfile --storage-opt "overlay.mount_program=/usr/bin/fuse-overlayfs" .
- run: podman push "$IMAGE_NAME"
- run: scripts/export-docs-from-image
- run: curl --user "${{ secrets.REGISTRY_USERNAME }}:${{ secrets.REGISTRY_PASSWORD }}" --upload-file borgmatic-docs.tar.gz https://projects.torsion.org/api/packages/borgmatic-collective/generic/borgmatic-docs/$(head --lines=1 NEWS)/borgmatic-docs.tar.gz

96
NEWS
View File

@ -1,3 +1,99 @@
1.9.4.dev0
* #251 (beta): Add a Btrfs hook for snapshotting and backing up Btrfs subvolumes. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
* #926: Fix library error when running within a PyInstaller bundle.
* Reorganize data source and monitoring hooks to make developing new hooks easier.
1.9.3
* #261 (beta): Add a ZFS hook for snapshotting and backing up ZFS datasets. See the documentation
for more information: https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/
* Remove any temporary copies of the manifest file created in support of the "bootstrap" action.
* Deprecate the "store_config_files" option at the global scope and move it under the "bootstrap"
hook. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/extract-a-backup/#extract-the-configuration-files-used-to-create-an-archive
* Require the runtime directory to be an absolute path.
* Add a "--deleted" flag to the "repo-list" action for listing deleted archives that haven't
yet been compacted (Borg 2 only).
* Promote the "spot" check from a beta feature to stable.
1.9.2
* #441: Apply the "umask" option to all relevant actions, not just some of them.
* #722: Remove the restriction that the "extract" and "mount" actions must match a single
repository. Now they work more like other actions, where each repository is applied in turn.
* #932: Fix the missing build backend setting in pyproject.toml to allow Fedora builds.
* #934: Update the logic that probes for the borgmatic streaming database dump, bootstrap
metadata, and check state directories to support more platforms and use cases. See the
documentation for more information:
https://torsion.org/borgmatic/docs/how-to/backup-your-databases/#runtime-directory
* #934: Add the "RuntimeDirectory" and "StateDirectory" options to the sample systemd service
file to support the new runtime and state directory logic.
* #939: Fix borgmatic ignoring the "BORG_RELOCATED_REPO_ACCESS_IS_OK" and
"BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK" environment variables.
* Add a Pushover monitoring hook. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pushover-hook
1.9.1
* #928: Fix the user runtime directory location on macOS (and possibly Cygwin).
* #930: Fix an error with the sample systemd service when no credentials are configured.
* #931: Fix an error when implicitly upgrading the check state directory from ~/.borgmatic to
~/.local/state/borgmatic across filesystems.
1.9.0
* #609: Fix the glob expansion of "source_directories" values to respect the "working_directory"
option.
* #609: BREAKING: Apply the "working_directory" option to all actions, not just "create". This
includes repository paths, destination paths, mount points, etc.
* #562: Deprecate the "borgmatic_source_directory" option in favor of "user_runtime_directory"
and "user_state_directory".
* #562: BREAKING: Move the default borgmatic streaming database dump and bootstrap metadata
directory from ~/.borgmatic to /run/user/$UID/borgmatic, which is more XDG-compliant. You can
override this location with the new "user_runtime_directory" option. Existing archives with
database dumps at the old location are still restorable.
* #562, #638: Move the default check state directory from ~/.borgmatic to
~/.local/state/borgmatic. This is more XDG-compliant and also prevents these state files from
getting backed up (unless you explicitly include them). You can override this location with the
new "user_state_directory" option. After the first time you run the "check" action with borgmatic
1.9.0, you can safely delete the ~/.borgmatic directory.
* #838: BREAKING: With Borg 1.4+, store database dumps and bootstrap metadata in a "/borgmatic"
directory within a backup archive, so the path doesn't depend on the current user. This means
that you can now backup as one user and restore or bootstrap as another user, among other use
cases.
* #902: Add loading of encrypted systemd credentials. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/#using-systemd-service-credentials
* #911: Add a "key change-passphrase" action to change the passphrase protecting a repository key.
* #914: Fix a confusing apparent hang when when the repository location changes, and instead
show a helpful error message.
* #915: BREAKING: Rename repository actions like "rcreate" to more explicit names like
"repo-create" for compatibility with recent changes in Borg 2.0.0b10.
* #918: BREAKING: When databases are configured, don't auto-enable the "one_file_system" option,
as existing auto-excludes of special files should be sufficient to prevent Borg from hanging on
them. But if this change causes problems for you, you can always enable "one_file_system"
explicitly.
* #919: Clarify the command-line help for the "--config" flag.
* #919: Document a policy for versioning and breaking changes:
https://torsion.org/borgmatic/docs/how-to/upgrade/#versioning-and-breaking-changes
* #921: BREAKING: Change soft failure command hooks to skip only the current repository rather than
all repositories in the configuration file.
* #922: Replace setup.py (Python packaging metadata) with the more modern pyproject.toml.
* When using Borg 2, default the "archive_name_format" option to just "{hostname}", as Borg 2 does
not require unique archive names; identical archive names form a common "series" that can be
targeted together. See the Borg 2 documentation for more information:
https://borgbackup.readthedocs.io/en/2.0.0b13/changes.html#borg-1-2-x-1-4-x-to-borg-2-0
* Add support for Borg 2's "rclone:" repository URLs, so you can backup to 70+ cloud storage
services whether or not they support Borg explicitly.
* Add support for Borg 2's "sftp://" repository URLs.
* Update the "--match-archives" and "--archive" flags to support Borg 2 series names or archive
hashes.
* Add a "--match-archives" flag to the "prune" action.
* Add "--local-path" and "--remote-path" flags to the "config bootstrap" action for setting the
Borg executable paths used for bootstrapping.
* Add a "--user-runtime-directory" flag to the "config bootstrap" action for helping borgmatic
locate the bootstrap metadata stored in an archive.
* Add a Zabbix monitoring hook. See the documentation for more information:
https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#zabbix-hook
* Add a tarball of borgmatic's HTML documentation to the packages on the project page.
1.8.14
* #896: Fix an error in borgmatic rcreate/init on an empty repository directory with Borg 1.4.
* #898: Add glob ("*") support to the "--repository" flag. Just quote any values containing

View File

@ -61,14 +61,19 @@ borgmatic is powered by [Borg Backup](https://www.borgbackup.org/).
<a href="https://mariadb.com/"><img src="docs/static/mariadb.png" alt="MariaDB" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.mongodb.com/"><img src="docs/static/mongodb.png" alt="MongoDB" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://sqlite.org/"><img src="docs/static/sqlite.png" alt="SQLite" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://openzfs.org/"><img src="docs/static/openzfs.png" alt="OpenZFS" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://btrfs.readthedocs.io/"><img src="docs/static/btrfs.png" alt="Btrfs" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://rclone.org"><img src="docs/static/rclone.png" alt="rclone" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://healthchecks.io/"><img src="docs/static/healthchecks.png" alt="Healthchecks" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://uptime.kuma.pet/"><img src="docs/static/uptimekuma.png" alt="Uptime Kuma" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://cronitor.io/"><img src="docs/static/cronitor.png" alt="Cronitor" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://cronhub.io/"><img src="docs/static/cronhub.png" alt="Cronhub" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.pagerduty.com/"><img src="docs/static/pagerduty.png" alt="PagerDuty" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.pushover.net/"><img src="docs/static/pushover.png" alt="Pushover" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://ntfy.sh/"><img src="docs/static/ntfy.png" alt="ntfy" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://grafana.com/oss/loki/"><img src="docs/static/loki.png" alt="Loki" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://github.com/caronc/apprise/wiki"><img src="docs/static/apprise.png" alt="Apprise" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.zabbix.com/"><img src="docs/static/zabbix.png" alt="Zabbix" height="40px" style="margin-bottom:20px; margin-right:20px;"></a>
<a href="https://www.borgbase.com/?utm_source=borgmatic"><img src="docs/static/borgbase.png" alt="BorgBase" height="60px" style="margin-bottom:20px; margin-right:20px;"></a>

View File

@ -1,7 +1,7 @@
import logging
import borgmatic.borg.borg
import borgmatic.borg.rlist
import borgmatic.borg.repo_list
import borgmatic.config.validate
logger = logging.getLogger(__name__)
@ -25,7 +25,7 @@ def run_borg(
logger.info(
f'{repository.get("label", repository["path"])}: Running arbitrary Borg command'
)
archive_name = borgmatic.borg.rlist.resolve_archive_name(
archive_name = borgmatic.borg.repo_list.resolve_archive_name(
repository['path'],
borg_arguments.archive,
config,

View File

@ -0,0 +1,38 @@
import logging
import borgmatic.borg.change_passphrase
import borgmatic.config.validate
logger = logging.getLogger(__name__)
def run_change_passphrase(
repository,
config,
local_borg_version,
change_passphrase_arguments,
global_arguments,
local_path,
remote_path,
):
'''
Run the "key change-passprhase" action for the given repository.
'''
if (
change_passphrase_arguments.repository is None
or borgmatic.config.validate.repositories_match(
repository, change_passphrase_arguments.repository
)
):
logger.info(
f'{repository.get("label", repository["path"])}: Changing repository passphrase'
)
borgmatic.borg.change_passphrase.change_passphrase(
repository['path'],
config,
local_borg_version,
change_passphrase_arguments,
global_arguments,
local_path=local_path,
remote_path=remote_path,
)

View File

@ -6,14 +6,17 @@ import logging
import os
import pathlib
import random
import shutil