Auto backup actualbudget to backblaze using restic

This commit is contained in:
SebastianStork 2024-09-19 00:16:03 +02:00
parent dd01651115
commit c7fb2a80f0
3 changed files with 36 additions and 2 deletions

View file

@ -0,0 +1,28 @@
{ 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
'';
})
];
}

View file

@ -15,6 +15,8 @@ let
configPath = pkgs.writeTextDir "tailscale-serve.json" serveConfig;
in
{
imports = [ ./backup.nix ];
virtualisation.oci-containers.containers = {
${serviceName} = {
image = "ghcr.io/actualbudget/actual-server:latest";