blob: 09c70a019e886fadfa674850eb2cbcdf02a74a11 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
{
config,
pkgs,
...
}: {
services.restic.backups = let
snapshotDir = "/srv/snapshots";
homeDir = "${snapshotDir}/home";
boxUser = "u384702-sub1";
in {
storagebox = {
initialize = true;
backupPrepareCommand = ''
[ -d /srv/snapshots/home ] && ${pkgs.btrfs-progs}/bin/btrfs subvolume delete /srv/snapshots/home; ${pkgs.btrfs-progs}/bin/btrfs subvolume snapshot -r /home /srv/snapshots/home; [ -d /srv/snapshots/srv ] && ${pkgs.btrfs-progs}/bin/btrfs subvolume delete /srv/snapshots/srv; ${pkgs.btrfs-progs}/bin/btrfs subvolume snapshot -r /srv /srv/snapshots/srv;
'';
paths = [
snapshotDir
];
exclude = [
"${homeDir}/sils/.cache"
"${homeDir}/sils/bulk"
"${homeDir}/sils/downloads"
];
extraBackupArgs = [
"--verbose" # Spam log
];
passwordFile = config.age.secrets.resticpass.path;
extraOptions = [
"rclone.program='ssh -p 23 ${boxUser}@${boxUser}.your-storagebox.de -i ${config.age.secrets.resticssh.path}'"
];
repository = "rclone: "; # There is only one repository served
timerConfig = {
Requires = "network-online.target";
OnUnitActiveSec = "30m";
OnUnitInactiveSec = "2h";
Persistent = true;
};
};
storagebox-admin = {
passwordFile = config.age.secrets.resticpass.path;
extraOptions = [
"rclone.program='ssh -p 23 ${boxUser}@${boxUser}.your-storagebox.de'"
];
repository = "rclone: "; # There is only one repository served
timerConfig = {};
};
};
}
|