borgbackup 🔹
Efficient, deduplicating backup program with optional compression and secure encryption.
Will be deprecated
The borgbackup
module might eventually be migrated to 'clanServices'*
See: clanServices
Categories
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.
Usage via Inventory
Roles
This module can be used via predefined roles
client
server
Every role has its own configuration options, which are each listed below.
For more information, see the inventory guide.
Example
For example the admin
module adds the following options globally to all machines where it is used.
clan.admin.allowedkeys
This means there are two equivalent ways to set the allowedkeys
option.
Either via a nixos module or via the inventory interface.
But it is recommended to keep together imports
and config
to preserve
locality of the module configuration.
Options of client
role
The following options are available when using the client
role.
destinations
destinations where the machine should be backuped to
Type: attribute set of (submodule)
Default:
Declared in: clanModules/borgbackup/roles/client.nix
destinations.<name>.name
the name of the backup job
Type: string matching the pattern ^[a-zA-Z0-9._-]+$
Default:
Declared in: clanModules/borgbackup/roles/client.nix
destinations.<name>.repo
the borgbackup repository to backup to
Type: string
Declared in: clanModules/borgbackup/roles/client.nix
destinations.<name>.rsh
the rsh to use for the backup
Type: string
Default:
"ssh -i \${config.clan.core.vars.generators.borgbackup.files.\"borgbackup.ssh\".path} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
Declared in: clanModules/borgbackup/roles/client.nix
exclude
Directories/Files to exclude from the backup. Use * as a wildcard.
Type: list of string
Default:
Declared in: clanModules/borgbackup/roles/client.nix
Options of server
role
The following options are available when using the server
role.
directory
The directory where the borgbackup repositories are stored.
Type: string
Default:
Declared in: clanModules/borgbackup/roles/server.nix
Usage via Nix
This module can be also imported directly in your nixos configuration. Although it is recommended to use the inventory interface if available.
Some modules are considered 'low-level' or 'expert modules' and are not available via the inventory interface.
Module Options
The following options are available for this module.
clan.borgbackup.destinations
destinations where the machine should be backuped to
Type: attribute set of (submodule)
Default:
Declared in: clanModules/borgbackup/roles/client.nix
clan.borgbackup.destinations.<name>.name
the name of the backup job
Type: string matching the pattern ^[a-zA-Z0-9._-]+$
Default:
Declared in: clanModules/borgbackup/roles/client.nix
clan.borgbackup.destinations.<name>.repo
the borgbackup repository to backup to
Type: string
Declared in: clanModules/borgbackup/roles/client.nix
clan.borgbackup.destinations.<name>.rsh
the rsh to use for the backup
Type: string
Default:
"ssh -i \${config.clan.core.vars.generators.borgbackup.files.\"borgbackup.ssh\".path} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
Declared in: clanModules/borgbackup/roles/client.nix
clan.borgbackup.exclude
Directories/Files to exclude from the backup. Use * as a wildcard.
Type: list of string
Default:
Declared in: clanModules/borgbackup/roles/client.nix