nixos-configs/flake.nix

60 lines
1.4 KiB
Nix
Raw Normal View History

{
inputs = {
2024-11-24 15:16:45 +01:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
2025-01-05 17:46:32 +01:00
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
2024-11-24 18:10:44 +01:00
home-manager = {
2024-11-24 15:16:45 +01:00
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-11-24 18:10:44 +01:00
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
};
2024-10-27 12:33:35 +01:00
outputs =
{
2024-11-24 18:10:44 +01:00
self,
2024-10-27 12:33:35 +01:00
nixpkgs,
home-manager,
lix-module,
2025-01-05 17:46:32 +01:00
nixos-hardware,
2024-10-27 12:33:35 +01:00
}:
let
devices = {
vinzenz-lpt2 = "x86_64-linux";
vinzenz-pc2 = "x86_64-linux";
hetzner-vpn2 = "aarch64-linux";
forgejo-runner-1 = "aarch64-linux";
};
forDevice = f: nixpkgs.lib.mapAttrs f devices;
in
2024-10-27 12:33:35 +01:00
{
nixosConfigurations = forDevice (
device: system:
nixpkgs.lib.nixosSystem {
inherit system;
modules = [
lix-module.nixosModules.default
home-manager.nixosModules.home-manager
{ networking.hostName = device; }
./common
./hosts/${device}/hardware.nix
./hosts/${device}/imports.nix
./hosts/${device}/configuration.nix
];
}
);
2024-10-27 12:33:35 +01:00
formatter = {
x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.nixfmt-rfc-style;
2024-10-26 14:59:00 +02:00
};
};
}