setup restic backups for genepi
This commit is contained in:
40
hosts/genepi/backup.nix
Normal file
40
hosts/genepi/backup.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
config,
|
||||
keys,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
storagebox-user = "u422292-sub1";
|
||||
storagebox-host = "${storagebox-user}.your-storagebox.de";
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.sshpass
|
||||
];
|
||||
|
||||
age.secrets.restic-genepi-storagebox-key.file = ../../secrets/restic-genepi-storagebox-key.age;
|
||||
age.secrets.restic-genepi-storagebox-password.file = ../../secrets/restic-genepi-storagebox-password.age;
|
||||
|
||||
programs.ssh.knownHosts = {
|
||||
"${storagebox-host}".publicKey = keys.hosts.storagebox;
|
||||
};
|
||||
|
||||
services.restic.backups = {
|
||||
storagebox-nightly = {
|
||||
initialize = true;
|
||||
paths = [
|
||||
"/persist"
|
||||
];
|
||||
passwordFile = config.age.secrets.restic-genepi-storagebox-key.path;
|
||||
repository = "sftp://${storagebox-user}@${storagebox-host}";
|
||||
extraOptions = [
|
||||
"sftp.command='${pkgs.sshpass}/bin/sshpass -f ${config.age.secrets.restic-genepi-storagebox-password.path} -- ssh ${storagebox-host} -l ${storagebox-user} -s sftp'"
|
||||
];
|
||||
timerConfig = {
|
||||
OnCalendar = "03:00";
|
||||
RandomizedDelaySec = "1h";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user