{ self, nixpkgs-unstable, ... }@inputs: let mkTree = inputs.tree-input.tree; metaTree = mkTree ((import ../treeConfig.nix { }) // { inherit inputs; }); tree = metaTree.impure; patchedInputs = inputs // { # set these to the correct versions from inputs nixpkgs = inputs.nixpkgs-unstable; home-manager = inputs.home-manager-unstable; }; defaultSpecialArgs = { tree = metaTree.impure; pureTree = metaTree.pure; inputs = patchedInputs; }; defaultModules = [ # NO_INLINE tree.profiles.base inputs.home-manager-unstable.nixosModules.home-manager inputs.gitlab_artifacts_sync.nixosModule inputs.nur.nixosModules.nur tree.modules.nixos.rclone-serve tree.modules.nixos.rclone-sync tree.modules.nixos.secrets ]; nixosUnstableSystem = nixpkgs-unstable.lib.nixosSystem; in { tablet = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./tablet/tablet.nix ./tablet/hardware.nix ]; }; rescue-x86_64 = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./rescue/rescue.nix ]; }; hetzner-vm = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./hetzner-vm/hetzner-vm.nix ]; }; storage = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./storage/storage.nix ]; }; vault = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./vault/vault.nix ]; }; buildbox = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./buildbox/buildbox.nix ]; }; # nix build .#nixosConfigurations.nixos-live-x86_64.config.system.build.isoImage nixos-live-x86_64 = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./nixos-live/nixos-live.nix ]; }; # nix --no-sandbox build .#nixosConfigurations.raspberry.config.system.build.sdImage raspberry = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "aarch64-linux"; modules = defaultModules ++ [ ./raspberry/raspberry.nix ]; }; }