{ inputs = { # Core Nixpkgs nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; # Disk‑partitioning helper disko.url = "github:nix-community/disko"; disko.inputs.nixpkgs.follows = "nixpkgs"; # Secrets handling sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; # Power savings autoaspm.url = "github:notthebee/AutoASPM"; autoaspm.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, disko, sops-nix, ... }@inputs: let # System definition system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; # Helper: collect every *.nix file inside ./docker as a list dockerModules = let dir = ./docker; entries = builtins.readDir dir; names = builtins.attrNames entries; nixNames = builtins.filter (n: builtins.match ".*\\.nix" n != null) names; in map (name: "${dir}/${name}") nixNames; in { nixosConfigurations = { numbus-server = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; }; modules = [ # Disk‑partitioning helper disko.nixosModules.disko # Secrets handling sops-nix.nixosModules.sops # Power savings inputs.autoaspm.nixosModules.autoaspm # Core host configuration ./configuration.nix ./hardware-configuration.nix # Docker services – automatically added from ./docker/*.nix ] ++ dockerModules; }; }; }; }