aboutsummaryrefslogtreecommitdiff
path: root/modules/mailserver/default.nix
blob: 9188129eea93e13597916628a5188b43558fd6ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{ config, lib, pkgs, ...}:

{
  mailserver = {
    enable = true;

    fqdn = "mail.vapor.systems";
    domains = [ "vapor.systems" ];

    # A list of all login accounts. To create the password hashes, use
    # nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'
    loginAccounts = {
      # "user1@example.com" = {
      #   hashedPasswordFile = "/a/file/containing/a/hashed/password";
      #   aliases = ["postmaster@example.com"];
      # };
      # "user2@example.com" = { ... };
    };

    ldap = {
      enable = true;
      uris = [ "ldaps://ettves:636" ];

      bind = {
        dn = "cn=mail,ou=users,dc=mail,dc=vapor,dc=systems";
        passwordFile = "/etc/secrets/ldap";
      };

      searchBase = "dc=mail,dc=vapor,dc=systems";
    };

    certificateScheme = "acme";
  };

  secrets = {
    minecraft = {
      source = ../../secrets/authentik/mail;
      dest = "/etc/secrets/ldap";
    };
  };

  security.acme.certs = {
    "mail.vapor.systems" = { };
  };
}