summaryrefslogtreecommitdiffstats
path: root/mail-server/services.nix
blob: 259cbfec968bdf92b6cd3fa95a4de412056193be (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
46
47
48
49
50
51
52
53
54
55
56
57
58
#  nixos-mailserver: a simple mail server
#  Copyright (C) 2016-2017  Robin Raymond
#
#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program. If not, see <http://www.gnu.org/licenses/>

{ lib, mail_dir, vmail_user_name, vmail_group_name, valiases, domain, enable_imap,
enable_pop3, virus_scanning, dkim_signing, dkim_selector, dkim_dir,
certificate_scheme, cert_file, key_file, cert_dir }:

let
  # cert :: PATH
  cert = if certificate_scheme == 1
         then cert_file
         else if certificate_scheme == 2
              then "${cert_dir}/cert-${domain}.pem"
              else "";

  # key :: PATH
  key = if certificate_scheme == 1
        then key_file
        else if certificate_scheme == 2
             then "${cert_dir}/key-${domain}.pem"
             else "";
in
{
  # rspamd
  rspamd = {
    enable = true;
  };

  rmilter = import ./rmilter.nix {
    inherit domain virus_scanning dkim_signing dkim_selector dkim_dir;
  };

  postfix = import ./postfix.nix {
    inherit lib mail_dir domain valiases cert key;
  };

  dovecot2 = import ./dovecot.nix {
    inherit vmail_group_name vmail_user_name mail_dir enable_imap
            enable_pop3 cert key;
  };

  clamav = import ./clamav.nix {
    inherit virus_scanning;
  };
}