60 lines
1.7 KiB
Markdown
60 lines
1.7 KiB
Markdown
## Usage
|
|
|
|
```nix
|
|
inventory.instances = {
|
|
borgbackup = {
|
|
module = {
|
|
name = "borgbackup";
|
|
input = "clan-core";
|
|
};
|
|
roles.client.machines."jon".settings = {
|
|
destinations."storagebox" = {
|
|
repo = "username@hostname:/./borgbackup";
|
|
rsh = ''ssh -oPort=23 -i /run/secrets/vars/borgbackup/borgbackup.ssh'';
|
|
};
|
|
};
|
|
roles.server.machines = { };
|
|
};
|
|
};
|
|
```
|
|
|
|
The input should be named according to your flake input. Jon is configured as a
|
|
client machine with a destination pointing to a Hetzner Storage Box.
|
|
|
|
## Overview
|
|
|
|
This guide explains how to set up and manage
|
|
[BorgBackup](https://borgbackup.readthedocs.io/) for secure, efficient backups
|
|
in a clan network. BorgBackup provides:
|
|
|
|
- Space efficient storage of backups with deduplication
|
|
- 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.
|
|
|
|
## Roles
|
|
|
|
### 1. Client
|
|
|
|
Clients are machines that create and send backups to various destinations. Each
|
|
client can have multiple backup destinations configured.
|
|
|
|
### 2. Server
|
|
|
|
Servers act as backup repositories, receiving and storing backups from client
|
|
machines. They can be dedicated backup servers within your clan network.
|
|
|
|
## Backup destinations
|
|
|
|
This service allows you to perform backups to multiple `destinations`.
|
|
Destinations can be:
|
|
|
|
- **Local**: Local disk storage
|
|
- **Server**: Your own borgbackup server (using the `server` role)
|
|
- **Third-party services**: Such as Hetzner's Storage Box
|
|
|
|
For a more comprehensive guide on backups look into the guide section.
|