10 inherit (config.users) users;
13 lib.mapAttrs (_n: v: lib.recursiveUpdate v conf) {
16 targetHost = "aubergine.local";
19 target = "backup@${targetHost}:off2/julm/backup/pumpkin";
25 "--no-privilege-elevation"
26 "--preserve-properties"
27 "--preserve-recordsize"
34 "pumpkin/root/var/cache"
36 "pumpkin/root/var/log"
38 "pumpkin/root/home/julm/.cache"
40 "pumpkin/root/home/julm/games"
42 "${pkgs.writeText "ssh-config" ''
44 Ciphers aes128-gcm@openssh.com
46 StrictHostKeyChecking yes
47 UserKnownHostsFile ${pkgs.writeText "known_hosts" ''
48 ${targetHost} ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN/cT/L3dF7uoR3s7NB59NiKjuk35I6x+7MK5zhwOy6k
56 networking.nftables.ruleset = lib.mkAfter ''
59 skuid @nixos_syncoid_uids \
62 comment "syncoid: SSH"
66 systemd.tmpfiles.rules = [
67 "z /dev/zfs 0660 - ${config.users.groups."disk".name} -"
69 # ExplanationNote: give access to /var/run/avahi-daemon/socket
70 # Using /var/run is not working due to RootDirectoryStartOnly=true
71 systemd.services.syncoid-pumpkin-root.serviceConfig.BindReadOnlyPaths = [ "/var/run" ];
72 systemd.services.syncoid-pumpkin-root.serviceConfig.RootDirectoryStartOnly = lib.mkForce false;
73 systemd.services.syncoid-pumpkin-root.serviceConfig.ExecStartPost =
74 pkgs.writeShellScript "zfs-fix-bookmarks" ''
76 for s in $(zfs list -Hrpt snapshot -o name pumpkin); do
77 zfs bookmark "$s" "''${s//@/#}" || true
82 interval = "*-*-* *:05:00";
84 sshKey = "ssh.key:${syncoid/ssh.key.cred}";
89 #"--no-privilege-elevation"
91 #"--preserve-recordsize"
92 #"--preserve-properties"
95 serviceConfig.Group = config.users.groups."disk".name;
97 commands = { } // pumpkin2off2 { };