diff options
author | Robin Raymond <robin@robinraymond.de> | 2017-08-12 11:27:19 +0200 |
---|---|---|
committer | Robin Raymond <robin@robinraymond.de> | 2017-08-12 11:27:19 +0200 |
commit | 60574841c6fd2a95dd3907c73c1f11200f637346 (patch) | |
tree | d4e125e1a65daf1551eda50f6bac23c4eaff189b /mail-server/services.nix | |
parent | 54e56926d64a5989884c12a64cb3e05d6731782c (diff) |
restructuring; now works with 17.03/17.09-pre
I had to remove some of the features, they need to be slowely added in
again.
Diffstat (limited to 'mail-server/services.nix')
-rw-r--r-- | mail-server/services.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/mail-server/services.nix b/mail-server/services.nix new file mode 100644 index 0000000..fe848d9 --- /dev/null +++ b/mail-server/services.nix @@ -0,0 +1,61 @@ +# 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/> + +{ mail_dir, vmail_user_name, vmail_id_start, vmail_group_name, login_accounts, +valiases, domain, enable_imap, enable_pop3 }: + +let + dovecot_maildir = "maildir:" + mail_dir + "/%d/%n/"; + vmail_user = [{ + name = vmail_user_name; + isNormalUser = false; + uid = vmail_id_start; + home = mail_dir; + createHome = true; + group = vmail_group_name; + }]; + + # accountsToUser :: String -> UserRecord + accountsToUser = x: { + name = x + "@" + domain; + isNormalUser = false; + group = vmail_group_name; + }; + + # mail_user :: [ UserRecord ] + mail_user = map accountsToUser login_accounts; + + # valiasToString :: { from = "..."; to = "..." } -> String + valiasToString = x: x.from + "@" + domain + " " + x.to "@" + domain + "\n"; + + # valias_file :: [ String ] + valiases_file = map valiasToString valiases; +in +{ + # rspamd + rspamd = { + enable = true; + }; + + postfix = import ./postfix.nix { + valiases_file = ""; vaccounts_file = ""; #< TODO: FIX + }; + + dovecot2 = import ./dovecot.nix { + inherit vmail_group_name vmail_user_name dovecot_maildir enable_imap + enable_pop3; + }; +} |