101 lines
2.3 KiB
Nix
Executable file
101 lines
2.3 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";
|
|
};
|
|
|
|
simple-nixos-mailserver = {
|
|
# until the merge is accepted this will have to do
|
|
# url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
|
|
url = "gitlab:yu-re-ka/nixos-mailserver";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
microvm = {
|
|
url = "github:astro/microvm.nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
...
|
|
} @ inputs: let
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs {inherit system;};
|
|
in {
|
|
formatter.${system} = pkgs.alejandra;
|
|
|
|
nixosConfigurations = let
|
|
modules = [
|
|
inputs.disko.nixosModules.default
|
|
inputs.agenix.nixosModules.default
|
|
inputs.home-manager.nixosModules.default
|
|
inputs.simple-nixos-mailserver.nixosModule
|
|
inputs.microvm.nixosModules.host
|
|
];
|
|
in {
|
|
server-vm = nixpkgs.lib.nixosSystem {
|
|
specialArgs = {inherit inputs;};
|
|
modules =
|
|
[
|
|
(import ./disko.nix {
|
|
lib = pkgs.lib;
|
|
swap-size = "16G";
|
|
root-disk = "/dev/vda";
|
|
raid-disks = [
|
|
"vdb"
|
|
"vdc"
|
|
"vdd"
|
|
];
|
|
})
|
|
|
|
./vm-hardware-configuration.nix
|
|
./configuration.nix
|
|
]
|
|
++ modules;
|
|
};
|
|
|
|
server = nixpkgs.lib.nixosSystem {
|
|
specialArgs = {inherit inputs;};
|
|
modules =
|
|
[
|
|
(import ./disko.nix {
|
|
lib = pkgs.lib;
|
|
swap-size = "128G";
|
|
root-disk = "/dev/nvme0n1";
|
|
raid-disks = [
|
|
"sda"
|
|
"sdb"
|
|
"sdc"
|
|
"sdd"
|
|
];
|
|
})
|
|
|
|
./modules/networking-metal.nix
|
|
./hardware-configuration.nix
|
|
./configuration.nix
|
|
]
|
|
++ modules;
|
|
};
|
|
};
|
|
};
|
|
}
|