schema.yaml 128 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953
  1. type: object
  2. required:
  3. - repositories
  4. additionalProperties: false
  5. properties:
  6. constants:
  7. type: object
  8. description: |
  9. Constants to use in the configuration file. Within option values,
  10. all occurrences of the constant name in curly braces will be
  11. replaced with the constant value. For example, if you have a
  12. constant named "app_name" with the value "myapp", then the string
  13. "{app_name}" will be replaced with "myapp" in the configuration
  14. file.
  15. example:
  16. app_name: myapp
  17. user: myuser
  18. source_directories:
  19. type: array
  20. items:
  21. type: string
  22. description: |
  23. List of source directories and files to back up. Globs and tildes
  24. are expanded. Do not backslash spaces in path names.
  25. example:
  26. - /home
  27. - /etc
  28. - /var/log/syslog*
  29. - /home/user/path with spaces
  30. repositories:
  31. type: array
  32. items:
  33. type: object
  34. required:
  35. - path
  36. additionalProperties: false
  37. properties:
  38. path:
  39. type: string
  40. description: The local path or Borg URL of the repository.
  41. example: ssh://user@backupserver/./sourcehostname.borg
  42. label:
  43. type: string
  44. description: |
  45. An optional label for the repository, used in logging
  46. and to make selecting the repository easier on the
  47. command-line.
  48. example: backupserver
  49. encryption:
  50. type: string
  51. description: |
  52. The encryption mode with which to create the repository,
  53. only used for the repo-create action. To see the
  54. available encryption modes, run "borg init --help" with
  55. Borg 1 or "borg repo-create --help" with Borg 2.
  56. example: repokey-blake2
  57. append_only:
  58. type: boolean
  59. description: |
  60. Whether the repository should be created append-only,
  61. only used for the repo-create action. Defaults to false.
  62. example: true
  63. storage_quota:
  64. type: string
  65. description: |
  66. The storage quota with which to create the repository,
  67. only used for the repo-create action. Defaults to no
  68. quota.
  69. example: 5G
  70. make_parent_directories:
  71. type: boolean
  72. description: |
  73. Whether any missing parent directories of the repository
  74. path should be created, only used for the repo-create
  75. action. Defaults to false.
  76. example: true
  77. description: |
  78. A required list of local or remote repositories with paths and
  79. optional labels (which can be used with the --repository flag to
  80. select a repository). Tildes are expanded. Multiple repositories are
  81. backed up to in sequence. Borg placeholders can be used. See the
  82. output of "borg help placeholders" for details. See ssh_command for
  83. SSH options like identity file or port. If systemd service is used,
  84. then add local repository paths in the systemd service file to the
  85. ReadWritePaths list.
  86. example:
  87. - path: ssh://user@backupserver/./sourcehostname.borg
  88. label: backupserver
  89. - path: /mnt/backup
  90. label: local
  91. working_directory:
  92. type: string
  93. description: |
  94. Working directory to use when running actions, useful for backing up
  95. using relative source directory paths. Does not currently apply to
  96. borgmatic configuration file paths or includes. Tildes are expanded.
  97. See http://borgbackup.readthedocs.io/en/stable/usage/create.html for
  98. details. Defaults to not set.
  99. example: /path/to/working/directory
  100. one_file_system:
  101. type: boolean
  102. description: |
  103. Stay in same file system; do not cross mount points beyond the given
  104. source directories. Defaults to false.
  105. example: true
  106. numeric_ids:
  107. type: boolean
  108. description: |
  109. Only store/extract numeric user and group identifiers. Defaults to
  110. false.
  111. example: true
  112. atime:
  113. type: boolean
  114. description: |
  115. Store atime into archive. Defaults to true in Borg < 1.2, false in
  116. Borg 1.2+.
  117. example: false
  118. ctime:
  119. type: boolean
  120. description: Store ctime into archive. Defaults to true.
  121. example: false
  122. birthtime:
  123. type: boolean
  124. description: |
  125. Store birthtime (creation date) into archive. Defaults to true.
  126. example: false
  127. read_special:
  128. type: boolean
  129. description: |
  130. Use Borg's --read-special flag to allow backup of block and other
  131. special devices. Use with caution, as it will lead to problems if
  132. used when backing up special devices such as /dev/zero. Defaults to
  133. false. But when a database hook is used, the setting here is ignored
  134. and read_special is considered true.
  135. example: true
  136. flags:
  137. type: boolean
  138. description: |
  139. Record filesystem flags (e.g. NODUMP, IMMUTABLE) in archive.
  140. Defaults to true.
  141. example: false
  142. files_cache:
  143. type: string
  144. description: |
  145. Mode in which to operate the files cache. See
  146. http://borgbackup.readthedocs.io/en/stable/usage/create.html for
  147. details. Defaults to "ctime,size,inode".
  148. example: ctime,size,inode
  149. local_path:
  150. type: string
  151. description: |
  152. Alternate Borg local executable. Defaults to "borg".
  153. example: borg1
  154. remote_path:
  155. type: string
  156. description: |
  157. Alternate Borg remote executable. Defaults to "borg".
  158. example: borg1
  159. patterns:
  160. type: array
  161. items:
  162. type: string
  163. description: |
  164. Any paths matching these patterns are included/excluded from
  165. backups. Globs are expanded. (Tildes are not.) See the output of
  166. "borg help patterns" for more details. Quote any value if it
  167. contains leading punctuation, so it parses correctly.
  168. example:
  169. - 'R /'
  170. - '- /home/*/.cache'
  171. - '+ /home/susan'
  172. - '- /home/*'
  173. patterns_from:
  174. type: array
  175. items:
  176. type: string
  177. description: |
  178. Read include/exclude patterns from one or more separate named files,
  179. one pattern per line. See the output of "borg help patterns" for
  180. more details.
  181. example:
  182. - /etc/borgmatic/patterns
  183. exclude_patterns:
  184. type: array
  185. items:
  186. type: string
  187. description: |
  188. Any paths matching these patterns are excluded from backups. Globs
  189. and tildes are expanded. Note that a glob pattern must either start
  190. with a glob or be an absolute path. Do not backslash spaces in path
  191. names. See the output of "borg help patterns" for more details.
  192. example:
  193. - '*.pyc'
  194. - /home/*/.cache
  195. - '*/.vim*.tmp'
  196. - /etc/ssl
  197. - /home/user/path with spaces
  198. exclude_from:
  199. type: array
  200. items:
  201. type: string
  202. description: |
  203. Read exclude patterns from one or more separate named files, one
  204. pattern per line. See the output of "borg help patterns" for more
  205. details.
  206. example:
  207. - /etc/borgmatic/excludes
  208. exclude_caches:
  209. type: boolean
  210. description: |
  211. Exclude directories that contain a CACHEDIR.TAG file. See
  212. http://www.brynosaurus.com/cachedir/spec.html for details. Defaults
  213. to false.
  214. example: true
  215. exclude_if_present:
  216. type: array
  217. items:
  218. type: string
  219. description: |
  220. Exclude directories that contain a file with the given filenames.
  221. Defaults to not set.
  222. example:
  223. - .nobackup
  224. keep_exclude_tags:
  225. type: boolean
  226. description: |
  227. If true, the exclude_if_present filename is included in backups.
  228. Defaults to false, meaning that the exclude_if_present filename is
  229. omitted from backups.
  230. example: true
  231. exclude_nodump:
  232. type: boolean
  233. description: |
  234. Exclude files with the NODUMP flag. Defaults to false.
  235. example: true
  236. borgmatic_source_directory:
  237. type: string
  238. description: |
  239. Deprecated. Only used for locating database dumps and bootstrap
  240. metadata within backup archives created prior to deprecation.
  241. Replaced by user_runtime_directory and user_state_directory.
  242. Defaults to ~/.borgmatic
  243. example: /tmp/borgmatic
  244. user_runtime_directory:
  245. type: string
  246. description: |
  247. Path for storing temporary runtime data like streaming database
  248. dumps and bootstrap metadata. borgmatic automatically creates and
  249. uses a "borgmatic" subdirectory here. Defaults to $XDG_RUNTIME_DIR
  250. or or $TMPDIR or $TEMP or /run/user/$UID.
  251. example: /run/user/1001
  252. user_state_directory:
  253. type: string
  254. description: |
  255. Path for storing borgmatic state files like records of when checks
  256. last ran. borgmatic automatically creates and uses a "borgmatic"
  257. subdirectory here. If you change this option, borgmatic must
  258. create the check records again (and therefore re-run checks).
  259. Defaults to $XDG_STATE_HOME or ~/.local/state.
  260. example: /var/lib/borgmatic
  261. source_directories_must_exist:
  262. type: boolean
  263. description: |
  264. If true, then source directories (and root pattern paths) must
  265. exist. If they don't, an error is raised. Defaults to false.
  266. example: true
  267. encryption_passcommand:
  268. type: string
  269. description: |
  270. The standard output of this command is used to unlock the encryption
  271. key. Only use on repositories that were initialized with
  272. passcommand/repokey/keyfile encryption. Note that if both
  273. encryption_passcommand and encryption_passphrase are set, then
  274. encryption_passphrase takes precedence. This can also be used to
  275. access encrypted systemd service credentials. Defaults to not set.
  276. For more details, see:
  277. https://torsion.org/borgmatic/docs/how-to/provide-your-passwords/
  278. example: "secret-tool lookup borg-repository repo-name"
  279. encryption_passphrase:
  280. type: string
  281. description: |
  282. Passphrase to unlock the encryption key with. Only use on
  283. repositories that were initialized with passphrase/repokey/keyfile
  284. encryption. Quote the value if it contains punctuation, so it parses
  285. correctly. And backslash any quote or backslash literals as well.
  286. Defaults to not set. Supports the "{credential ...}" syntax.
  287. example: "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
  288. checkpoint_interval:
  289. type: integer
  290. description: |
  291. Number of seconds between each checkpoint during a long-running
  292. backup. See https://borgbackup.readthedocs.io/en/stable/faq.html for
  293. details. Defaults to checkpoints every 1800 seconds (30 minutes).
  294. example: 1800
  295. checkpoint_volume:
  296. type: integer
  297. description: |
  298. Number of backed up bytes between each checkpoint during a
  299. long-running backup. Only supported with Borg 2+. See
  300. https://borgbackup.readthedocs.io/en/stable/faq.html for details.
  301. Defaults to only time-based checkpointing (see
  302. "checkpoint_interval") instead of volume-based checkpointing.
  303. example: 1048576
  304. chunker_params:
  305. type: string
  306. description: |
  307. Specify the parameters passed to the chunker (CHUNK_MIN_EXP,
  308. CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE). See
  309. https://borgbackup.readthedocs.io/en/stable/internals.html for
  310. details. Defaults to "19,23,21,4095".
  311. example: 19,23,21,4095
  312. compression:
  313. type: string
  314. description: |
  315. Type of compression to use when creating archives. (Compression
  316. level can be added separated with a comma, like "zstd,7".) See
  317. http://borgbackup.readthedocs.io/en/stable/usage/create.html for
  318. details. Defaults to "lz4".
  319. example: lz4
  320. recompress:
  321. type: string
  322. enum: ['if-different', 'always', 'never']
  323. description: |
  324. Mode for recompressing data chunks according to MODE.
  325. Possible modes are:
  326. * "if-different": Recompress if the current compression
  327. is with a different compression algorithm.
  328. * "always": Recompress even if the current compression
  329. is with the same compression algorithm. Use this to change
  330. the compression level.
  331. * "never": Do not recompress. Use this option to explicitly
  332. prevent recompression.
  333. See https://borgbackup.readthedocs.io/en/stable/usage/recreate.html
  334. for details. Defaults to "never".
  335. example: if-different
  336. upload_rate_limit:
  337. type: integer
  338. description: |
  339. Remote network upload rate limit in kiBytes/second. Defaults to
  340. unlimited.
  341. example: 100
  342. upload_buffer_size:
  343. type: integer
  344. description: |
  345. Size of network upload buffer in MiB. Defaults to no buffer.
  346. example: 160
  347. retries:
  348. type: integer
  349. description: |
  350. Number of times to retry a failing backup before giving up. Defaults
  351. to 0 (i.e., does not attempt retry).
  352. example: 3
  353. retry_wait:
  354. type: integer
  355. description: |
  356. Wait time between retries (in seconds) to allow transient issues
  357. to pass. Increases after each retry by that same wait time as a
  358. form of backoff. Defaults to 0 (no wait).
  359. example: 10
  360. temporary_directory:
  361. type: string
  362. description: |
  363. Directory where temporary Borg files are stored. Defaults to
  364. $TMPDIR. See "Resource Usage" at
  365. https://borgbackup.readthedocs.io/en/stable/usage/general.html for
  366. details.
  367. example: /path/to/tmpdir
  368. ssh_command:
  369. type: string
  370. description: |
  371. Command to use instead of "ssh". This can be used to specify ssh
  372. options. Defaults to not set.
  373. example: ssh -i /path/to/private/key
  374. borg_base_directory:
  375. type: string
  376. description: |
  377. Base path used for various Borg directories. Defaults to $HOME,
  378. ~$USER, or ~.
  379. example: /path/to/base
  380. borg_config_directory:
  381. type: string
  382. description: |
  383. Path for Borg configuration files. Defaults to
  384. $borg_base_directory/.config/borg
  385. example: /path/to/base/config
  386. borg_cache_directory:
  387. type: string
  388. description: |
  389. Path for Borg cache files. Defaults to
  390. $borg_base_directory/.cache/borg
  391. example: /path/to/base/cache
  392. use_chunks_archive:
  393. type: boolean
  394. description: |
  395. Enables or disables the use of chunks.archive.d for faster cache
  396. resyncs in Borg. If true, value is set to "yes" (default) else
  397. it's set to "no", reducing disk usage but slowing resyncs.
  398. example: true
  399. borg_files_cache_ttl:
  400. type: integer
  401. description: |
  402. Maximum time to live (ttl) for entries in the Borg files cache.
  403. example: 20
  404. borg_security_directory:
  405. type: string
  406. description: |
  407. Path for Borg security and encryption nonce files. Defaults to
  408. $borg_base_directory/.config/borg/security
  409. example: /path/to/base/config/security
  410. borg_keys_directory:
  411. type: string
  412. description: |
  413. Path for Borg encryption key files. Defaults to
  414. $borg_base_directory/.config/borg/keys
  415. example: /path/to/base/config/keys
  416. borg_exit_codes:
  417. type: array
  418. items:
  419. type: object
  420. required: ['code', 'treat_as']
  421. additionalProperties: false
  422. properties:
  423. code:
  424. type: integer
  425. not: {enum: [0]}
  426. description: |
  427. The exit code for an existing Borg warning or error.
  428. example: 100
  429. treat_as:
  430. type: string
  431. enum: ['error', 'warning']
  432. description: |
  433. Whether to consider the exit code as an error or as a
  434. warning in borgmatic.
  435. example: error
  436. description: |
  437. A list of Borg exit codes that should be elevated to errors or
  438. squashed to warnings as indicated. By default, Borg error exit codes
  439. (2 to 99) are treated as errors while warning exit codes (1 and
  440. 100+) are treated as warnings. Exit codes other than 1 and 2 are
  441. only present in Borg 1.4.0+.
  442. example:
  443. - code: 13
  444. treat_as: warning
  445. - code: 100
  446. treat_as: error
  447. umask:
  448. type: integer
  449. description: |
  450. Umask used for when executing Borg or calling hooks. Defaults to
  451. 0077 for Borg or the umask that borgmatic is run with for hooks.
  452. example: 0077
  453. lock_wait:
  454. type: integer
  455. description: |
  456. Maximum seconds to wait for acquiring a repository/cache lock.
  457. Defaults to 1.
  458. example: 5
  459. archive_name_format:
  460. type: string
  461. description: |
  462. Name of the archive to create. Borg placeholders can be used. See
  463. the output of "borg help placeholders" for details. Defaults to
  464. "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}" with Borg 1 and
  465. "{hostname}" with Borg 2, as Borg 2 does not require unique
  466. archive names; identical archive names form a common "series" that
  467. can be targeted together. When running actions like repo-list,
  468. info, or check, borgmatic automatically tries to match only
  469. archives created with this name format.
  470. example: "{hostname}-documents-{now}"
  471. match_archives:
  472. type: string
  473. description: |
  474. A Borg pattern for filtering down the archives used by borgmatic
  475. actions that operate on multiple archives. For Borg 1.x, use a shell
  476. pattern here and see the output of "borg help placeholders" for
  477. details. For Borg 2.x, see the output of "borg help match-archives".
  478. If match_archives is not specified, borgmatic defaults to deriving
  479. the match_archives value from archive_name_format.
  480. example: "sh:{hostname}-*"
  481. relocated_repo_access_is_ok:
  482. type: boolean
  483. description: |
  484. Bypass Borg error about a repository that has been moved. Defaults
  485. to false.
  486. example: true
  487. unknown_unencrypted_repo_access_is_ok:
  488. type: boolean
  489. description: |
  490. Bypass Borg error about a previously unknown unencrypted repository.
  491. Defaults to false.
  492. example: true
  493. check_i_know_what_i_am_doing:
  494. type: boolean
  495. description: |
  496. Bypass Borg confirmation about check with repair option. Defaults to
  497. false and an interactive prompt from Borg.
  498. example: true
  499. extra_borg_options:
  500. type: object
  501. additionalProperties: false
  502. properties:
  503. init:
  504. type: string
  505. description: |
  506. Extra command-line options to pass to "borg init".
  507. example: "--extra-option"
  508. create:
  509. type: string
  510. description: |
  511. Extra command-line options to pass to "borg create".
  512. example: "--extra-option"
  513. prune:
  514. type: string
  515. description: |
  516. Extra command-line options to pass to "borg prune".
  517. example: "--extra-option"
  518. compact:
  519. type: string
  520. description: |
  521. Extra command-line options to pass to "borg compact".
  522. example: "--extra-option"
  523. check:
  524. type: string
  525. description: |
  526. Extra command-line options to pass to "borg check".
  527. example: "--extra-option"
  528. description: |
  529. Additional options to pass directly to particular Borg commands,
  530. handy for Borg options that borgmatic does not yet support natively.
  531. Note that borgmatic does not perform any validation on these
  532. options. Running borgmatic with "--verbosity 2" shows the exact Borg
  533. command-line invocation.
  534. keep_within:
  535. type: string
  536. description: |
  537. Keep all archives within this time interval. See "skip_actions" for
  538. disabling pruning altogether.
  539. example: 3H
  540. keep_secondly:
  541. type: integer
  542. description: Number of secondly archives to keep.
  543. example: 60
  544. keep_minutely:
  545. type: integer
  546. description: Number of minutely archives to keep.
  547. example: 60
  548. keep_hourly:
  549. type: integer
  550. description: Number of hourly archives to keep.
  551. example: 24
  552. keep_daily:
  553. type: integer
  554. description: Number of daily archives to keep.
  555. example: 7
  556. keep_weekly:
  557. type: integer
  558. description: Number of weekly archives to keep.
  559. example: 4
  560. keep_monthly:
  561. type: integer
  562. description: Number of monthly archives to keep.
  563. example: 6
  564. keep_yearly:
  565. type: integer
  566. description: Number of yearly archives to keep.
  567. example: 1
  568. keep_13weekly:
  569. type: integer
  570. description: Number of quarterly archives to keep (13 week strategy).
  571. example: 13
  572. keep_3monthly:
  573. type: integer
  574. description: Number of quarterly archives to keep (3 month strategy).
  575. example: 3
  576. prefix:
  577. type: string
  578. description: |
  579. Deprecated. When pruning or checking archives, only consider archive
  580. names starting with this prefix. Borg placeholders can be used. See
  581. the output of "borg help placeholders" for details. If a prefix is
  582. not specified, borgmatic defaults to matching archives based on the
  583. archive_name_format (see above).
  584. example: sourcehostname
  585. compact_threshold:
  586. type: integer
  587. description: |
  588. Minimum saved space percentage threshold for compacting a segment,
  589. defaults to 10.
  590. example: 20
  591. checks:
  592. type: array
  593. items:
  594. type: object
  595. oneOf:
  596. - required: [name]
  597. additionalProperties: false
  598. properties:
  599. name:
  600. type: string
  601. enum:
  602. - archives
  603. - data
  604. - extract
  605. - disabled
  606. description: |
  607. Name of the consistency check to run:
  608. * "repository" checks the consistency of the
  609. repository.
  610. * "archives" checks all of the archives.
  611. * "data" verifies the integrity of the data
  612. within the archives and implies the "archives"
  613. check as well.
  614. * "spot" checks that some percentage of source
  615. files are found in the most recent archive (with
  616. identical contents).
  617. * "extract" does an extraction dry-run of the
  618. most recent archive.
  619. * See "skip_actions" for disabling checks
  620. altogether.
  621. example: spot
  622. frequency:
  623. type: string
  624. description: |
  625. How frequently to run this type of consistency
  626. check (as a best effort). The value is a number
  627. followed by a unit of time. E.g., "2 weeks" to
  628. run this consistency check no more than every
  629. two weeks for a given repository or "1 month" to
  630. run it no more than monthly. Defaults to
  631. "always": running this check every time checks
  632. are run.
  633. example: 2 weeks
  634. only_run_on:
  635. type: array
  636. items:
  637. type: string
  638. description: |
  639. After the "frequency" duration has elapsed, only
  640. run this check if the current day of the week
  641. matches one of these values (the name of a day of
  642. the week in the current locale). "weekday" and
  643. "weekend" are also accepted. Defaults to running
  644. the check on any day of the week.
  645. example:
  646. - Saturday
  647. - Sunday
  648. - required: [name]
  649. additionalProperties: false
  650. properties:
  651. name:
  652. type: string
  653. enum:
  654. - repository
  655. description: |
  656. Name of the consistency check to run:
  657. * "repository" checks the consistency of the
  658. repository.
  659. * "archives" checks all of the archives.
  660. * "data" verifies the integrity of the data
  661. within the archives and implies the "archives"
  662. check as well.
  663. * "spot" checks that some percentage of source
  664. files are found in the most recent archive (with
  665. identical contents).
  666. * "extract" does an extraction dry-run of the
  667. most recent archive.
  668. * See "skip_actions" for disabling checks
  669. altogether.
  670. example: spot
  671. frequency:
  672. type: string
  673. description: |
  674. How frequently to run this type of consistency
  675. check (as a best effort). The value is a number
  676. followed by a unit of time. E.g., "2 weeks" to
  677. run this consistency check no more than every
  678. two weeks for a given repository or "1 month" to
  679. run it no more than monthly. Defaults to
  680. "always": running this check every time checks
  681. are run.
  682. example: 2 weeks
  683. only_run_on:
  684. type: array
  685. items:
  686. type: string
  687. description: |
  688. After the "frequency" duration has elapsed, only
  689. run this check if the current day of the week
  690. matches one of these values (the name of a day of
  691. the week in the current locale). "weekday" and
  692. "weekend" are also accepted. Defaults to running
  693. the check on any day of the week.
  694. example:
  695. - Saturday
  696. - Sunday
  697. max_duration:
  698. type: integer
  699. description: |
  700. How many seconds to check the repository before
  701. interrupting the check. Useful for splitting a
  702. long-running repository check into multiple
  703. partial checks. Defaults to no interruption. Only
  704. applies to the "repository" check, does not check
  705. the repository index and is not compatible with
  706. the "--repair" flag.
  707. example: 3600
  708. - required:
  709. - name
  710. - count_tolerance_percentage
  711. - data_sample_percentage
  712. - data_tolerance_percentage
  713. additionalProperties: false
  714. properties:
  715. name:
  716. type: string
  717. enum:
  718. - spot
  719. description: |
  720. Name of the consistency check to run:
  721. * "repository" checks the consistency of the
  722. repository.
  723. * "archives" checks all of the archives.
  724. * "data" verifies the integrity of the data
  725. within the archives and implies the "archives"
  726. check as well.
  727. * "spot" checks that some percentage of source
  728. files are found in the most recent archive (with
  729. identical contents).
  730. * "extract" does an extraction dry-run of the
  731. most recent archive.
  732. * See "skip_actions" for disabling checks
  733. altogether.
  734. example: repository
  735. frequency:
  736. type: string
  737. description: |
  738. How frequently to run this type of consistency
  739. check (as a best effort). The value is a number
  740. followed by a unit of time. E.g., "2 weeks" to
  741. run this consistency check no more than every
  742. two weeks for a given repository or "1 month" to
  743. run it no more than monthly. Defaults to
  744. "always": running this check every time checks
  745. are run.
  746. example: 2 weeks
  747. only_run_on:
  748. type: array
  749. items:
  750. type: string
  751. description: |
  752. After the "frequency" duration has elapsed, only
  753. run this check if the current day of the week
  754. matches one of these values (the name of a day of
  755. the week in the current locale). "weekday" and
  756. "weekend" are also accepted. Defaults to running
  757. the check on any day of the week.
  758. example:
  759. - Saturday
  760. - Sunday
  761. count_tolerance_percentage:
  762. type: number
  763. description: |
  764. The percentage delta between the source
  765. directories file count and the most recent backup
  766. archive file count that is allowed before the
  767. entire consistency check fails. This can catch
  768. problems like incorrect excludes, inadvertent
  769. deletes, etc. Required (and only valid) for the
  770. "spot" check.
  771. example: 10
  772. data_sample_percentage:
  773. type: number
  774. description: |
  775. The percentage of total files in the source
  776. directories to randomly sample and compare to
  777. their corresponding files in the most recent
  778. backup archive. Required (and only valid) for the
  779. "spot" check.
  780. example: 1
  781. data_tolerance_percentage:
  782. type: number
  783. description: |
  784. The percentage of total files in the source
  785. directories that can fail a spot check comparison
  786. without failing the entire consistency check. This
  787. can catch problems like source files that have
  788. been bulk-changed by malware, backups that have
  789. been tampered with, etc. The value must be lower
  790. than or equal to the "contents_sample_percentage".
  791. Required (and only valid) for the "spot" check.
  792. example: 0.5
  793. xxh64sum_command:
  794. type: string
  795. description: |
  796. Command to use instead of "xxh64sum" to hash
  797. source files, usually found in an OS package named
  798. "xxhash". Do not substitute with a different hash
  799. type (SHA, MD5, etc.) or the check will never
  800. succeed. Only valid for the "spot" check.
  801. example: /usr/local/bin/xxh64sum
  802. description: |
  803. List of one or more consistency checks to run on a periodic basis
  804. (if "frequency" is set) or every time borgmatic runs checks (if
  805. "frequency" is omitted).
  806. example:
  807. - name: archives
  808. frequency: 2 weeks
  809. - name: repository
  810. check_repositories:
  811. type: array
  812. items:
  813. type: string
  814. description: |
  815. Paths or labels for a subset of the configured "repositories" (see
  816. above) on which to run consistency checks. Handy in case some of
  817. your repositories are very large, and so running consistency checks
  818. on them would take too long. Defaults to running consistency checks
  819. on all configured repositories.
  820. example:
  821. - user@backupserver:sourcehostname.borg
  822. check_last:
  823. type: integer
  824. description: |
  825. Restrict the number of checked archives to the last n. Applies only
  826. to the "archives" check. Defaults to checking all archives.
  827. example: 3
  828. color:
  829. type: boolean
  830. description: |
  831. Apply color to console output. Defaults to true.
  832. example: false
  833. verbosity:
  834. type: integer
  835. enum:
  836. - -2
  837. - -1
  838. - 0
  839. - 1
  840. - 2
  841. description: |
  842. Display verbose output to the console: -2 (disabled), -1 (errors
  843. only), 0 (warnings and responses to actions, the default), 1 (info
  844. about steps borgmatic is taking), or 2 (debug).
  845. example: 2
  846. syslog_verbosity:
  847. type: integer
  848. enum:
  849. - -2
  850. - -1
  851. - 0
  852. - 1
  853. - 2
  854. description: |
  855. Log verbose output to syslog: -2 (disabled, the default), -1 (errors
  856. only), 0 (warnings and responses to actions), 1 (info about steps
  857. borgmatic is taking), or 2 (debug).
  858. example: 2
  859. log_file_verbosity:
  860. type: integer
  861. enum:
  862. - -2
  863. - -1
  864. - 0
  865. - 1
  866. - 2
  867. description: |
  868. Log verbose output to file: -2 (disabled), -1 (errors only), 0
  869. (warnings and responses to actions), 1 (info about steps borgmatic
  870. is taking, the default), or 2 (debug).
  871. example: 2
  872. log_file:
  873. type: string
  874. description: |
  875. Write log messages to the file at this path.
  876. example: /var/log/borgmatic/logfile.txt
  877. log_file_format:
  878. type: string
  879. description: |
  880. Python format string used for log messages written to the log file.
  881. example: "[{asctime}] {levelname}: {prefix}{message}"
  882. monitoring_verbosity:
  883. type: integer
  884. enum:
  885. - -2
  886. - -1
  887. - 0
  888. - 1
  889. - 2
  890. description: |
  891. When a monitoring integration supporting logging is configured, log
  892. verbose output to it: -2 (disabled), -1 (errors only), 0 (warnings
  893. and responses to actions), 1 (info about steps borgmatic is taking,
  894. the default), or 2 (debug).
  895. example: 2
  896. log_json:
  897. type: boolean
  898. description: |
  899. Write Borg log messages and console output as one JSON object per
  900. log line instead of formatted text. Defaults to false.
  901. example: true
  902. progress:
  903. type: boolean
  904. description: |
  905. Display progress as each file or archive is processed when running
  906. supported actions. Corresponds to the "--progress" flag on those
  907. actions. Defaults to false.
  908. example: true
  909. statistics:
  910. type: boolean
  911. description: |
  912. Display statistics for an archive when running supported actions.
  913. Corresponds to the "--stats" flag on those actions. Defaults to
  914. false.
  915. example: true
  916. list_details:
  917. type: boolean
  918. description: |
  919. Display details for each file or archive as it is processed when
  920. running supported actions. Corresponds to the "--list" flag on those
  921. actions. Defaults to false.
  922. example: true
  923. default_actions:
  924. type: boolean
  925. description: |
  926. Whether to apply default actions (create, prune, compact and check)
  927. when no arguments are supplied to the borgmatic command. If set to
  928. false, borgmatic displays the help message instead.
  929. example: true
  930. skip_actions:
  931. type: array
  932. items:
  933. type: string
  934. enum:
  935. - repo-create
  936. - transfer
  937. - prune
  938. - compact
  939. - create
  940. - recreate
  941. - check
  942. - delete
  943. - extract
  944. - config
  945. - export-tar
  946. - mount
  947. - umount
  948. - repo-delete
  949. - restore
  950. - repo-list
  951. - list
  952. - repo-info
  953. - info
  954. - break-lock
  955. - key
  956. - borg
  957. description: |
  958. List of one or more actions to skip running for this configuration
  959. file, even if specified on the command-line (explicitly or
  960. implicitly). This is handy for append-only configurations where you
  961. never want to run "compact" or checkless configuration where you
  962. want to skip "check". Defaults to not skipping any actions.
  963. example:
  964. - compact
  965. before_actions:
  966. type: array
  967. items:
  968. type: string
  969. description: |
  970. Deprecated. Use "commands:" instead. List of one or more shell
  971. commands or scripts to execute before all the actions for each
  972. repository.
  973. example:
  974. - "echo Starting actions."
  975. before_backup:
  976. type: array
  977. items:
  978. type: string
  979. description: |
  980. Deprecated. Use "commands:" instead. List of one or more shell
  981. commands or scripts to execute before creating a backup, run once
  982. per repository.
  983. example:
  984. - "echo Starting a backup."
  985. before_prune:
  986. type: array
  987. items:
  988. type: string
  989. description: |
  990. Deprecated. Use "commands:" instead. List of one or more shell
  991. commands or scripts to execute before pruning, run once per
  992. repository.
  993. example:
  994. - "echo Starting pruning."
  995. before_compact:
  996. type: array
  997. items:
  998. type: string
  999. description: |
  1000. Deprecated. Use "commands:" instead. List of one or more shell
  1001. commands or scripts to execute before compaction, run once per
  1002. repository.
  1003. example:
  1004. - "echo Starting compaction."
  1005. before_check:
  1006. type: array
  1007. items:
  1008. type: string
  1009. description: |
  1010. Deprecated. Use "commands:" instead. List of one or more shell
  1011. commands or scripts to execute before consistency checks, run once
  1012. per repository.
  1013. example:
  1014. - "echo Starting checks."
  1015. before_extract:
  1016. type: array
  1017. items:
  1018. type: string
  1019. description: |
  1020. Deprecated. Use "commands:" instead. List of one or more shell
  1021. commands or scripts to execute before extracting a backup, run once
  1022. per repository.
  1023. example:
  1024. - "echo Starting extracting."
  1025. after_backup:
  1026. type: array
  1027. items:
  1028. type: string
  1029. description: |
  1030. Deprecated. Use "commands:" instead. List of one or more shell
  1031. commands or scripts to execute after creating a backup, run once per
  1032. repository.
  1033. example:
  1034. - "echo Finished a backup."
  1035. after_compact:
  1036. type: array
  1037. items:
  1038. type: string
  1039. description: |
  1040. Deprecated. Use "commands:" instead. List of one or more shell
  1041. commands or scripts to execute after compaction, run once per
  1042. repository.
  1043. example:
  1044. - "echo Finished compaction."
  1045. after_prune:
  1046. type: array
  1047. items:
  1048. type: string
  1049. description: |
  1050. Deprecated. Use "commands:" instead. List of one or more shell
  1051. commands or scripts to execute after pruning, run once per
  1052. repository.
  1053. example:
  1054. - "echo Finished pruning."
  1055. after_check:
  1056. type: array
  1057. items:
  1058. type: string
  1059. description: |
  1060. Deprecated. Use "commands:" instead. List of one or more shell
  1061. commands or scripts to execute after consistency checks, run once
  1062. per repository.
  1063. example:
  1064. - "echo Finished checks."
  1065. after_extract:
  1066. type: array
  1067. items:
  1068. type: string
  1069. description: |
  1070. Deprecated. Use "commands:" instead. List of one or more shell
  1071. commands or scripts to execute after extracting a backup, run once
  1072. per repository.
  1073. example:
  1074. - "echo Finished extracting."
  1075. after_actions:
  1076. type: array
  1077. items:
  1078. type: string
  1079. description: |
  1080. Deprecated. Use "commands:" instead. List of one or more shell
  1081. commands or scripts to execute after all actions for each
  1082. repository.
  1083. example:
  1084. - "echo Finished actions."
  1085. on_error:
  1086. type: array
  1087. items:
  1088. type: string
  1089. description: |
  1090. Deprecated. Use "commands:" instead. List of one or more shell
  1091. commands or scripts to execute when an exception occurs during a
  1092. "create", "prune", "compact", or "check" action or an associated
  1093. before/after hook.
  1094. example:
  1095. - "echo Error during create/prune/compact/check."
  1096. before_everything:
  1097. type: array
  1098. items:
  1099. type: string
  1100. description: |
  1101. Deprecated. Use "commands:" instead. List of one or more shell
  1102. commands or scripts to execute before running all actions (if one of
  1103. them is "create"). These are collected from all configuration files
  1104. and then run once before all of them (prior to all actions).
  1105. example:
  1106. - "echo Starting actions."
  1107. after_everything:
  1108. type: array
  1109. items:
  1110. type: string
  1111. description: |
  1112. Deprecated. Use "commands:" instead. List of one or more shell
  1113. commands or scripts to execute after running all actions (if one of
  1114. them is "create"). These are collected from all configuration files
  1115. and then run once after all of them (after any action).
  1116. example:
  1117. - "echo Completed actions."
  1118. commands:
  1119. type: array
  1120. items:
  1121. type: object
  1122. oneOf:
  1123. - required: [before, run]
  1124. additionalProperties: false
  1125. properties:
  1126. before:
  1127. type: string
  1128. enum:
  1129. - action
  1130. - repository
  1131. - configuration
  1132. - everything
  1133. description: |
  1134. Name for the point in borgmatic's execution that
  1135. the commands should be run before (required if
  1136. "after" isn't set):
  1137. * "action" runs before each action for each
  1138. repository.
  1139. * "repository" runs before all actions for each
  1140. repository.
  1141. * "configuration" runs before all actions and
  1142. repositories in the current configuration file.
  1143. * "everything" runs before all configuration
  1144. files.
  1145. example: action
  1146. when:
  1147. type: array
  1148. items:
  1149. type: string
  1150. enum:
  1151. - repo-create
  1152. - transfer
  1153. - prune
  1154. - compact
  1155. - create
  1156. - recreate
  1157. - check
  1158. - delete
  1159. - extract
  1160. - config
  1161. - export-tar
  1162. - mount
  1163. - umount
  1164. - repo-delete
  1165. - restore
  1166. - repo-list
  1167. - list
  1168. - repo-info
  1169. - info
  1170. - break-lock
  1171. - key
  1172. - borg
  1173. description: |
  1174. List of actions for which the commands will be
  1175. run. Defaults to running for all actions.
  1176. example: [create, prune, compact, check]
  1177. run:
  1178. type: array
  1179. items:
  1180. type: string
  1181. description: |
  1182. List of one or more shell commands or scripts to
  1183. run when this command hook is triggered. Required.
  1184. example:
  1185. - "echo Doing stuff."
  1186. - required: [after, run]
  1187. additionalProperties: false
  1188. properties:
  1189. after:
  1190. type: string
  1191. enum:
  1192. - action
  1193. - repository
  1194. - configuration
  1195. - everything
  1196. - error
  1197. description: |
  1198. Name for the point in borgmatic's execution that
  1199. the commands should be run after (required if
  1200. "before" isn't set):
  1201. * "action" runs after each action for each
  1202. repository.
  1203. * "repository" runs after all actions for each
  1204. repository.
  1205. * "configuration" runs after all actions and
  1206. repositories in the current configuration file.
  1207. * "everything" runs after all configuration
  1208. files.
  1209. * "error" runs after an error occurs.
  1210. example: action
  1211. when:
  1212. type: array
  1213. items:
  1214. type: string
  1215. enum:
  1216. - repo-create
  1217. - transfer
  1218. - prune
  1219. - compact
  1220. - create
  1221. - recreate
  1222. - check
  1223. - delete
  1224. - extract
  1225. - config
  1226. - export-tar
  1227. - mount
  1228. - umount
  1229. - repo-delete
  1230. - restore
  1231. - repo-list
  1232. - list
  1233. - repo-info
  1234. - info
  1235. - break-lock
  1236. - key
  1237. - borg
  1238. description: |
  1239. Only trigger the hook when borgmatic is run with
  1240. particular actions listed here. Defaults to
  1241. running for all actions.
  1242. example: [create, prune, compact, check]
  1243. states:
  1244. type: array
  1245. items:
  1246. type: string
  1247. enum:
  1248. - finish
  1249. - fail
  1250. description: |
  1251. Only trigger the hook if borgmatic encounters one
  1252. of the states (execution results) listed here,
  1253. where:
  1254. * "finish": No errors occurred.
  1255. * "fail": An error occurred.
  1256. This state is evaluated only for the scope of the
  1257. configured "action", "repository", etc., rather
  1258. than for the entire borgmatic run. Only available
  1259. for "after" hooks. Defaults to running the hook
  1260. for all states.
  1261. example:
  1262. - finish
  1263. run:
  1264. type: array
  1265. items:
  1266. type: string
  1267. description: |
  1268. List of one or more shell commands or scripts to
  1269. run when this command hook is triggered. Required.
  1270. example:
  1271. - "echo Doing stuff."
  1272. description: |
  1273. List of one or more command hooks to execute, triggered at
  1274. particular points during borgmatic's execution. For each command
  1275. hook, specify one of "before" or "after", not both.
  1276. example:
  1277. - before: action
  1278. when: [create]
  1279. run: [echo Backing up.]
  1280. bootstrap:
  1281. type: object
  1282. additionalProperties: false
  1283. properties:
  1284. store_config_files:
  1285. type: boolean
  1286. description: |
  1287. Store configuration files used to create a backup inside the
  1288. backup itself. Defaults to true. Changing this to false
  1289. prevents "borgmatic bootstrap" from extracting configuration
  1290. files from the backup.
  1291. example: false
  1292. description: |
  1293. Support for the "borgmatic bootstrap" action, used to extract
  1294. borgmatic configuration files from a backup archive.
  1295. postgresql_databases:
  1296. type: array
  1297. items:
  1298. type: object
  1299. required: ['name']
  1300. additionalProperties: false
  1301. properties:
  1302. name:
  1303. type: string
  1304. description: |
  1305. Database name (required if using this hook). Or "all" to
  1306. dump all databases on the host. (Also set the "format"
  1307. to dump each database to a separate file instead of one
  1308. combined file.) Note that using this database hook
  1309. implicitly enables read_special (see above) to support
  1310. dump and restore streaming.
  1311. example: users
  1312. hostname:
  1313. type: string
  1314. description: |
  1315. Database hostname to connect to. Defaults to connecting
  1316. via local Unix socket.
  1317. example: database.example.org
  1318. restore_hostname:
  1319. type: string
  1320. description: |
  1321. Database hostname to restore to. Defaults to the
  1322. "hostname" option.
  1323. example: database.example.org
  1324. port:
  1325. type: integer
  1326. description: Port to connect to. Defaults to 5432.
  1327. example: 5433
  1328. restore_port:
  1329. type: integer
  1330. description: |
  1331. Port to restore to. Defaults to the "port" option.
  1332. example: 5433
  1333. username:
  1334. type: string
  1335. description: |
  1336. Username with which to connect to the database. Defaults
  1337. to the username of the current user. You probably want
  1338. to specify the "postgres" superuser here when the
  1339. database name is "all". Supports the "{credential ...}"
  1340. syntax.
  1341. example: dbuser
  1342. restore_username:
  1343. type: string
  1344. description: |
  1345. Username with which to restore the database. Defaults to
  1346. the "username" option. Supports the "{credential ...}"
  1347. syntax.
  1348. example: dbuser
  1349. password:
  1350. type: string
  1351. description: |
  1352. Password with which to connect to the database. Omitting
  1353. a password will only work if PostgreSQL is configured to
  1354. trust the configured username without a password or you
  1355. create a ~/.pgpass file. Supports the "{credential ...}"
  1356. syntax.
  1357. example: trustsome1
  1358. restore_password:
  1359. type: string
  1360. description: |
  1361. Password with which to connect to the restore database.
  1362. Defaults to the "password" option. Supports the
  1363. "{credential ...}" syntax.
  1364. example: trustsome1
  1365. no_owner:
  1366. type: boolean
  1367. description: |
  1368. Do not output commands to set ownership of objects to
  1369. match the original database. By default, pg_dump and
  1370. pg_restore issue ALTER OWNER or SET SESSION
  1371. AUTHORIZATION statements to set ownership of created
  1372. schema elements. These statements will fail unless the
  1373. initial connection to the database is made by a
  1374. superuser.
  1375. example: true
  1376. format:
  1377. type: string
  1378. enum: ['plain', 'custom', 'directory', 'tar']
  1379. description: |
  1380. Database dump output format. One of "plain", "custom",
  1381. "directory", or "tar". Defaults to "custom" (unlike raw
  1382. pg_dump) for a single database. Or, when database name
  1383. is "all" and format is blank, dumps all databases to a
  1384. single file. But if a format is specified with an "all"
  1385. database name, dumps each database to a separate file of
  1386. that format, allowing more convenient restores of
  1387. individual databases. See the pg_dump documentation for
  1388. more about formats.
  1389. example: directory
  1390. compression:
  1391. type: ["string", "integer"]
  1392. description: |
  1393. Database dump compression level (integer) or method
  1394. ("gzip", "lz4", "zstd", or "none") and optional
  1395. colon-separated detail. Defaults to moderate "gzip" for
  1396. "custom" and "directory" formats and no compression for
  1397. the "plain" format. Compression is not supported for the
  1398. "tar" format. Be aware that Borg does its own
  1399. compression as well, so you may not need it in both
  1400. places.
  1401. example: none
  1402. ssl_mode:
  1403. type: string
  1404. enum: ['disable', 'allow', 'prefer',
  1405. 'require', 'verify-ca', 'verify-full']
  1406. description: |
  1407. SSL mode to use to connect to the database server. One
  1408. of "disable", "allow", "prefer", "require", "verify-ca"
  1409. or "verify-full". Defaults to "disable".
  1410. example: require
  1411. ssl_cert:
  1412. type: string
  1413. description: |
  1414. Path to a client certificate.
  1415. example: "/root/.postgresql/postgresql.crt"
  1416. ssl_key:
  1417. type: string
  1418. description: |
  1419. Path to a private client key.
  1420. example: "/root/.postgresql/postgresql.key"
  1421. ssl_root_cert:
  1422. type: string
  1423. description: |
  1424. Path to a root certificate containing a list of trusted
  1425. certificate authorities.
  1426. example: "/root/.postgresql/root.crt"
  1427. ssl_crl:
  1428. type: string
  1429. description: |
  1430. Path to a certificate revocation list.
  1431. example: "/root/.postgresql/root.crl"
  1432. pg_dump_command:
  1433. type: string
  1434. description: |
  1435. Command to use instead of "pg_dump" or "pg_dumpall".
  1436. This can be used to run a specific pg_dump version
  1437. (e.g., one inside a running container). If you run it
  1438. from within a container, make sure to mount the path in
  1439. the "user_runtime_directory" option from the host into
  1440. the container at the same location. Defaults to
  1441. "pg_dump" for single database dump or "pg_dumpall" to
  1442. dump all databases.
  1443. example: docker exec my_pg_container pg_dump
  1444. pg_restore_command:
  1445. type: string
  1446. description: |
  1447. Command to use instead of "pg_restore". This can be used
  1448. to run a specific pg_restore version (e.g., one inside a
  1449. running container). Defaults to "pg_restore".
  1450. example: docker exec my_pg_container pg_restore
  1451. psql_command:
  1452. type: string
  1453. description: |
  1454. Command to use instead of "psql". This can be used to
  1455. run a specific psql version (e.g., one inside a running
  1456. container). Defaults to "psql".
  1457. example: docker exec my_pg_container psql
  1458. options:
  1459. type: string
  1460. description: |
  1461. Additional pg_dump/pg_dumpall options to pass directly
  1462. to the dump command, without performing any validation
  1463. on them. See pg_dump documentation for details.
  1464. example: --role=someone
  1465. list_options:
  1466. type: string
  1467. description: |
  1468. Additional psql options to pass directly to the psql
  1469. command that lists available databases, without
  1470. performing any validation on them. See psql
  1471. documentation for details.
  1472. example: --role=someone
  1473. restore_options:
  1474. type: string
  1475. description: |
  1476. Additional pg_restore/psql options to pass directly to
  1477. the restore command, without performing any validation
  1478. on them. See pg_restore/psql documentation for details.
  1479. example: --role=someone
  1480. analyze_options:
  1481. type: string
  1482. description: |
  1483. Additional psql options to pass directly to the analyze
  1484. command run after a restore, without performing any
  1485. validation on them. See psql documentation for details.
  1486. example: --role=someone
  1487. description: |
  1488. List of one or more PostgreSQL databases to dump before creating a
  1489. backup, run once per configuration file. The database dumps are
  1490. added to your source directories at runtime and streamed directly
  1491. to Borg. Requires pg_dump/pg_dumpall/pg_restore commands. See
  1492. https://www.postgresql.org/docs/current/app-pgdump.html and
  1493. https://www.postgresql.org/docs/current/libpq-ssl.html for
  1494. details.
  1495. example:
  1496. - name: users
  1497. hostname: database.example.org
  1498. mariadb_databases:
  1499. type: array
  1500. items:
  1501. type: object
  1502. required: ['name']
  1503. additionalProperties: false
  1504. properties:
  1505. name:
  1506. type: string
  1507. description: |
  1508. Database name (required if using this hook). Or "all" to
  1509. dump all databases on the host. Note that using this
  1510. database hook implicitly enables read_special (see
  1511. above) to support dump and restore streaming.
  1512. example: users
  1513. hostname:
  1514. type: string
  1515. description: |
  1516. Database hostname to connect to. Defaults to connecting
  1517. via local Unix socket.
  1518. example: database.example.org
  1519. restore_hostname:
  1520. type: string
  1521. description: |
  1522. Database hostname to restore to. Defaults to the
  1523. "hostname" option.
  1524. example: database.example.org
  1525. port:
  1526. type: integer
  1527. description: Port to connect to. Defaults to 3306.
  1528. example: 3307
  1529. restore_port:
  1530. type: integer
  1531. description: |
  1532. Port to restore to. Defaults to the "port" option.
  1533. example: 5433
  1534. username:
  1535. type: string
  1536. description: |
  1537. Username with which to connect to the database. Defaults
  1538. to the username of the current user. Supports the
  1539. "{credential ...}" syntax.
  1540. example: dbuser
  1541. restore_username:
  1542. type: string
  1543. description: |
  1544. Username with which to restore the database. Defaults to
  1545. the "username" option. Supports the "{credential ...}"
  1546. syntax.
  1547. example: dbuser
  1548. password:
  1549. type: string
  1550. description: |
  1551. Password with which to connect to the database. Omitting
  1552. a password will only work if MariaDB is configured to
  1553. trust the configured username without a password.
  1554. Supports the "{credential ...}" syntax.
  1555. example: trustsome1
  1556. restore_password:
  1557. type: string
  1558. description: |
  1559. Password with which to connect to the restore database.
  1560. Defaults to the "password" option. Supports the
  1561. "{credential ...}" syntax.
  1562. example: trustsome1
  1563. password_transport:
  1564. type: string
  1565. enum:
  1566. - pipe
  1567. - environment
  1568. description: |
  1569. How to transmit database passwords from borgmatic to the
  1570. MariaDB client, one of:
  1571. * "pipe": Securely transmit passwords via anonymous
  1572. pipe. Only works if the database client is on the
  1573. same host as borgmatic. (The server can be
  1574. somewhere else.) This is the default value.
  1575. * "environment": Transmit passwords via environment
  1576. variable. Potentially less secure than a pipe, but
  1577. necessary when the database client is elsewhere, e.g.
  1578. when "mariadb_dump_command" is configured to "exec"
  1579. into a container and run a client there.
  1580. tls:
  1581. type: boolean
  1582. description: |
  1583. Whether to TLS-encrypt data transmitted between the
  1584. client and server. The default varies based on the
  1585. MariaDB version.
  1586. example: false
  1587. restore_tls:
  1588. type: boolean
  1589. description: |
  1590. Whether to TLS-encrypt data transmitted between the
  1591. client and restore server. The default varies based on
  1592. the MariaDB version.
  1593. example: false
  1594. mariadb_dump_command:
  1595. type: string
  1596. description: |
  1597. Command to use instead of "mariadb-dump". This can be
  1598. used to run a specific mariadb_dump version (e.g., one
  1599. inside a running container). If you run it from within a
  1600. container, make sure to mount the path in the
  1601. "user_runtime_directory" option from the host into the
  1602. container at the same location. Defaults to
  1603. "mariadb-dump".
  1604. example: docker exec mariadb_container mariadb-dump
  1605. mariadb_command:
  1606. type: string
  1607. description: |
  1608. Command to run instead of "mariadb". This can be used to
  1609. run a specific mariadb version (e.g., one inside a
  1610. running container). Defaults to "mariadb".
  1611. example: docker exec mariadb_container mariadb
  1612. format:
  1613. type: string
  1614. enum: ['sql']
  1615. description: |
  1616. Database dump output format. Currently only "sql" is
  1617. supported. Defaults to "sql" for a single database. Or,
  1618. when database name is "all" and format is blank, dumps
  1619. all databases to a single file. But if a format is
  1620. specified with an "all" database name, dumps each
  1621. database to a separate file of that format, allowing
  1622. more convenient restores of individual databases.
  1623. example: directory
  1624. add_drop_database:
  1625. type: boolean
  1626. description: |
  1627. Use the "--add-drop-database" flag with mariadb-dump,
  1628. causing the database to be dropped right before restore.
  1629. Defaults to true.
  1630. example: false
  1631. options:
  1632. type: string
  1633. description: |
  1634. Additional mariadb-dump options to pass directly to the
  1635. dump command, without performing any validation on them.
  1636. See mariadb-dump documentation for details.
  1637. example: --skip-comments
  1638. list_options:
  1639. type: string
  1640. description: |
  1641. Additional options to pass directly to the mariadb
  1642. command that lists available databases, without
  1643. performing any validation on them. See mariadb command
  1644. documentation for details.
  1645. example: --defaults-extra-file=mariadb.cnf
  1646. restore_options:
  1647. type: string
  1648. description: |
  1649. Additional options to pass directly to the mariadb
  1650. command that restores database dumps, without
  1651. performing any validation on them. See mariadb command
  1652. documentation for details.
  1653. example: --defaults-extra-file=mariadb.cnf
  1654. description: |
  1655. List of one or more MariaDB databases to dump before creating a
  1656. backup, run once per configuration file. The database dumps are
  1657. added to your source directories at runtime and streamed directly
  1658. to Borg. Requires mariadb-dump/mariadb commands. See
  1659. https://mariadb.com/kb/en/library/mysqldump/ for details.
  1660. example:
  1661. - name: users
  1662. hostname: database.example.org
  1663. mysql_databases:
  1664. type: array
  1665. items:
  1666. type: object
  1667. required: ['name']
  1668. additionalProperties: false
  1669. properties:
  1670. name:
  1671. type: string
  1672. description: |
  1673. Database name (required if using this hook). Or "all" to
  1674. dump all databases on the host. Note that using this
  1675. database hook implicitly enables read_special (see
  1676. above) to support dump and restore streaming.
  1677. example: users
  1678. hostname:
  1679. type: string
  1680. description: |
  1681. Database hostname to connect to. Defaults to connecting
  1682. via local Unix socket.
  1683. example: database.example.org
  1684. restore_hostname:
  1685. type: string
  1686. description: |
  1687. Database hostname to restore to. Defaults to the
  1688. "hostname" option.
  1689. example: database.example.org
  1690. port:
  1691. type: integer
  1692. description: Port to connect to. Defaults to 3306.
  1693. example: 3307
  1694. restore_port:
  1695. type: integer
  1696. description: |
  1697. Port to restore to. Defaults to the "port" option.
  1698. example: 5433
  1699. username:
  1700. type: string
  1701. description: |
  1702. Username with which to connect to the database. Defaults
  1703. to the username of the current user. Supports the
  1704. "{credential ...}" syntax.
  1705. example: dbuser
  1706. restore_username:
  1707. type: string
  1708. description: |
  1709. Username with which to restore the database. Defaults to
  1710. the "username" option. Supports the "{credential ...}"
  1711. syntax.
  1712. example: dbuser
  1713. password:
  1714. type: string
  1715. description: |
  1716. Password with which to connect to the database. Omitting
  1717. a password will only work if MySQL is configured to
  1718. trust the configured username without a password.
  1719. Supports the "{credential ...}" syntax.
  1720. example: trustsome1
  1721. restore_password:
  1722. type: string
  1723. description: |
  1724. Password with which to connect to the restore database.
  1725. Defaults to the "password" option. Supports the
  1726. "{credential ...}" syntax.
  1727. example: trustsome1
  1728. password_transport:
  1729. type: string
  1730. enum:
  1731. - pipe
  1732. - environment
  1733. description: |
  1734. How to transmit database passwords from borgmatic to the
  1735. MySQL client, one of:
  1736. * "pipe": Securely transmit passwords via anonymous
  1737. pipe. Only works if the database client is on the
  1738. same host as borgmatic. (The server can be
  1739. somewhere else.) This is the default value.
  1740. * "environment": Transmit passwords via environment
  1741. variable. Potentially less secure than a pipe, but
  1742. necessary when the database client is elsewhere, e.g.
  1743. when "mysql_dump_command" is configured to "exec"
  1744. into a container and run a client there.
  1745. tls:
  1746. type: boolean
  1747. description: |
  1748. Whether to TLS-encrypt data transmitted between the
  1749. client and server. The default varies based on the
  1750. MySQL installation.
  1751. example: false
  1752. restore_tls:
  1753. type: boolean
  1754. description: |
  1755. Whether to TLS-encrypt data transmitted between the
  1756. client and restore server. The default varies based on
  1757. the MySQL installation.
  1758. example: false
  1759. mysql_dump_command:
  1760. type: string
  1761. description: |
  1762. Command to use instead of "mysqldump". This can be used
  1763. to run a specific mysql_dump version (e.g., one inside a
  1764. running container). If you run it from within a
  1765. container, make sure to mount the path in the
  1766. "user_runtime_directory" option from the host into the
  1767. container at the same location. Defaults to "mysqldump".
  1768. example: docker exec mysql_container mysqldump
  1769. mysql_command:
  1770. type: string
  1771. description: |
  1772. Command to run instead of "mysql". This can be used to
  1773. run a specific mysql version (e.g., one inside a running
  1774. container). Defaults to "mysql".
  1775. example: docker exec mysql_container mysql
  1776. format:
  1777. type: string
  1778. enum: ['sql']
  1779. description: |
  1780. Database dump output format. Currently only "sql" is
  1781. supported. Defaults to "sql" for a single database. Or,
  1782. when database name is "all" and format is blank, dumps
  1783. all databases to a single file. But if a format is
  1784. specified with an "all" database name, dumps each
  1785. database to a separate file of that format, allowing
  1786. more convenient restores of individual databases.
  1787. example: directory
  1788. add_drop_database:
  1789. type: boolean
  1790. description: |
  1791. Use the "--add-drop-database" flag with mysqldump,
  1792. causing the database to be dropped right before restore.
  1793. Defaults to true.
  1794. example: false
  1795. options:
  1796. type: string
  1797. description: |
  1798. Additional mysqldump options to pass directly to the
  1799. dump command, without performing any validation on them.
  1800. See mysqldump documentation for details.
  1801. example: --skip-comments
  1802. list_options:
  1803. type: string
  1804. description: |
  1805. Additional options to pass directly to the mysql
  1806. command that lists available databases, without
  1807. performing any validation on them. See mysql command
  1808. documentation for details.
  1809. example: --defaults-extra-file=my.cnf
  1810. restore_options:
  1811. type: string
  1812. description: |
  1813. Additional options to pass directly to the mysql
  1814. command that restores database dumps, without
  1815. performing any validation on them. See mysql command
  1816. documentation for details.
  1817. example: --defaults-extra-file=my.cnf
  1818. description: |
  1819. List of one or more MySQL databases to dump before creating a
  1820. backup, run once per configuration file. The database dumps are
  1821. added to your source directories at runtime and streamed directly
  1822. to Borg. Requires mysqldump/mysql commands. See
  1823. https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html for
  1824. details.
  1825. example:
  1826. - name: users
  1827. hostname: database.example.org
  1828. sqlite_databases:
  1829. type: array
  1830. items:
  1831. type: object
  1832. required: ['path','name']
  1833. additionalProperties: false
  1834. properties:
  1835. name:
  1836. type: string
  1837. description: |
  1838. This is used to tag the database dump file with a name.
  1839. It is not the path to the database file itself. The name
  1840. "all" has no special meaning for SQLite databases.
  1841. example: users
  1842. path:
  1843. type: string
  1844. description: |
  1845. Path to the SQLite database file to dump. If relative,
  1846. it is relative to the current working directory. Note
  1847. that using this database hook implicitly enables
  1848. read_special (see above) to support dump and restore
  1849. streaming.
  1850. example: /var/lib/sqlite/users.db
  1851. restore_path:
  1852. type: string
  1853. description: |
  1854. Path to the SQLite database file to restore to. Defaults
  1855. to the "path" option.
  1856. example: /var/lib/sqlite/users.db
  1857. sqlite_command:
  1858. type: string
  1859. description: |
  1860. Command to use instead of "sqlite3". This can be used to
  1861. run a specific sqlite3 version (e.g., one inside a
  1862. running container). If you run it from within a
  1863. container, make sure to mount the path in the
  1864. "user_runtime_directory" option from the host into the
  1865. container at the same location. Defaults to "sqlite3".
  1866. example: docker exec sqlite_container sqlite3
  1867. sqlite_restore_command:
  1868. type: string
  1869. description: |
  1870. Command to run when restoring a database instead
  1871. of "sqlite3". This can be used to run a specific
  1872. sqlite3 version (e.g., one inside a running container).
  1873. Defaults to "sqlite3".
  1874. example: docker exec sqlite_container sqlite3
  1875. description: |
  1876. List of one or more SQLite databases to dump before creating a
  1877. backup, run once per configuration file. The database dumps are
  1878. added to your source directories at runtime and streamed directly to
  1879. Borg. Requires the sqlite3 command. See https://sqlite.org/cli.html
  1880. for details.
  1881. example:
  1882. - name: users
  1883. path: /var/lib/db.sqlite
  1884. mongodb_databases:
  1885. type: array
  1886. items:
  1887. type: object
  1888. required: ['name']
  1889. additionalProperties: false
  1890. properties:
  1891. name:
  1892. type: string
  1893. description: |
  1894. Database name (required if using this hook). Or "all" to
  1895. dump all databases on the host. Note that using this
  1896. database hook implicitly enables read_special (see
  1897. above) to support dump and restore streaming.
  1898. example: users
  1899. hostname:
  1900. type: string
  1901. description: |
  1902. Database hostname to connect to. Defaults to connecting
  1903. to localhost.
  1904. example: database.example.org
  1905. restore_hostname:
  1906. type: string
  1907. description: |
  1908. Database hostname to restore to. Defaults to the
  1909. "hostname" option.
  1910. example: database.example.org
  1911. port:
  1912. type: integer
  1913. description: Port to connect to. Defaults to 27017.
  1914. example: 27018
  1915. restore_port:
  1916. type: integer
  1917. description: |
  1918. Port to restore to. Defaults to the "port" option.
  1919. example: 5433
  1920. username:
  1921. type: string
  1922. description: |
  1923. Username with which to connect to the database. Skip it
  1924. if no authentication is needed. Supports the
  1925. "{credential ...}" syntax.
  1926. example: dbuser
  1927. restore_username:
  1928. type: string
  1929. description: |
  1930. Username with which to restore the database. Defaults to
  1931. the "username" option. Supports the "{credential ...}"
  1932. syntax.
  1933. example: dbuser
  1934. password:
  1935. type: string
  1936. description: |
  1937. Password with which to connect to the database. Skip it
  1938. if no authentication is needed. Supports the
  1939. "{credential ...}" syntax.
  1940. example: trustsome1
  1941. restore_password:
  1942. type: string
  1943. description: |
  1944. Password with which to connect to the restore database.
  1945. Defaults to the "password" option. Supports the
  1946. "{credential ...}" syntax.
  1947. example: trustsome1
  1948. authentication_database:
  1949. type: string
  1950. description: |
  1951. Authentication database where the specified username
  1952. exists. If no authentication database is specified, the
  1953. database provided in "name" is used. If "name" is "all",
  1954. the "admin" database is used.
  1955. example: admin
  1956. format:
  1957. type: string
  1958. enum: ['archive', 'directory']
  1959. description: |
  1960. Database dump output format. One of "archive", or
  1961. "directory". Defaults to "archive". See mongodump
  1962. documentation for details. Note that format is ignored
  1963. when the database name is "all".
  1964. example: directory
  1965. options:
  1966. type: string
  1967. description: |
  1968. Additional mongodump options to pass directly to the
  1969. dump command, without performing any validation on them.
  1970. See mongodump documentation for details.
  1971. example: --dumpDbUsersAndRoles
  1972. restore_options:
  1973. type: string
  1974. description: |
  1975. Additional mongorestore options to pass directly to the
  1976. dump command, without performing any validation on them.
  1977. See mongorestore documentation for details.
  1978. example: --restoreDbUsersAndRoles
  1979. mongodump_command:
  1980. type: string
  1981. description: |
  1982. Command to use instead of "mongodump". This can be used
  1983. to run a specific mongodump version (e.g., one inside a
  1984. running container). If you run it from within a
  1985. container, make sure to mount the path in the
  1986. "user_runtime_directory" option from the host into the
  1987. container at the same location. Defaults to
  1988. "mongodump".
  1989. example: docker exec mongodb_container mongodump
  1990. mongorestore_command:
  1991. type: string
  1992. description: |
  1993. Command to run when restoring a database instead of
  1994. "mongorestore". This can be used to run a specific
  1995. mongorestore version (e.g., one inside a running
  1996. container). Defaults to "mongorestore".
  1997. example: docker exec mongodb_container mongorestore
  1998. description: |
  1999. List of one or more MongoDB databases to dump before creating a
  2000. backup, run once per configuration file. The database dumps are
  2001. added to your source directories at runtime and streamed directly
  2002. to Borg. Requires mongodump/mongorestore commands. See
  2003. https://docs.mongodb.com/database-tools/mongodump/ and
  2004. https://docs.mongodb.com/database-tools/mongorestore/ for details.
  2005. example:
  2006. - name: users
  2007. hostname: database.example.org
  2008. ntfy:
  2009. type: object
  2010. required: ['topic']
  2011. additionalProperties: false
  2012. properties:
  2013. topic:
  2014. type: string
  2015. description: |
  2016. The topic to publish to. See https://ntfy.sh/docs/publish/
  2017. for details.
  2018. example: topic
  2019. server:
  2020. type: string
  2021. description: |
  2022. The address of your self-hosted ntfy.sh instance.
  2023. example: https://ntfy.your-domain.com
  2024. username:
  2025. type: string
  2026. description: |
  2027. The username used for authentication. Supports the
  2028. "{credential ...}" syntax.
  2029. example: testuser
  2030. password:
  2031. type: string
  2032. description: |
  2033. The password used for authentication. Supports the
  2034. "{credential ...}" syntax.
  2035. example: fakepassword
  2036. access_token:
  2037. type: string
  2038. description: |
  2039. An ntfy access token to authenticate with instead of
  2040. username/password. Supports the "{credential ...}" syntax.
  2041. example: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2
  2042. start:
  2043. type: object
  2044. additionalProperties: false
  2045. properties:
  2046. title:
  2047. type: string
  2048. description: |
  2049. The title of the message.
  2050. example: Ping!
  2051. message:
  2052. type: string
  2053. description: |
  2054. The message body to publish.
  2055. example: Your backups have failed.
  2056. priority:
  2057. type: string
  2058. description: |
  2059. The priority to set.
  2060. example: urgent
  2061. tags:
  2062. type: string
  2063. description: |
  2064. Tags to attach to the message.
  2065. example: incoming_envelope
  2066. finish:
  2067. type: object
  2068. additionalProperties: false
  2069. properties:
  2070. title:
  2071. type: string
  2072. description: |
  2073. The title of the message.
  2074. example: Ping!
  2075. message:
  2076. type: string
  2077. description: |
  2078. The message body to publish.
  2079. example: Your backups have failed.
  2080. priority:
  2081. type: string
  2082. description: |
  2083. The priority to set.
  2084. example: urgent
  2085. tags:
  2086. type: string
  2087. description: |
  2088. Tags to attach to the message.
  2089. example: incoming_envelope
  2090. fail:
  2091. type: object
  2092. additionalProperties: false
  2093. properties:
  2094. title:
  2095. type: string
  2096. description: |
  2097. The title of the message.
  2098. example: Ping!
  2099. message:
  2100. type: string
  2101. description: |
  2102. The message body to publish.
  2103. example: Your backups have failed.
  2104. priority:
  2105. type: string
  2106. description: |
  2107. The priority to set.
  2108. example: urgent
  2109. tags:
  2110. type: string
  2111. description: |
  2112. Tags to attach to the message.
  2113. example: incoming_envelope
  2114. states:
  2115. type: array
  2116. items:
  2117. type: string
  2118. enum:
  2119. - start
  2120. - finish
  2121. - fail
  2122. uniqueItems: true
  2123. description: |
  2124. List of one or more monitoring states to ping for: "start",
  2125. "finish", and/or "fail". Defaults to pinging for failure
  2126. only.
  2127. example:
  2128. - start
  2129. - finish
  2130. pushover:
  2131. type: object
  2132. required: ['token', 'user']
  2133. additionalProperties: false
  2134. properties:
  2135. token:
  2136. type: string
  2137. description: |
  2138. Your application's API token. Supports the "{credential
  2139. ...}" syntax.
  2140. example: 7ms6TXHpTokTou2P6x4SodDeentHRa
  2141. user:
  2142. type: string
  2143. description: |
  2144. Your user/group key (or that of your target user), viewable
  2145. when logged into your dashboard: often referred to as
  2146. USER_KEY in Pushover documentation and code examples.
  2147. Supports the "{credential ...}" syntax.
  2148. example: hwRwoWsXMBWwgrSecfa9EfPey55WSN
  2149. start:
  2150. type: object
  2151. additionalProperties: false
  2152. properties:
  2153. message:
  2154. type: string
  2155. description: |
  2156. Message to be sent to the user or group. If omitted
  2157. the default is the name of the state.
  2158. example: A backup job has started.
  2159. priority:
  2160. type: integer
  2161. description: |
  2162. A value of -2, -1, 0 (default), 1 or 2 that
  2163. indicates the message priority.
  2164. example: 0
  2165. expire:
  2166. type: integer
  2167. description: |
  2168. How many seconds your notification will continue
  2169. to be retried (every retry seconds). Defaults to
  2170. 600. This settings only applies to priority 2
  2171. notifications.
  2172. example: 600
  2173. retry:
  2174. type: integer
  2175. description: |
  2176. The retry parameter specifies how often
  2177. (in seconds) the Pushover servers will send the
  2178. same notification to the user. Defaults to 30. This
  2179. settings only applies to priority 2 notifications.
  2180. example: 30
  2181. device:
  2182. type: string
  2183. description: |
  2184. The name of one of your devices to send just to
  2185. that device instead of all devices.
  2186. example: pixel8
  2187. html:
  2188. type: boolean
  2189. description: |
  2190. Set to True to enable HTML parsing of the message.
  2191. Set to false for plain text.
  2192. example: true
  2193. sound:
  2194. type: string
  2195. description: |
  2196. The name of a supported sound to override your
  2197. default sound choice. All options can be found
  2198. here: https://pushover.net/api#sounds
  2199. example: bike
  2200. title:
  2201. type: string
  2202. description: |
  2203. Your message's title, otherwise your app's name is
  2204. used.
  2205. example: A backup job has started.
  2206. ttl:
  2207. type: integer
  2208. description: |
  2209. The number of seconds that the message will live,
  2210. before being deleted automatically. The ttl
  2211. parameter is ignored for messages with a priority.
  2212. value of 2.
  2213. example: 3600
  2214. url:
  2215. type: string
  2216. description: |
  2217. A supplementary URL to show with your message.
  2218. example: https://pushover.net/apps/xxxxx-borgbackup
  2219. url_title:
  2220. type: string
  2221. description: |
  2222. A title for the URL specified as the url parameter,
  2223. otherwise just the URL is shown.
  2224. example: Pushover Link
  2225. finish:
  2226. type: object
  2227. additionalProperties: false
  2228. properties:
  2229. message:
  2230. type: string
  2231. description: |
  2232. Message to be sent to the user or group. If omitted
  2233. the default is the name of the state.
  2234. example: A backup job has finished.
  2235. priority:
  2236. type: integer
  2237. description: |
  2238. A value of -2, -1, 0 (default), 1 or 2 that
  2239. indicates the message priority.
  2240. example: 0
  2241. expire:
  2242. type: integer
  2243. description: |
  2244. How many seconds your notification will continue
  2245. to be retried (every retry seconds). Defaults to
  2246. 600. This settings only applies to priority 2
  2247. notifications.
  2248. example: 600
  2249. retry:
  2250. type: integer
  2251. description: |
  2252. The retry parameter specifies how often
  2253. (in seconds) the Pushover servers will send the
  2254. same notification to the user. Defaults to 30. This
  2255. settings only applies to priority 2 notifications.
  2256. example: 30
  2257. device:
  2258. type: string
  2259. description: |
  2260. The name of one of your devices to send just to
  2261. that device instead of all devices.
  2262. example: pixel8
  2263. html:
  2264. type: boolean
  2265. description: |
  2266. Set to True to enable HTML parsing of the message.
  2267. Set to false for plain text.
  2268. example: true
  2269. sound:
  2270. type: string
  2271. description: |
  2272. The name of a supported sound to override your
  2273. default sound choice. All options can be found
  2274. here: https://pushover.net/api#sounds
  2275. example: bike
  2276. title:
  2277. type: string
  2278. description: |
  2279. Your message's title, otherwise your app's name is
  2280. used.
  2281. example: A backup job has started.
  2282. ttl:
  2283. type: integer
  2284. description: |
  2285. The number of seconds that the message will live,
  2286. before being deleted automatically. The ttl
  2287. parameter is ignored for messages with a priority.
  2288. value of 2.
  2289. example: 3600
  2290. url:
  2291. type: string
  2292. description: |
  2293. A supplementary URL to show with your message.
  2294. example: https://pushover.net/apps/xxxxx-borgbackup
  2295. url_title:
  2296. type: string
  2297. description: |
  2298. A title for the URL specified as the url parameter,
  2299. otherwise just the URL is shown.
  2300. example: Pushover Link
  2301. fail:
  2302. type: object
  2303. additionalProperties: false
  2304. properties:
  2305. message:
  2306. type: string
  2307. description: |
  2308. Message to be sent to the user or group. If omitted
  2309. the default is the name of the state.
  2310. example: A backup job has failed.
  2311. priority:
  2312. type: integer
  2313. description: |
  2314. A value of -2, -1, 0 (default), 1 or 2 that
  2315. indicates the message priority.
  2316. example: 0
  2317. expire:
  2318. type: integer
  2319. description: |
  2320. How many seconds your notification will continue
  2321. to be retried (every retry seconds). Defaults to
  2322. 600. This settings only applies to priority 2
  2323. notifications.
  2324. example: 600
  2325. retry:
  2326. type: integer
  2327. description: |
  2328. The retry parameter specifies how often
  2329. (in seconds) the Pushover servers will send the
  2330. same notification to the user. Defaults to 30. This
  2331. settings only applies to priority 2 notifications.
  2332. example: 30
  2333. device:
  2334. type: string
  2335. description: |
  2336. The name of one of your devices to send just to
  2337. that device instead of all devices.
  2338. example: pixel8
  2339. html:
  2340. type: boolean
  2341. description: |
  2342. Set to True to enable HTML parsing of the message.
  2343. Set to false for plain text.
  2344. example: true
  2345. sound:
  2346. type: string
  2347. description: |
  2348. The name of a supported sound to override your
  2349. default sound choice. All options can be found
  2350. here: https://pushover.net/api#sounds
  2351. example: bike
  2352. title:
  2353. type: string
  2354. description: |
  2355. Your message's title, otherwise your app's name is
  2356. used.
  2357. example: A backup job has started.
  2358. ttl:
  2359. type: integer
  2360. description: |
  2361. The number of seconds that the message will live,
  2362. before being deleted automatically. The ttl
  2363. parameter is ignored for messages with a priority.
  2364. value of 2.
  2365. example: 3600
  2366. url:
  2367. type: string
  2368. description: |
  2369. A supplementary URL to show with your message.
  2370. example: https://pushover.net/apps/xxxxx-borgbackup
  2371. url_title:
  2372. type: string
  2373. description: |
  2374. A title for the URL specified as the url parameter,
  2375. otherwise just the URL is shown.
  2376. example: Pushover Link
  2377. states:
  2378. type: array
  2379. items:
  2380. type: string
  2381. enum:
  2382. - start
  2383. - finish
  2384. - fail
  2385. uniqueItems: true
  2386. description: |
  2387. List of one or more monitoring states to ping for: "start",
  2388. "finish", and/or "fail". Defaults to pinging for failure
  2389. only.
  2390. example:
  2391. - start
  2392. - finish
  2393. zabbix:
  2394. type: object
  2395. additionalProperties: false
  2396. required:
  2397. - server
  2398. properties:
  2399. itemid:
  2400. type: integer
  2401. description: |
  2402. The ID of the Zabbix item used for collecting data.
  2403. Unique across the entire Zabbix system.
  2404. example: 55105
  2405. host:
  2406. type: string
  2407. description: |
  2408. Host name where the item is stored. Required if "itemid"
  2409. is not set.
  2410. example: borg-server
  2411. key:
  2412. type: string
  2413. description: |
  2414. Key of the host where the item is stored. Required if
  2415. "itemid" is not set.
  2416. example: borg.status
  2417. server:
  2418. type: string
  2419. description: |
  2420. The API endpoint URL of your Zabbix instance, usually ending
  2421. with "/api_jsonrpc.php". Required.
  2422. example: https://zabbix.your-domain.com
  2423. username:
  2424. type: string
  2425. description: |
  2426. The username used for authentication. Not needed if using
  2427. an API key. Supports the "{credential ...}" syntax.
  2428. example: testuser
  2429. password:
  2430. type: string
  2431. description: |
  2432. The password used for authentication. Not needed if using
  2433. an API key. Supports the "{credential ...}" syntax.
  2434. example: fakepassword
  2435. api_key:
  2436. type: string
  2437. description: |
  2438. The API key used for authentication. Not needed if using an
  2439. username/password. Supports the "{credential ...}" syntax.
  2440. example: fakekey
  2441. start:
  2442. type: object
  2443. additionalProperties: false
  2444. properties:
  2445. value:
  2446. type: ["integer", "string"]
  2447. description: |
  2448. The value to set the item to on start.
  2449. example: STARTED
  2450. finish:
  2451. type: object
  2452. additionalProperties: false
  2453. properties:
  2454. value:
  2455. type: ["integer", "string"]
  2456. description: |
  2457. The value to set the item to on finish.
  2458. example: FINISH
  2459. fail:
  2460. type: object
  2461. additionalProperties: false
  2462. properties:
  2463. value:
  2464. type: ["integer", "string"]
  2465. description: |
  2466. The value to set the item to on fail.
  2467. example: ERROR
  2468. states:
  2469. type: array
  2470. items:
  2471. type: string
  2472. enum:
  2473. - start
  2474. - finish
  2475. - fail
  2476. uniqueItems: true
  2477. description: |
  2478. List of one or more monitoring states to ping for: "start",
  2479. "finish", and/or "fail". Defaults to pinging for failure
  2480. only.
  2481. example:
  2482. - start
  2483. - finish
  2484. apprise:
  2485. type: object
  2486. required: ['services']
  2487. additionalProperties: false
  2488. properties:
  2489. services:
  2490. type: array
  2491. items:
  2492. type: object
  2493. additionalProperties: false
  2494. required:
  2495. - url
  2496. - label
  2497. properties:
  2498. url:
  2499. type: string
  2500. description: URL of this Apprise service.
  2501. example: "gotify://hostname/token"
  2502. label:
  2503. type: string
  2504. description: |
  2505. Label used in borgmatic logs for this Apprise
  2506. service.
  2507. example: gotify
  2508. description: |
  2509. A list of Apprise services to publish to with URLs and
  2510. labels. The labels are used for logging. A full list of
  2511. services and their configuration can be found at
  2512. https://github.com/caronc/apprise/wiki.
  2513. example:
  2514. - url: "kodi://user@hostname"
  2515. label: kodi
  2516. - url: "line://Token@User"
  2517. label: line
  2518. send_logs:
  2519. type: boolean
  2520. description: |
  2521. Send borgmatic logs to Apprise services as part of the
  2522. "finish", "fail", and "log" states. Defaults to true.
  2523. example: false
  2524. logs_size_limit:
  2525. type: integer
  2526. description: |
  2527. Number of bytes of borgmatic logs to send to Apprise
  2528. services. Set to 0 to send all logs and disable this
  2529. truncation. Defaults to 1500.
  2530. example: 100000
  2531. start:
  2532. type: object
  2533. required: ['body']
  2534. additionalProperties: false
  2535. properties:
  2536. title:
  2537. type: string
  2538. description: |
  2539. Specify the message title. If left unspecified, no
  2540. title is sent.
  2541. example: Ping!
  2542. body:
  2543. type: string
  2544. description: |
  2545. Specify the message body.
  2546. example: Starting backup process.
  2547. finish:
  2548. type: object
  2549. required: ['body']
  2550. additionalProperties: false
  2551. properties:
  2552. title:
  2553. type: string
  2554. description: |
  2555. Specify the message title. If left unspecified, no
  2556. title is sent.
  2557. example: Ping!
  2558. body:
  2559. type: string
  2560. description: |
  2561. Specify the message body.
  2562. example: Backups successfully made.
  2563. fail:
  2564. type: object
  2565. required: ['body']
  2566. additionalProperties: false
  2567. properties:
  2568. title:
  2569. type: string
  2570. description: |
  2571. Specify the message title. If left unspecified, no
  2572. title is sent.
  2573. example: Ping!
  2574. body:
  2575. type: string
  2576. description: |
  2577. Specify the message body.
  2578. example: Your backups have failed.
  2579. log:
  2580. type: object
  2581. required: ['body']
  2582. additionalProperties: false
  2583. properties:
  2584. title:
  2585. type: string
  2586. description: |
  2587. Specify the message title. If left unspecified, no
  2588. title is sent.
  2589. example: Ping!
  2590. body:
  2591. type: string
  2592. description: |
  2593. Specify the message body.
  2594. example: Here is some info about your backups.
  2595. states:
  2596. type: array
  2597. items:
  2598. type: string
  2599. enum:
  2600. - start
  2601. - finish
  2602. - fail
  2603. - log
  2604. uniqueItems: true
  2605. description: |
  2606. List of one or more monitoring states to ping for:
  2607. "start", "finish", "fail", and/or "log". Defaults to
  2608. pinging for failure only. For each selected state,
  2609. corresponding configuration for the message title and body
  2610. should be given. If any is left unspecified, a generic
  2611. message is emitted instead.
  2612. example:
  2613. - start
  2614. - finish
  2615. healthchecks:
  2616. type: object
  2617. required: ['ping_url']
  2618. additionalProperties: false
  2619. properties:
  2620. ping_url:
  2621. type: string
  2622. description: |
  2623. Healthchecks ping URL or UUID to notify when a backup
  2624. begins, ends, errors, or to send only logs.
  2625. example: https://hc-ping.com/your-uuid-here
  2626. verify_tls:
  2627. type: boolean
  2628. description: |
  2629. Verify the TLS certificate of the ping URL host. Defaults to
  2630. true.
  2631. example: false
  2632. send_logs:
  2633. type: boolean
  2634. description: |
  2635. Send borgmatic logs to Healthchecks as part of the "finish",
  2636. "fail", and "log" states. Defaults to true.
  2637. example: false
  2638. ping_body_limit:
  2639. type: integer
  2640. description: |
  2641. Number of bytes of borgmatic logs to send to Healthchecks,
  2642. ideally the same as PING_BODY_LIMIT configured on the
  2643. Healthchecks server. Set to 0 to send all logs and disable
  2644. this truncation. Defaults to 100000.
  2645. example: 200000
  2646. states:
  2647. type: array
  2648. items:
  2649. type: string
  2650. enum:
  2651. - start
  2652. - finish
  2653. - fail
  2654. - log
  2655. uniqueItems: true
  2656. description: |
  2657. List of one or more monitoring states to ping for: "start",
  2658. "finish", "fail", and/or "log". Defaults to pinging for all
  2659. states.
  2660. example:
  2661. - finish
  2662. create_slug:
  2663. type: boolean
  2664. description: |
  2665. Create the check if it does not exist. Only works with
  2666. the slug URL scheme (https://hc-ping.com/<ping-key>/<slug>
  2667. as opposed to https://hc-ping.com/<uuid>).
  2668. Defaults to false.
  2669. example: true
  2670. description: |
  2671. Configuration for a monitoring integration with Healthchecks. Create
  2672. an account at https://healthchecks.io (or self-host Healthchecks) if
  2673. you'd like to use this service. See borgmatic monitoring
  2674. documentation for details.
  2675. uptime_kuma:
  2676. type: object
  2677. required: ['push_url']
  2678. additionalProperties: false
  2679. properties:
  2680. push_url:
  2681. type: string
  2682. description: |
  2683. Uptime Kuma push URL without query string (do not include the
  2684. question mark or anything after it).
  2685. example: https://example.uptime.kuma/api/push/abcd1234
  2686. states:
  2687. type: array
  2688. items:
  2689. type: string
  2690. enum:
  2691. - start
  2692. - finish
  2693. - fail
  2694. uniqueItems: true
  2695. description: |
  2696. List of one or more monitoring states to push for: "start",
  2697. "finish", and/or "fail". Defaults to pushing for all
  2698. states.
  2699. example:
  2700. - start
  2701. - finish
  2702. - fail
  2703. verify_tls:
  2704. type: boolean
  2705. description: |
  2706. Verify the TLS certificate of the push URL host. Defaults to
  2707. true.
  2708. example: false
  2709. description: |
  2710. Configuration for a monitoring integration with Uptime Kuma using
  2711. the Push monitor type.
  2712. See more information here: https://uptime.kuma.pet
  2713. cronitor:
  2714. type: object
  2715. required: ['ping_url']
  2716. additionalProperties: false
  2717. properties:
  2718. ping_url:
  2719. type: string
  2720. description: |
  2721. Cronitor ping URL to notify when a backup begins,
  2722. ends, or errors.
  2723. example: https://cronitor.link/d3x0c1
  2724. description: |
  2725. Configuration for a monitoring integration with Cronitor. Create an
  2726. account at https://cronitor.io if you'd like to use this service.
  2727. See borgmatic monitoring documentation for details.
  2728. pagerduty:
  2729. type: object
  2730. required: ['integration_key']
  2731. additionalProperties: false
  2732. properties:
  2733. integration_key:
  2734. type: string
  2735. description: |
  2736. PagerDuty integration key used to notify PagerDuty when a
  2737. backup errors. Supports the "{credential ...}" syntax.
  2738. example: a177cad45bd374409f78906a810a3074
  2739. send_logs:
  2740. type: boolean
  2741. description: |
  2742. Send borgmatic logs to PagerDuty when a backup errors.
  2743. Defaults to true.
  2744. example: false
  2745. description: |
  2746. Configuration for a monitoring integration with PagerDuty. Create an
  2747. account at https://www.pagerduty.com if you'd like to use this
  2748. service. See borgmatic monitoring documentation for details.
  2749. cronhub:
  2750. type: object
  2751. required: ['ping_url']
  2752. additionalProperties: false
  2753. properties:
  2754. ping_url:
  2755. type: string
  2756. description: |
  2757. Cronhub ping URL to notify when a backup begins,
  2758. ends, or errors.
  2759. example: https://cronhub.io/ping/1f5e3410-254c-5587
  2760. description: |
  2761. Configuration for a monitoring integration with Cronhub. Create an
  2762. account at https://cronhub.io if you'd like to use this service. See
  2763. borgmatic monitoring documentation for details.
  2764. loki:
  2765. type: object
  2766. required: ['url', 'labels']
  2767. additionalProperties: false
  2768. properties:
  2769. url:
  2770. type: string
  2771. description: |
  2772. Grafana loki log URL to notify when a backup begins,
  2773. ends, or fails.
  2774. example: "http://localhost:3100/loki/api/v1/push"
  2775. labels:
  2776. type: object
  2777. additionalProperties:
  2778. type: string
  2779. description: |
  2780. Allows setting custom labels for the logging stream. At
  2781. least one label is required. "__hostname" gets replaced by
  2782. the machine hostname automatically. "__config" gets replaced
  2783. by the name of the configuration file. "__config_path" gets
  2784. replaced by the full path of the configuration file.
  2785. example:
  2786. app: "borgmatic"
  2787. config: "__config"
  2788. hostname: "__hostname"
  2789. description: |
  2790. Configuration for a monitoring integration with Grafana Loki. You
  2791. can send the logs to a self-hosted instance or create an account at
  2792. https://grafana.com/auth/sign-up/create-user. See borgmatic
  2793. monitoring documentation for details.
  2794. sentry:
  2795. type: object
  2796. required: ['data_source_name_url', 'monitor_slug']
  2797. additionalProperties: false
  2798. properties:
  2799. data_source_name_url:
  2800. type: string
  2801. description: |
  2802. Sentry Data Source Name (DSN) URL, associated with a
  2803. particular Sentry project. Used to construct a cron URL,
  2804. notified when a backup begins, ends, or errors.
  2805. example: https://5f80ec@o294220.ingest.us.sentry.io/203069
  2806. monitor_slug:
  2807. type: string
  2808. description: |
  2809. Sentry monitor slug, associated with a particular Sentry
  2810. project monitor. Used along with the data source name URL to
  2811. construct a cron URL.
  2812. example: mymonitor
  2813. states:
  2814. type: array
  2815. items:
  2816. type: string
  2817. enum:
  2818. - start
  2819. - finish
  2820. - fail
  2821. uniqueItems: true
  2822. description: |
  2823. List of one or more monitoring states to ping for: "start",
  2824. "finish", and/or "fail". Defaults to pinging for all states.
  2825. example:
  2826. - start
  2827. - finish
  2828. description: |
  2829. Configuration for a monitoring integration with Sentry. You can use
  2830. a self-hosted instance via https://develop.sentry.dev/self-hosted/
  2831. or create a cloud-hosted account at https://sentry.io. See borgmatic
  2832. monitoring documentation for details.
  2833. zfs:
  2834. type: ["object", "null"]
  2835. additionalProperties: false
  2836. properties:
  2837. zfs_command:
  2838. type: string
  2839. description: |
  2840. Command to use instead of "zfs".
  2841. example: /usr/local/bin/zfs
  2842. mount_command:
  2843. type: string
  2844. description: |
  2845. Command to use instead of "mount".
  2846. example: /usr/local/bin/mount
  2847. umount_command:
  2848. type: string
  2849. description: |
  2850. Command to use instead of "umount".
  2851. example: /usr/local/bin/umount
  2852. description: |
  2853. Configuration for integration with the ZFS filesystem.
  2854. btrfs:
  2855. type: ["object", "null"]
  2856. additionalProperties: false
  2857. properties:
  2858. btrfs_command:
  2859. type: string
  2860. description: |
  2861. Command to use instead of "btrfs".
  2862. example: /usr/local/bin/btrfs
  2863. findmnt_command:
  2864. type: string
  2865. description: |
  2866. Command to use instead of "findmnt".
  2867. example: /usr/local/bin/findmnt
  2868. description: |
  2869. Configuration for integration with the Btrfs filesystem.
  2870. lvm:
  2871. type: ["object", "null"]
  2872. additionalProperties: false
  2873. properties:
  2874. snapshot_size:
  2875. type: string
  2876. description: |
  2877. Size to allocate for each snapshot taken, including the
  2878. units to use for that size. Defaults to "10%ORIGIN" (10%
  2879. of the size of logical volume being snapshotted). See the
  2880. lvcreate "--size" and "--extents" documentation for more
  2881. information:
  2882. https://www.man7.org/linux/man-pages/man8/lvcreate.8.html
  2883. example: 5GB
  2884. lvcreate_command:
  2885. type: string
  2886. description: |
  2887. Command to use instead of "lvcreate".
  2888. example: /usr/local/bin/lvcreate
  2889. lvremove_command:
  2890. type: string
  2891. description: |
  2892. Command to use instead of "lvremove".
  2893. example: /usr/local/bin/lvremove
  2894. lvs_command:
  2895. type: string
  2896. description: |
  2897. Command to use instead of "lvs".
  2898. example: /usr/local/bin/lvs
  2899. lsblk_command:
  2900. type: string
  2901. description: |
  2902. Command to use instead of "lsblk".
  2903. example: /usr/local/bin/lsblk
  2904. mount_command:
  2905. type: string
  2906. description: |
  2907. Command to use instead of "mount".
  2908. example: /usr/local/bin/mount
  2909. umount_command:
  2910. type: string
  2911. description: |
  2912. Command to use instead of "umount".
  2913. example: /usr/local/bin/umount
  2914. description: |
  2915. Configuration for integration with Linux LVM (Logical Volume
  2916. Manager).
  2917. container:
  2918. type: object
  2919. additionalProperties: false
  2920. properties:
  2921. secrets_directory:
  2922. type: string
  2923. description: |
  2924. Secrets directory to use instead of "/run/secrets".
  2925. example: /path/to/secrets
  2926. description: |
  2927. Configuration for integration with Docker or Podman secrets.
  2928. keepassxc:
  2929. type: object
  2930. additionalProperties: false
  2931. properties:
  2932. keepassxc_cli_command:
  2933. type: string
  2934. description: |
  2935. Command to use instead of "keepassxc-cli".
  2936. example: /usr/local/bin/keepassxc-cli
  2937. key_file:
  2938. type: string
  2939. description: |
  2940. Path to a key file for unlocking the KeePassXC database.
  2941. example: /path/to/keyfile
  2942. yubikey:
  2943. type: string
  2944. description: |
  2945. YubiKey slot and optional serial number used to access the
  2946. KeePassXC database. The format is "<slot[:serial]>", where:
  2947. * <slot> is the YubiKey slot number (e.g., `1` or `2`).
  2948. * <serial> (optional) is the YubiKey's serial number (e.g.,
  2949. `7370001`).
  2950. example: "1:7370001"
  2951. description: |
  2952. Configuration for integration with the KeePassXC password manager.