48 lines
1.3 KiB
Nix
48 lines
1.3 KiB
Nix
{
|
|
description = "nix los hier";
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
|
agenix = {
|
|
url = "github:ryantm/agenix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
outputs =
|
|
{
|
|
nixpkgs,
|
|
agenix,
|
|
disko,
|
|
...
|
|
}@inputs:
|
|
let
|
|
uncurry = f: args: f (builtins.elemAt args 0) (builtins.elemAt args 1) (builtins.elemAt args 2);
|
|
mkSystem = host: sys: state: {
|
|
"${host}" = nixpkgs.lib.nixosSystem {
|
|
system = sys;
|
|
specialArgs = inputs;
|
|
modules = [
|
|
(./hosts + "/${host}")
|
|
{ system.stateVersion = state; }
|
|
agenix.nixosModules.default
|
|
disko.nixosModules.disko
|
|
{ environment.systemPackages = [ agenix.packages.${sys}.default ]; }
|
|
];
|
|
};
|
|
};
|
|
in
|
|
{
|
|
nixosConfigurations = nixpkgs.lib.mergeAttrsList (
|
|
nixpkgs.lib.forEach [
|
|
[ "APPA" "x86_64-linux" "23.05" ]
|
|
[ "MOMO" "x86_64-linux" "23.05" ]
|
|
[ "PABU" "x86_64-linux" "24.05" ]
|
|
] (uncurry mkSystem)
|
|
);
|
|
};
|
|
}
|