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 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 https://borgbackup.readthedocs.io/en/stable/usage.html#borg-help-patterns for 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.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 https://borgbackup.readthedocs.io/en/stable/usage.html#borg-help-placeholders Default is "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}" 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 https://borgbackup.readthedocs.io/en/stable/usage.html#borg-help-placeholders 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