{ description = "NixOS configurations for crossbox and anvil"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; strix-halo.url = "github:hellas-ai/nix-strix-halo"; strix-halo.inputs.llama-cpp.url = "github:ggerganov/llama.cpp/b7984"; comfyui-nix.url = "github:utensils/comfyui-nix"; }; outputs = { self, nixpkgs, strix-halo, comfyui-nix, ... }: let mkHost = { hostDir, extraModules ? [], overlays ? [], extraSpecialArgs ? {} }: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = extraSpecialArgs; modules = [ ./configuration.nix hostDir ({ ... }: { nixpkgs.overlays = overlays; }) ] ++ extraModules; }; in { nixosConfigurations.crossbox = mkHost { hostDir = ./hosts/crossbox; overlays = [ strix-halo.overlays.default comfyui-nix.overlays.default ]; extraModules = [ ./sdr.nix ./syncthing.nix comfyui-nix.nixosModules.default ]; extraSpecialArgs = { strix-halo-pkgs = strix-halo.packages.x86_64-linux; }; }; nixosConfigurations.anvil = mkHost { hostDir = ./hosts/anvil; extraModules = [ ./sdr.nix ./syncthing.nix ]; }; }; }