{ modulesPath, config, lib, ... }: with lib; let cfg = config.system.fileSystemLayouts; in { options.system.fileSystemLayouts = { mainDisk = mkOption { type = lib.types.path; example = literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5"; description = lib.mdDoc "Path to the main disk"; }; }; config = { fileSystems = { "/" = { device = "tmpfs"; fsType = "tmpfs"; options = ["defaults" "size=2G" "mode=755"]; }; "/nix" = { device = cfg.mainDisk; fsType = "btrfs"; options = ["subvol=nix" "compress-force=zstd"]; }; "/srv" = { device = cfg.mainDisk; fsType = "btrfs"; options = ["subvol=storage" "compress-force=zstd"]; }; "/boot" = { device = cfg.mainDisk; options = ["subvol=boot" "compress-force=zstd"]; }; "/etc/nixos" = { device = "/srv/nix-config"; options = ["bind"]; }; "/var/lib/acme" = { device = "/srv/acme"; options = ["bind"]; }; "/var/lib/matrix-conduit" = { device = "/srv/matrix-conduit"; options = ["bind"]; }; }; }; }