nox/systems/default.nix

41 lines
1.1 KiB
Nix

{ flake }:
let
nixpkgs = flake.inputs.nixpkgs;
# utility function to create a new nixos configuration
# call like `mkSystem "x86_64-linux" "<hostname>.eh22.intern"`
mkSystem =
systemType: name:
nixpkgs.lib.nixosSystem {
system = systemType;
specialArgs = flake.inputs;
modules = [
flake.inputs.home-manager.nixosModules.home-manager
flake.inputs.sops-nix.nixosModules.default
flake.inputs.lix.nixosModules.lixFromNixpkgs
../modules/base_system.nix
../modules/user_account.nix
#../modules/mail_relay.nix
./${name}.nix
(
let
fqdnParts = nixpkgs.lib.strings.splitString "." name;
in
{
networking.hostName = builtins.head fqdnParts;
networking.domain =
if ((builtins.length fqdnParts) > 1) then
(builtins.concatStringsSep "." (builtins.tail fqdnParts))
else
null;
}
)
];
};
in
{
# exposed hosts at myroot
"test.eh22.intern" = mkSystem "x86_64-linux" "test.eh22.intern";
}