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 = [
|
|
|
|
{
|
2021-10-21 14:51:44 +01:00
|
|
|
imports = users_mod ++ roles_mod ++ [(nixos-unstable + "/nixos/modules/services/misc/prowlarr.nix")];
|
|
|
|
|
|
|
|
nixpkgs = {
|
|
|
|
pkgs = pkgs;
|
|
|
|
overlays = [ (self: super: {prowlarr = pkgs.unstable.prowlarr;}) ];
|
|
|
|
};
|
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-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
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|