{ description = "Personal compute devices"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; microvm = { url = "github:astro/microvm.nix?tag=v0.5.0"; inputs.nixpkgs.follows = "nixpkgs"; }; disko = { url = "github:nix-community/disko?tag=v1.12.0"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager?ref=release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; impermanence = { url = "github:nix-community/impermanence"; }; }; outputs = { self, nixpkgs, disko, impermanence, microvm, home-manager, ... }@inputs: { nixosConfigurations = { pc-demo1 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ { config._module.args = { flake = self; }; } disko.nixosModules.disko microvm.nixosModules.host impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager ./computer/pc-demo1/default.nix ./options.nix ./os/default.nix ./software/default.nix ./users/default.nix { home-manager = { useGlobalPkgs = true; useUserPackages = true; }; } ]; }; pc-demo2 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ { config._module.args = { flake = self; }; } disko.nixosModules.disko impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager ./computer/pc-demo2/default.nix ./options.nix ./os/default.nix ./software/default.nix ./users/default.nix { home-manager = { useGlobalPkgs = true; useUserPackages = true; }; } ]; }; k8s = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ { config._module.args = { flake = self; }; } microvm.nixosModules.microvm ./virtualmachines/k8s/default.nix ./options.nix ./users/default.nix ]; }; }; }; }