{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; flake-utils.url = "github:numtide/flake-utils"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; microvm = { url = "github:astro/microvm.nix/v0.4.0"; inputs = { nixpkgs.follows = "nixpkgs"; flake-utils.follows = "flake-utils"; }; }; tmux-yank = { url = "github:tmux-plugins/tmux-yank"; flake = false; }; }; outputs = inputs@{ self , flake-utils , microvm , nixpkgs , sops-nix , ... }: { nixosConfigurations = { cirrus = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ sops-nix.nixosModules.sops ./hosts/cirrus ./modules/basic-tools ./modules/server ]; }; dishwasher = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ sops-nix.nixosModules.sops microvm.nixosModules.host ./hosts/dishwasher ./modules/basic-tools ./modules/binary-caches.nix ./modules/virtualization.nix ./modules/server ]; }; nextcloud = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ sops-nix.nixosModules.sops microvm.nixosModules.microvm ./microvms/nextcloud ./modules/server ]; }; music = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ sops-nix.nixosModules.sops microvm.nixosModules.microvm ./microvms/music ./modules/server ]; }; news = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ sops-nix.nixosModules.sops microvm.nixosModules.microvm ./microvms/news ./modules/server ]; }; noctilucent = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ sops-nix.nixosModules.sops ./hosts/noctilucent ./modules/server ./modules/basic-tools ./modules/binary-caches.nix ]; }; }; hydraJobs = let get-toplevel = (host: nixSystem: nixSystem.config.microvm.declaredRunner or nixSystem.config.system.build.toplevel); in nixpkgs.lib.mapAttrs get-toplevel self.nixosConfigurations; }; }