{ config, pkgs, ... }: let host = "zh4250@zh4250.rsync.net"; in { age.secrets.borgpassword.file = ../../secrets/borgpassword.age; services.borgbackup = { jobs.backup = { paths = ["/home"]; exclude = [ "/home/buffet/.mozilla" ]; repo = "${host}:${config.networking.hostName}"; encryption = { mode = "repokey"; passCommand = "cat ${config.age.secrets.borgpassword.path}"; }; startAt = "daily"; persistentTimer = true; environment.BORG_RSH = "ssh -i /home/buffet/.ssh/id_borg_ed25519"; extraArgs = "--remote-path borg1"; prune.keep = { within = "1d"; daily = 7; weekly = 4; monthly = -1; }; }; }; systemd.services = { borgbackup-job-backup = { after = ["ensure-online.service"]; requires = ["ensure-online.service"]; }; ensure-online = { description = "waiting for Network"; after = ["network-online.target"]; requires = ["network-online.target"]; serviceConfig = { ExecStart = "${pkgs.networkmanager}/bin/nm-online -q --timeout=300"; Type = "oneshot"; }; }; }; }