summaryrefslogtreecommitdiff
path: root/modules/nixos/zulip.nix
diff options
context:
space:
mode:
authorandromeda <andromeda@lenovo>2026-01-06 14:52:34 +0100
committerandromeda <andromeda@lenovo>2026-01-06 14:52:34 +0100
commitc9a5c521dbc7785aa4a6c1f410e547202075c13b (patch)
tree4362c945c787bac5d7d1bb63d04d7281bfddf6c8 /modules/nixos/zulip.nix
parent0a7e0c699e2f4fa07fb6dde0080da4eb3ac8f746 (diff)
stash
Diffstat (limited to 'modules/nixos/zulip.nix')
-rw-r--r--modules/nixos/zulip.nix67
1 files changed, 19 insertions, 48 deletions
diff --git a/modules/nixos/zulip.nix b/modules/nixos/zulip.nix
index cc74179..736ffad 100644
--- a/modules/nixos/zulip.nix
+++ b/modules/nixos/zulip.nix
@@ -1,52 +1,23 @@
-{
- 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, ...}: {
+ imports = [
+ ./mailserver.nix
+ ];
+ 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 = "admin+zulip@${config.networking.domain}";
+ EXTERNAL_HOST = "chat.${config.networking.domain}";
};
};
- 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;
- };
- };
+ mailserver.loginAccounts = {
+ "zulip+admin@${config.networking.domain}" = {
+ hashedPasswordFile = builtins.toString config.age.secrets."mailserver-acc-zulip+admin-pw".path;
};
+ };
}