Self-host your own digital island
1# nixos-mailserver: a simple mail server
2# Copyright (C) 2016-2018 Robin Raymond
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>
16
17
18{ config, pkgs, lib, ... }:
19
20with (import ./common.nix { inherit config; });
21
22let
23 cfg = config.mailserver;
24 acmeRoot = "/var/lib/acme/acme-challenge";
25in
26{
27 config = lib.mkIf (cfg.enable && cfg.certificateScheme == 3) {
28 services.nginx = {
29 enable = true;
30 virtualHosts."${cfg.fqdn}" = {
31 serverName = cfg.fqdn;
32 serverAliases = cfg.certificateDomains;
33 forceSSL = true;
34 enableACME = true;
35 acmeRoot = acmeRoot;
36 };
37 };
38
39 security.acme.certs."${cfg.fqdn}".reloadServices = [
40 "postfix.service"
41 "dovecot2.service"
42 ];
43 };
44}