Skip to content

borgbackup

Efficient, deduplicating backup program with optional compression and secure encryption.

BorgBackup (short: Borg) gives you:

  • Space efficient storage of backups.
  • Secure, authenticated encryption.
  • Compression: lz4, zstd, zlib, lzma or none.
  • Mountable backups with FUSE.
  • Easy installation on multiple platforms: Linux, macOS, BSD, ...
  • Free software (BSD license).
  • Backed by a large and active open source community.
Inventory usage

Predefined roles:

  • client
  • server

Usage:

buildClan {
  inventory.services = {
    borgbackup.instance_1 = {
        roles.client.machines = [ "sara_machine" ];
        # ...
    };
  };
}

Usage

To use this module, import it like this:

{config, lib, inputs, ...}: {
    imports = [ inputs.clan-core.clanModules.borgbackup ];
    # ...
}

Module Options

clan.borgbackup.destinations

destinations where the machine should be backuped to

Type: attribute set of (submodule)

Default:

{ }

borgbackup

clan.borgbackup.destinations.<name>.name

the name of the backup job

Type: string matching the pattern ^[a-zA-Z0-9._-]+$

Default:

"‹name›"

borgbackup

clan.borgbackup.destinations.<name>.repo

the borgbackup repository to backup to

Type: string

borgbackup

clan.borgbackup.destinations.<name>.rsh

the rsh to use for the backup

Type: string

Default:

"ssh -i \${config.clan.core.facts.services.borgbackup.secret.\"borgbackup.ssh\".path} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"

borgbackup

clan.borgbackup.exclude

Directories/Files to exclude from the backup. Use * as a wildcard.

Type: list of string

Default:

[ ]
Example
[
  "*.pyc"
]

borgbackup