server-configuration/flake.nix
2025-03-03 12:32:29 +01:00

81 lines
1.8 KiB
Nix
Executable file

{
description = "Configuration for NAS Server";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs {inherit system;};
in {
formatter.${system} = pkgs.alejandra;
nixosConfigurations = {
server-vm = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
inputs.disko.nixosModules.default
inputs.agenix.nixosModules.default
(import ./disko.nix {
lib = pkgs.lib;
swap-size = "16G";
root-disk = "/dev/vda";
raid-disks = [
"vdb"
"vdc"
"vdd"
];
})
inputs.home-manager.nixosModules.default
./vm-hardware-configuration.nix
./configuration.nix
];
};
server = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
inputs.disko.nixosModules.default
inputs.agenix.nixosModules.default
(import ./disko.nix {
lib = pkgs.lib;
swap-size = "128G";
root-disk = "/dev/nvme0n1";
raid-disks = [
# "sda"
# "sdb"
# "sdc"
# "sdd"
];
})
inputs.home-manager.nixosModules.default
./hardware-configuration.nix
./configuration.nix
];
};
};
};
}