{lib, ...}: { flake.nixosModules.tailscaleDesktop = {config, ...}: { services.tailscale = { enable = true; useRoutingFeatures = "client"; openFirewall = true; extraUpFlags = ["--accept-dns=false"]; }; networking.firewall = { enable = lib.mkDefault false; trustedInterfaces = ["tailscale0"]; allowedUDPPorts = [config.services.tailscale.port]; }; }; flake.nixosModules.nasClient = {pkgs, ...}: { boot.supportedFilesystems = ["nfs"]; environment.systemPackages = with pkgs; [nfs-utils]; fileSystems."/mnt/data" = { device = "100.64.0.2:/tank/data"; fsType = "nfs4"; options = [ "x-systemd.automount" "noauto" "nofail" "_netdev" "hard" "noatime" "x-systemd.mount-timeout=10" "x-systemd.idle-timeout=600" ]; }; fileSystems."/mnt/backups" = { device = "100.64.0.2:/tank/backups"; fsType = "nfs4"; options = [ "x-systemd.automount" "noauto" "nofail" "_netdev" "hard" "noatime" "x-systemd.mount-timeout=10" "x-systemd.idle-timeout=600" ]; }; fileSystems."/mnt/media" = { device = "100.64.0.2:/tank/media"; fsType = "nfs4"; options = [ "x-systemd.automount" "noauto" "nofail" "_netdev" "hard" "noatime" "x-systemd.mount-timeout=10" "x-systemd.idle-timeout=600" ]; }; }; }