nixos-config/hosts/thinkpad/modules/backup/default.nix

48 lines
1.2 KiB
Nix
Raw Normal View History

2023-07-30 19:41:51 +02:00
{ config, pkgs, ... }:
{
2023-11-16 13:29:18 +01:00
age.secrets."borg/passphrase" = {
file = ../../../../secrets/thinkpad/borg/passphrase.age;
2023-12-01 15:07:47 +01:00
owner = "rouven";
2023-11-16 13:29:18 +01:00
};
2023-07-30 19:41:51 +02:00
environment.systemPackages = [ pkgs.borgbackup ];
services.borgmatic = {
enable = true;
settings = {
2023-10-15 16:30:40 +02:00
source_directories = [
"/var/lib"
"/var/log"
"/nix/persist"
"/home"
"/etc/secureboot"
];
2023-07-30 19:41:51 +02:00
2023-10-15 16:30:40 +02:00
repositories = [
{
label = "nuc";
path = "ssh://root@192.168.42.2/mnt/backup/thinkpad";
2023-10-15 16:30:40 +02:00
}
];
exclude_patterns = [
"/home/*/.cache"
"/home/*/.zcomp*"
"/home/*/.zcomp*"
"/home/*/.gradle*"
"/home/*/.java*"
"/home/*/.m2*"
"/home/*/.wine*"
"/home/*/.mypy_cache*"
"/home/*/.local/share"
2023-12-29 19:47:57 +01:00
# contains very big files that don't need to clutter up the backup
# if I ever happen to have important data in virtual machines, this can be reconsidered
"/var/lib/libvirt"
2023-10-15 16:30:40 +02:00
];
2023-11-16 13:29:18 +01:00
encryption_passcommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets."borg/passphrase".path}";
2023-10-28 15:51:25 +02:00
compression = "lz4";
keep_daily = 7;
keep_weekly = 4;
keep_monthly = 12;
keep_yearly = 3;
2023-07-30 19:41:51 +02:00
};
};
}