merge new secrets
This commit is contained in:
52
modules/nixos/zulip.nix
Normal file
52
modules/nixos/zulip.nix
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [];
|
||||
options.x = {
|
||||
zulip = {
|
||||
enable = true;
|
||||
admin_email = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "admin+zulip@${config.networking.domain}";
|
||||
};
|
||||
integration = {
|
||||
persistance.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = "whether persistance is enabled";
|
||||
default = lib.mkDefault false;
|
||||
};
|
||||
mailserver.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = "creates simple-nixos-mailserver login automatically for admin user";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
config = let
|
||||
cfg = config.x.zulip;
|
||||
in
|
||||
lib.mkIf cfg.enable {
|
||||
services.zulip = {
|
||||
enable = true;
|
||||
host = "zulip.${config.networking.domain}";
|
||||
camoKeyFile = builtins.toString config.age.secrets.zulip-camoKey.path;
|
||||
rabbitmqPasswordFile = builtins.toString config.age.secrets.zulip-rabbitmqPassword.path;
|
||||
secretKeyFile = builtins.toString config.age.secrets.zulip-secretKey.path;
|
||||
sharedSecretKeyFile = builtins.toString config.age.secrets.zulip-sharedSecretKey.path;
|
||||
avatarSaltKeyFile = builtins.toString config.age.secrets.zulip-avatarSaltKey.path;
|
||||
zulipSettings = {
|
||||
ZULIP_ADMINISTRATOR = cfg.admin_email;
|
||||
EXTERNAL_HOST = "chat.${config.networking.domain}";
|
||||
};
|
||||
};
|
||||
services.mailserver.loginAccounts = lib.mkIf cfg.integration.mailserver.enable {
|
||||
"admin+zulip@${config.networking.domain}" = {
|
||||
hashedPasswordFile = builtins.toString config.age.secrets.secret3.path;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user