{ description = "NixOS in MicroVMs"; inputs = { nixos.url = "github:nixos/nixpkgs/nixos-23.05"; microvm.url = "github:astro/microvm.nix"; microvm.inputs.nixpkgs.follows = "nixos"; }; outputs = inputs @ { self, nixos, microvm, }: let system = (import ./lib/consts.nix).system; overlays = [ # Access helpful variables from nixpkgs (_: prev: prev // {inherit inputs overlays;}) # Add our custom library functions (final: prev: prev // {lib = prev.lib // import ./lib final;}) ]; pkgs = import nixos {inherit system overlays;}; in { packages.${system} = { my-microvm = self.nixosConfigurations.my-microvm.config.microvm.declaredRunner; }; nixosConfigurations = { my-microvm = nixos.lib.nixosSystem { inherit (pkgs) system; inherit pkgs; specialArgs = {inherit (pkgs) lib;}; modules = [ {nixpkgs.overlays = pkgs.overlays;} microvm.nixosModules.microvm ./modules/common.nix { networking.hostName = "test"; users.users.root.password = "1234"; } ]; }; }; }; }