nixos/lib/host.nix

44 lines
1.0 KiB
Nix
Raw Normal View History

2021-10-13 13:29:07 +01:00
{ pkgs, nixpkgs, nixos-unstable, unstable, home-manager, user, ... }:
2021-10-06 18:17:06 +01:00
{
2021-10-13 13:29:07 +01:00
mkHost = { name, users, roles ? [] }:
2021-10-06 18:17:06 +01:00
let
system = "x86_64-linux";
2021-10-13 13:29:07 +01:00
mkRole = role : import (../roles + "/${role}.nix");
2021-10-06 18:17:06 +01:00
2021-10-14 13:07:05 +01:00
users_mod= (map (u: user.mkUser {name = u.user; roles = u.roles; }) users);
2021-10-13 13:29:07 +01:00
roles_mod = (map (r: mkRole r) roles);
2021-10-06 18:17:06 +01:00
in nixpkgs.lib.nixosSystem {
inherit system;
2021-10-13 13:29:07 +01:00
2021-10-06 18:17:06 +01:00
modules = [
{
imports = users_mod ++ roles_mod;
nixpkgs = {
pkgs = pkgs;
};
2021-10-13 13:29:07 +01:00
2021-10-06 18:17:06 +01:00
nix.nixPath = [
"nixpkgs=${nixpkgs}"
"unstable=${nixos-unstable}"
];
nix.registry.nixpkgs.flake = nixpkgs;
nix.registry.unstable.flake = nixos-unstable;
2021-10-14 12:53:44 +01:00
users.users.root = {
shell = pkgs.zsh;
};
home-manager.users.root.imports = [ ../roles/home/common.nix ];
2021-12-18 21:00:32 +00:00
home-manager.extraSpecialArgs.unstable = unstable;
2021-10-06 18:17:06 +01:00
}
home-manager.nixosModules.home-manager
2021-10-13 13:29:07 +01:00
../roles/common.nix
../roles/acme.nix
../hosts/${name}/default.nix
2021-10-06 18:17:06 +01:00
];
};
}