This repository has no description
1.9 kB
66 lines
1{ self, config, lib, pkgs, ... }: let
2
3 to = lib.concatStringsSep "," [
4 "lass@green.r"
5 ];
6
7 mails = import "${config.krebs.secret.directory}/mails.nix"; # todo make this pure somehow
8
9in {
10 imports = [
11 self.inputs.stockholm.nixosModules.exim-smarthost
12 ];
13 environment.systemPackages = [ pkgs.review-mail-queue ];
14
15 krebs.exim-smarthost = {
16 enable = true;
17 dkim = [
18 { domain = "lassul.us"; }
19 ];
20 ssl_cert = "/var/lib/acme/mail.lassul.us/fullchain.pem";
21 ssl_key = "/var/lib/acme/mail.lassul.us/key.pem";
22 primary_hostname = "lassul.us";
23 sender_domains = [
24 "lassul.us"
25 ];
26 relay_from_hosts = map (host: host.nets.retiolum.ip6.addr) [
27 config.krebs.hosts.aergia
28 config.krebs.hosts.ignavia
29 config.krebs.hosts.blue
30 config.krebs.hosts.coaxmetal
31 config.krebs.hosts.green
32 config.krebs.hosts.mors
33 config.krebs.hosts.xerxes
34 ];
35 internet-aliases = map (from: { inherit from to; }) mails ++ [
36 ];
37 system-aliases = [
38 { from = "mailer-daemon"; to = "postmaster"; }
39 { from = "postmaster"; to = "root"; }
40 { from = "nobody"; to = "root"; }
41 { from = "hostmaster"; to = "root"; }
42 { from = "usenet"; to = "root"; }
43 { from = "news"; to = "root"; }
44 { from = "webmaster"; to = "root"; }
45 { from = "www"; to = "root"; }
46 { from = "ftp"; to = "root"; }
47 { from = "abuse"; to = "root"; }
48 { from = "noc"; to = "root"; }
49 { from = "security"; to = "root"; }
50 { from = "root"; to = "lass"; }
51 ];
52 };
53 krebs.iptables.tables.filter.INPUT.rules = [
54 { predicate = "-p tcp --dport smtp"; target = "ACCEPT"; }
55 ];
56
57 security.acme.certs."mail.lassul.us" = {
58 group = "lasscert";
59 webroot = "/var/lib/acme/acme-challenge";
60 };
61 users.groups.lasscert.members = [
62 "dovecot2"
63 "exim"
64 "nginx"
65 ];
66}