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{ config, pkgs, lib, ... }:
18
19let
20 cfg = config.mailserver;
21in
22{
23 config = with cfg; lib.mkIf (enable && openFirewall) {
24
25 networking.firewall = {
26 allowedTCPPorts = [ 25 ]
27 ++ lib.optional enableSubmission 587
28 ++ lib.optional enableSubmissionSsl 465
29 ++ lib.optional enableImap 143
30 ++ lib.optional enableImapSsl 993
31 ++ lib.optional enablePop3 110
32 ++ lib.optional enablePop3Ssl 995
33 ++ lib.optional enableManageSieve 4190
34 ++ lib.optional (certificateScheme == 3) 80;
35 };
36 };
37}