54 lines
1.7 KiB
Nix
54 lines
1.7 KiB
Nix
{ ... }:
|
|
{
|
|
_class = "clan.service";
|
|
manifest.name = "clan-core/admin";
|
|
manifest.description = "Convenient Administration for the Clan App";
|
|
manifest.categories = [ "Utility" ];
|
|
|
|
roles.default = {
|
|
interface =
|
|
{ lib, ... }:
|
|
{
|
|
|
|
options = {
|
|
allowedKeys = lib.mkOption {
|
|
default = { };
|
|
type = lib.types.attrsOf lib.types.str;
|
|
description = "The allowed public keys for ssh access to the admin user";
|
|
example = {
|
|
"key_1" = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...";
|
|
};
|
|
};
|
|
|
|
rsaHostKey.enable = lib.mkEnableOption "Generate RSA host key";
|
|
|
|
# TODO: allow per-server domains that we than collect in the inventory
|
|
#certicficateDomains = lib.mkOption {
|
|
# type = lib.types.listOf lib.types.str;
|
|
# default = [ ];
|
|
# example = [ "git.mydomain.com" ];
|
|
# description = "List of domains to include in the certificate. This option will not prepend the machine name in front of each domain.";
|
|
#};
|
|
|
|
certificateSearchDomains = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
default = [ ];
|
|
example = [ "mydomain.com" ];
|
|
description = ''
|
|
List of domains to include in the certificate.
|
|
This option will prepend the machine name in front of each domain before adding it to the certificate.
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# We don't have a good way to specify dependencies between
|
|
# clanServices for now. When it get's implemtende, we should just
|
|
# use the ssh and users modules here.
|
|
imports = [
|
|
./ssh.nix
|
|
./root-password.nix
|
|
];
|
|
}
|