{ config, lib, pkgs, modulesPath, ... }: let directory = "/storage"; storage = "${directory}/storage"; in { boot.swraid.enable = true; boot.swraid.mdadmConf = '' ARRAY /dev/md0 metadata=1.2 name=fili:0 UUID=0796fee2:0d9f2908:24af61b0:1250fa0e ''; # todo: email notifications (through PROGRAM) fileSystems.storage = { mountPoint = "${storage}"; device = "/dev/md0"; fsType = "btrfs"; options = [ "compress=zstd" ]; }; # for vpn in containers fileSystems."/tmp/net_cls" = { device = "net_cls"; fsType = "cgroup"; options = [ "net_cls" ]; }; # don't allow execute permissions for "other" people # (not root user and not in storage group) # to effectively disallow people outside the storage group # to access /storage systemd.tmpfiles.rules = [ "d ${directory} 0777 root ${config.users.groups.storage.name}" ]; users.groups.storage = { name = "storage"; members = [ config.users.users.jana.name ]; }; networking.firewall.allowedTCPPorts = [ 2049 ]; }