+ fileSystems."/var/lib/pub/immae/devtools" = {
+ device = "/run/current-system/sw/bin/bindfs#/var/lib/ftp/devtools.immae.eu/";
+ fsType = "fuse";
+ options = [ "force-user=pub" "create-for-user=wwwrun" "create-for-group=wwwrun" ];
+ };
+ environment.systemPackages = [ pkgs.bindfs ];
+
+ 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_.*"
+ '';
+ };