nixos-config/hosts/stratus/containers/docker/actualbudget/backup.nix

28 lines
923 B
Nix

{ pkgs, lib, ... }:
let
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
in
{
myConfig.resticBackup.${serviceName} = {
enable = true;
healthchecks.enable = true;
extraConfig = {
backupPrepareCommand = "${lib.getExe' pkgs.systemd "systemctl"} stop docker-actualbudget.service";
backupCleanupCommand = "${lib.getExe' pkgs.systemd "systemctl"} start docker-actualbudget.service docker-tailscale-actualbudget.service";
paths = [ "/data/${serviceName}" ];
};
};
environment.systemPackages = [
(pkgs.writeShellApplication {
name = "${serviceName}-restore";
text = ''
systemctl stop docker-actualbudget.service
rm -rf /data/${serviceName}
restic-${serviceName} restore --target / latest
systemctl start docker-actualbudget.service docker-tailscale-actualbudget.service
'';
})
];
}