inputs@{ self, ... }: { system ? "x86_64-linux", hostname, }: inputs.nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs system hostname; }; modules = [ "${self}/modules" "${self}/hosts/${hostname}" ./private-wireguard.nix { networking.hostName = hostname; nixpkgs = { config.allowUnfree = true; overlays = [ inputs.nur.overlay inputs.rust.overlays.default (final: prev: { tools = import "${self}/tools" { pkgs = prev; }; }) ]; }; # Add each input as a registry nix.registry = inputs.nixpkgs.lib.mapAttrs' (n: v: inputs.nixpkgs.lib.nameValuePair (n) ({ flake = v; })) inputs; } ]; }