{ description = "Nix Config"; inputs = { # Nixpkgs nixpkgs.url = "github:nixos/nixpkgs/release-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}); overlays = import ./overlays {inherit inputs;}; nixosModules = import ./modules/nixos; homeManagerModules = import ./modules/home-manager; # System level configs nixosConfigurations = { 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; } ]; }; merlin = 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; } ]; }; }; }; }