{ config, pkgs, lib, ... }: { # https://openzfs.github.io/openzfs-docs/Getting%20Started/NixOS/index.html # https://nixos.org/manual/nixos/stable/#sec-linux-zfs # https://nixos.wiki/wiki/ZFS # https://search.nixos.org/options?query=services.zfs boot.kernelPackages = lib.mkForce pkgs.zfs.latestCompatibleLinuxPackages; boot.supportedFilesystems = [ "zfs" ]; boot.zfs.forceImportRoot = false; # must be set per host # head -c4 /dev/urandom | od -A none -t x4 # consider the one automatically generated by systemd: # head -c 8 /etc/machine-id #networking.hostId = "12345678"; services.zfs.autoSnapshot.enable = true; # simply runs zfstools # default args, can be overriden per-dataset services.zfs.autoSnapshot.frequent = 2; # 15 min services.zfs.autoSnapshot.hourly = 3; services.zfs.autoSnapshot.daily = 4; services.zfs.autoSnapshot.weekly = 3; services.zfs.autoSnapshot.monthly = 5; #services.zfs.autoReplication.enable #services.zfs.autoScrub.enable = true; #services.zfs.trim.enable = true; # the `sharenfs` property generates /etc/exports.d/zfs.exports file, automatically processed by NFS # # zfs set sharenfs="-maproot=0:0 -network=192.168.1.0/24" Reidun # # zfs set sharenfs="ro=192.168.1.0/24,all_squash,anonuid=70,anongid=70" Meconium # # zfs set sharenfs="rw=192.168.1.0/24" Meconium services.nfs.server.enable = lib.mkDefault true; }