{ description = "Nix Config"; inputs = { # Nixpkgs nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # NUR nur.url = "github:nix-community/NUR"; # Home manager home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; # Nixvim nixvim = { url = "github:nix-community/nixvim/nixos-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; # Arion for docker arion = { url = "github:hercules-ci/arion/236f9dd82d6ef6a2d9987c7a7df3e75f1bc8b318"; }; # nix-bitcoin nix-bitcoin = { url = "github:fort-nix/nix-bitcoin/nixos-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; # Nix colors nix-colors.url = "github:misterio77/nix-colors"; # Declarative partitioning and formatting disko = { url = "github:nix-community/disko/v1.6.1"; inputs.nixpkgs.follows = "nixpkgs"; }; impermanence = { url = "github:nix-community/impermanence"; }; # Secrets management sops-nix = { url = "github:mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-secrets = { url = "git+ssh://git@git.bitlab21.com/sam/nix-secrets.git"; inputs = { }; }; }; outputs = { self , nixpkgs , home-manager , ... } @ inputs: let inherit (self) outputs; systems = [ "x86_64-linux" ]; forAllSystems = nixpkgs.lib.genAttrs systems; inherit (nixpkgs) lib; configVars = import ./vars { inherit inputs lib; }; specialArgs = { inherit inputs outputs configVars ; }; in { packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); #formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); overlays = import ./overlays { inherit inputs; }; nixosModules = import ./modules/nixos; homeManagerModules = import ./modules/home-manager; # System level configs nixosConfigurations = { nixdev = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./hosts/nixdev home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = specialArgs; } ]; }; fileserver = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./hosts/fileserver home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = specialArgs; } ]; }; bootstrap = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./hosts/bootstrap ]; }; sparky = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./hosts/sparky home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = specialArgs; } ]; }; semita = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./hosts/semita home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = specialArgs; } ]; }; nebula = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./hosts/nebula home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = specialArgs; } ]; }; citadel = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./hosts/citadel home-manager.nixosModules.home-manager { home-manager.extraSpecialArgs = specialArgs; } ]; }; }; }; }