diff options
| author | adikro <adikro@disroot.org> | 2026-06-12 00:53:25 +0200 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2026-06-12 00:53:25 +0200 |
| commit | 1eba5398fd09f98bd11cbf8c3b80f20bb9ce1f2d (patch) | |
| tree | c103e3d6ee0e3b2a1e3ac8fd525c08eb7d37e938 /os/srv/mailserver.nix | |
| parent | 66eff7dbb117ccf9cbf743036f058d5dcb0a78e6 (diff) | |
microvm and dns stuff
Diffstat (limited to 'os/srv/mailserver.nix')
| -rw-r--r-- | os/srv/mailserver.nix | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/os/srv/mailserver.nix b/os/srv/mailserver.nix new file mode 100644 index 0000000..7bcd008 --- /dev/null +++ b/os/srv/mailserver.nix @@ -0,0 +1,59 @@ +{ + config, + lib, + inputs, + masterDomain, + ... +}: +let + cfg = config.os.srv.mailserver; +in +{ + options.os.srv.mailserver.enable = lib.mkEnableOption "enables mailserver scanning"; + imports = [ inputs.nixos-mailserver.nixosModules.mailserver ]; + config = lib.mkIf cfg.enable { + assertions = [ + { + assertion = config.os.srv.sops.enable; + message = "Required for password secure password storing"; + } + { + assertion = config.os.srv.lldap.enable; + message = "required for user accounts"; + } + ]; + mailserver = { + enable = true; + fqdn = "mail.${masterDomain}"; + domains = [ masterDomain ]; + + # TODO setup ldap + ldap = { + enable = true; + uris = [ "ldap://127.0.0.1:3890" ]; + base = "ou=people,dc=yourdomain,dc=com"; + + bind = { + dn = "uid=mail-service,ou=people,dc=yourdomain,dc=com"; + passwordFile = "/var/src/secrets/ldap-mail-password"; + }; + + attributes = { + username = "uid"; + mail = "mail"; + password = "userPassword"; + uuid = "entryUUID"; + }; + + dovecot = { + userFilter = "(|(mail=%{user})(uid=%{user}))"; + passFilter = "(uid=%{user})"; + }; + + postfix = { + filter = "(mail=%s)"; + }; + }; + }; + }; +} |
