+ services.zrepl = {
+ enable = true;
+ config = let
+ redis_dump = pkgs.writeScript "redis-dump" ''
+ #! ${pkgs.stdenv.shell}
+ ${pkgs.redis}/bin/redis-cli bgsave
+ '';
+ in ''
+ jobs:
+ - type: push
+ # must not change
+ name: "backup-to-dilion"
+ filesystems:
+ "zpool/root": true
+ "zpool/root/etc": true
+ "zpool/root/var<": true
+ connect:
+ type: ssh+stdinserver
+ host: dilion.immae.eu
+ user: backup
+ port: 22
+ identity_file: ${config.secrets.fullPaths."zrepl_backup/identity"}
+ snapshotting:
+ type: periodic
+ prefix: zrepl_
+ interval: 15m
+ hooks:
+ - type: mysql-lock-tables
+ dsn: "${config.myEnv.zrepl_backup.mysql.user}:${config.myEnv.zrepl_backup.mysql.password}@tcp(localhost)/"
+ filesystems:
+ "zpool/root/var": true
+ - type: command
+ path: ${redis_dump}
+ err_is_fatal: false
+ filesystems:
+ "zpool/root/var": true
+ send:
+ encrypted: true
+ pruning:
+ keep_sender:
+ - type: not_replicated
+ - type: regex
+ regex: "^manual_.*"
+ - type: grid
+ grid: 1x1h(keep=all) | 24x1h | 7x1d | 4x7d | 6x30d
+ regex: "^zrepl_.*"
+ keep_receiver:
+ - type: regex
+ regex: "^manual_.*"
+ - type: grid
+ grid: 1x1h(keep=all) | 24x1h | 7x1d | 4x7d | 6x30d
+ regex: "^zrepl_.*"
+ '';
+ };