name: Borgmatic configuration file schema version: 1 map: location: desc: | Where to look for files to backup, and where to store those backups. See https://borgbackup.readthedocs.io/en/stable/quickstart.html and https://borgbackup.readthedocs.io/en/stable/usage.html#borg-create for details. required: true map: source_directories: required: true seq: - type: scalar desc: | List of source directories to backup (required). Globs and tildes are expanded. example: - /home - /etc - /var/log/syslog* one_file_system: type: bool desc: Stay in same file system (do not cross mount points). example: true remote_path: type: scalar desc: Alternate Borg remote executable. Defaults to "borg". example: borg1 repositories: required: true seq: - type: scalar desc: | Paths to local or remote repositories (required). Multiple repositories are backed up to in sequence. example: - user@backupserver:sourcehostname.borg exclude_patterns: seq: - type: scalar desc: | Any paths matching these patterns are excluded from backups. Globs are expanded. See the output of "borg help patterns" for more details. example: - '*.pyc' - /home/*/.cache - /etc/ssl exclude_from: seq: - type: scalar desc: | Read exclude patterns from one or more separate named files, one pattern per line. example: - /etc/borgmatic/excludes exclude_caches: type: bool desc: | Exclude directories that contain a CACHEDIR.TAG file. See http://www.brynosaurus.com/cachedir/spec.html for details. example: true exclude_if_present: type: scalar desc: Exclude directories that contain a file with the given filename. example: .nobackup storage: desc: | Repository storage options. See https://borgbackup.readthedocs.io/en/stable/usage.html#borg-create and https://borgbackup.readthedocs.io/en/stable/usage/general.html#environment-variables for details. map: encryption_passphrase: type: scalar desc: | Passphrase to unlock the encryption key with. Only use on repositories that were initialized with passphrase/repokey encryption. Quote the value if it contains punctuation, so it parses correctly. And backslash any quote or backslash literals as well. example: "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" compression: type: scalar desc: | Type of compression to use when creating archives. See https://borgbackup.readthedocs.org/en/stable/usage.html#borg-create for details. Defaults to no compression. example: lz4 umask: type: scalar desc: Umask to be used for borg create. example: 0077 archive_name_format: type: scalar desc: | Name of the archive. Borg placeholders can be used. See the output of "borg help placeholders" for details. Default is "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}". If you specify this option, you must also specify a prefix in the retention section to avoid accidental pruning of archives with a different archive name format. example: "{hostname}-documents-{now}" retention: desc: | Retention policy for how many backups to keep in each category. See https://borgbackup.readthedocs.org/en/stable/usage.html#borg-prune for details. map: keep_within: type: scalar desc: Keep all archives within this time interval. example: 3H keep_hourly: type: int desc: Number of hourly archives to keep. example: 24 keep_daily: type: int desc: Number of daily archives to keep. example: 7 keep_weekly: type: int desc: Number of weekly archives to keep. example: 4 keep_monthly: type: int desc: Number of monthly archives to keep. example: 6 keep_yearly: type: int desc: Number of yearly archives to keep. example: 1 prefix: type: scalar desc: | When pruning, only consider archive names starting with this prefix. Borg placeholders can be used. See the output of "borg help placeholders" for details. example: sourcehostname consistency: desc: | Consistency checks to run after backups. See https://borgbackup.readthedocs.org/en/stable/usage.html#borg-check and https://borgbackup.readthedocs.org/en/stable/usage.html#borg-extract for details. map: checks: seq: - type: str enum: ['repository', 'archives', 'extract', 'disabled'] unique: true desc: | List of one or more consistency checks to run: "repository", "archives", and/or "extract". Defaults to "repository" and "archives". Set to "disabled" to disable all consistency checks. "repository" checks the consistency of the repository, "archive" checks all of the archives, and "extract" does an extraction dry-run of just the most recent archive. example: - repository - archives check_last: type: int desc: Restrict the number of checked archives to the last n. Applies only to the "archives" check. example: 3 hooks: desc: | Shell commands or scripts to execute before and after a backup or if an error has occurred. IMPORTANT: All provided commands and scripts are executed with user permissions of borgmatic. Do not forget to set secure permissions on this file as well as on any script listed (chmod 0700) to prevent potential shell injection or privilege escalation. map: before_backup: seq: - type: scalar desc: List of one or more shell commands or scripts to execute before creating a backup. example: - echo "`date` - Starting a backup job." after_backup: seq: - type: scalar desc: List of one or more shell commands or scripts to execute after creating a backup. example: - echo "`date` - Backup created." on_error: seq: - type: scalar desc: List of one or more shell commands or scripts to execute in case an exception has occurred. example: - echo "`date` - Error while creating a backup."