nixos/vaultwarden: Add backup

This commit is contained in:
2023-08-06 16:24:36 +01:00
parent 690dd6e70e
commit 6439a32c6e
6 changed files with 129 additions and 2 deletions

View File

@@ -36,7 +36,11 @@ in
secrets = {
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFP2mF50ENpnJnr+VTnG9P+JFPjgwvoIxCLyJPzXRpVy";
files."vaultwarden.env" = {};
files = {
"vaultwarden/config.env" = {};
"vaultwarden/backup-pass.txt" = {};
"vaultwarden/backup-ssh.key" = {};
};
};
firewall = {
@@ -57,6 +61,10 @@ in
network.networks."80-container-host0" = networkdAssignment "host0" assignments.internal;
};
programs.ssh.knownHostsFiles = [
lib.my.sshKeyFiles.rsyncNet
];
services = {
vaultwarden = {
enable = true;
@@ -86,7 +94,28 @@ in
PUSH_ENABLED = true;
};
environmentFile = config.age.secrets."vaultwarden.env".path;
environmentFile = config.age.secrets."vaultwarden/config.env".path;
};
borgbackup.jobs.vaultwarden = {
paths = [ vwData ];
repo = "zh2855@zh2855.rsync.net:borg/vaultwarden2";
doInit = true;
environment = {
BORG_REMOTE_PATH = "borg1";
BORG_RSH = ''ssh -i ${config.age.secrets."vaultwarden/backup-ssh.key".path}'';
};
compression = "zstd,10";
encryption = {
mode = "repokey";
passCommand = ''cat ${config.age.secrets."vaultwarden/backup-pass.txt".path}'';
};
prune.keep = {
within = "1d";
daily = 7;
weekly = 4;
monthly = -1;
};
};
};
}