mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-02-12 06:19:00 +00:00
hosts/ni/services/backup: refactor code
This commit is contained in:
parent
486153b2e4
commit
9577f5a4f7
@ -5,7 +5,7 @@ let
|
|||||||
hostCfg = config.hosts.ni;
|
hostCfg = config.hosts.ni;
|
||||||
cfg = hostCfg.services.backup;
|
cfg = hostCfg.services.backup;
|
||||||
|
|
||||||
borgJobCommonSetting = { patterns ? [ ], passCommand }: {
|
borgJobCommonSetting = { patterns ? [ ], passCommand }@args: args // {
|
||||||
compression = "zstd,12";
|
compression = "zstd,12";
|
||||||
dateFormat = "+%F-%H-%M-%S-%z";
|
dateFormat = "+%F-%H-%M-%S-%z";
|
||||||
doInit = false;
|
doInit = false;
|
||||||
@ -66,58 +66,47 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
services.borgbackup.jobs = {
|
services.borgbackup.jobs = {
|
||||||
local-archive = borgJobCommonSetting
|
local-archive = borgJobCommonSetting {
|
||||||
{
|
patterns = with config.sops; [
|
||||||
patterns = with config.sops; [
|
secrets."${pathPrefix}/patterns/home".path
|
||||||
secrets."${pathPrefix}/patterns/home".path
|
secrets."${pathPrefix}/patterns/root".path
|
||||||
secrets."${pathPrefix}/patterns/etc".path
|
secrets."${pathPrefix}/patterns/keys".path
|
||||||
secrets."${pathPrefix}/patterns/keys".path
|
];
|
||||||
];
|
passCommand = "cat ${config.sops.secrets."${pathPrefix}/repos/archive/password".path}";
|
||||||
passCommand = "cat ${config.sops.secrets."${pathPrefix}/repos/archive/password".path}";
|
|
||||||
} // {
|
|
||||||
removableDevice = true;
|
removableDevice = true;
|
||||||
repo = "/mnt/archives/backups";
|
repo = "/mnt/archives/backups";
|
||||||
startAt = "04:30";
|
startAt = "04:30";
|
||||||
};
|
};
|
||||||
|
|
||||||
local-external-drive = borgJobCommonSetting
|
local-external-drive = borgJobCommonSetting {
|
||||||
{
|
patterns = with config.sops; [
|
||||||
patterns = with config.sops; [
|
secrets."${pathPrefix}/patterns/home".path
|
||||||
secrets."${pathPrefix}/patterns/home".path
|
secrets."${pathPrefix}/patterns/root".path
|
||||||
secrets."${pathPrefix}/patterns/etc".path
|
secrets."${pathPrefix}/patterns/keys".path
|
||||||
secrets."${pathPrefix}/patterns/keys".path
|
];
|
||||||
];
|
passCommand = "cat ${config.sops.secrets."${pathPrefix}/repos/external-drive/password".path}";
|
||||||
passCommand = "cat ${config.sops.secrets."${pathPrefix}/repos/external-drive/password".path}";
|
|
||||||
} // {
|
|
||||||
removableDevice = true;
|
removableDevice = true;
|
||||||
repo = "/mnt/external-storage/backups";
|
repo = "/mnt/external-storage/backups";
|
||||||
startAt = "04:30";
|
startAt = "04:30";
|
||||||
};
|
};
|
||||||
|
|
||||||
#remote-backup-hetzner-box = borgJobCommonSetting
|
remote-backup-hetzner-box = borgJobCommonSetting {
|
||||||
# {
|
patterns = with config.sops; [
|
||||||
# patterns = with config.sops; [
|
secrets."${pathPrefix}/patterns/home".path
|
||||||
# secrets."${pathPrefix}/patterns/remote-backup".path
|
secrets."${pathPrefix}/patterns/root".path
|
||||||
# ];
|
secrets."${pathPrefix}/patterns/keys".path
|
||||||
# passCommand = "cat ${config.sops.secrets."${pathPrefix}/repos/hetzner-box/password".path}";
|
];
|
||||||
# } // {
|
passCommand = "cat ${config.sops.secrets."${pathPrefix}/repos/hetzner-box/password".path}";
|
||||||
# doInit = true;
|
doInit = true;
|
||||||
# repo = "ssh://${hetzner-boxes-user}@${hetzner-boxes-server}:23/./borg/desktop/ni";
|
repo = "ssh://${hetzner-boxes-user}@${hetzner-boxes-server}:23/./borg/desktop/ni";
|
||||||
# startAt = "04:30";
|
startAt = "04:30";
|
||||||
# environment.BORG_RSH = "ssh -i ${config.sops.secrets."${pathPrefix}/ssh-key".path}";
|
environment.BORG_RSH = "ssh -i ${config.sops.secrets."${pathPrefix}/ssh-key".path}";
|
||||||
#};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.ssh.extraConfig = ''
|
programs.ssh.extraConfig = ''
|
||||||
Host ${hetzner-boxes-server}
|
Host ${hetzner-boxes-server}
|
||||||
IdentityFile ${config.sops.secrets."${pathPrefix}/ssh-key".path}
|
IdentityFile ${config.sops.secrets."${pathPrefix}/ssh-key".path}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
services.btrfs.autoScrub = {
|
|
||||||
enable = true;
|
|
||||||
fileSystems = [
|
|
||||||
"/mnt/archives"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user