nixos-demo/flake.nix

102 lines
2.5 KiB
Nix

{
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
];
};
};
};
}