52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
{ config, pkgs, ... }:
|
|
{
|
|
# Add ZFS and NFS support to the initramfs so it can be mounted at boot.
|
|
boot.supportedFilesystems = [ "zfs" "nfs" ];
|
|
|
|
# boot.zfs.enableUnstable = true;
|
|
boot.zfs.forceImportRoot = false;
|
|
boot.zfs.extraPools = [ "DATA" ];
|
|
services.zfs.autoScrub.enable = true;
|
|
|
|
# Enable and configure zrepl service
|
|
environment.systemPackages = [ pkgs.zrepl ];
|
|
services.zrepl = {
|
|
enable = true;
|
|
settings = {
|
|
global = {
|
|
logging = [{
|
|
# use syslog instead of stdout because it makes journald happy
|
|
type = "syslog";
|
|
format = "human";
|
|
level = "info";
|
|
}];
|
|
};
|
|
|
|
jobs = [{
|
|
type = "source";
|
|
name = "pullsource";
|
|
send = {
|
|
encrypted = true;
|
|
};
|
|
serve = {
|
|
type = "stdinserver";
|
|
client_identities = [ "siredward" ];
|
|
};
|
|
filesystems = {
|
|
"DATA/service/config<" = true;
|
|
"DATA/service/data<" = true;
|
|
"DATA/storage<" = true;
|
|
};
|
|
snapshotting = {
|
|
type = "periodic";
|
|
prefix = "NN_";
|
|
interval = "2h";
|
|
};
|
|
}];
|
|
};
|
|
};
|
|
|
|
# Enable the NFS server, which is managed by this module.
|
|
services.nfs.server.enable = true;
|
|
}
|