diff --git a/default.nix b/default.nix
index 2edb0eb..a2158a6 100644
--- a/default.nix
+++ b/default.nix
@@ -32,7 +32,7 @@ in
description = "The domain that this mail server serves. So far only one domain is supported";
};
- host_prefix = mkOption {
+ hostPrefix = mkOption {
type = types.str;
default = "mail";
description = ''
@@ -41,7 +41,7 @@ in
'';
};
- login_accounts = mkOption {
+ loginAccounts = mkOption {
type = types.loaOf (types.submodule ({ name, ... }: {
options = {
name = mkOption {
@@ -85,8 +85,8 @@ in
default = {};
};
- valiases = mkOption {
- type = types.attrsOf (types.enum (builtins.attrNames cfg.login_accounts));
+ virtualAliases = mkOption {
+ type = types.attrsOf (types.enum (builtins.attrNames cfg.loginAccounts));
example = {
info = "user1";
postmaster = "user1";
@@ -102,16 +102,16 @@ in
default = {};
};
- vmail_id_start = mkOption {
+ vmailUIDStart = mkOption {
type = types.int;
default = 5000;
description = ''
- The unix UID where the login_accounts are created. 5000 means that the first
+ The unix UID where the loginAccounts are created. 5000 means that the first
user will get 5000, the second 5001, ...
'';
};
- vmail_user_name = mkOption {
+ vmailUserName = mkOption {
type = types.str;
default = "vmail";
description = ''
@@ -120,7 +120,7 @@ in
'';
};
- vmail_group_name = mkOption {
+ vmailGroupName = mkOption {
type = types.str;
default = "vmail";
description = ''
@@ -129,7 +129,7 @@ in
'';
};
- mail_dir = mkOption {
+ mailDirectory = mkOption {
type = types.string;
default = "/var/vmail";
description = ''
@@ -137,7 +137,7 @@ in
'';
};
- certificate_scheme = mkOption {
+ certificateScheme = mkOption {
type = types.enum [ 1 2 ];
default = 2;
description = ''
@@ -154,7 +154,7 @@ in
'';
};
- cert_file = mkOption {
+ certificateFile = mkOption {
type = types.path;
example = "/root/mail-server.crt";
description = ''
@@ -163,7 +163,7 @@ in
'';
};
- key_file = mkOption {
+ keyFile = mkOption {
type = types.path;
example = "/root/mail-server.key";
description = ''
@@ -212,7 +212,7 @@ in
# imapSsl = mkOption {} #< TODO
# pop3Ssl = mkOption {} #< TODO
- virus_scanning = mkOption {
+ virusScanning = mkOption {
type = types.bool;
default = false;
description = ''
@@ -254,30 +254,31 @@ in
config = mkIf cfg.enable {
services = import ./mail-server/services.nix {
inherit lib;
- inherit (cfg) mail_dir vmail_user_name vmail_group_name valiases domain
+ inherit (cfg) mailDirectory vmailUserName vmailGroupName virtualAliases domain
enable_imap enable_pop3 dkim_signing dkim_selector dkim_dir
- certificate_scheme cert_file key_file cert_dir virus_scanning;
+ certificateScheme certificateFile keyFile cert_dir virusScanning;
};
environment = import ./mail-server/environment.nix {
inherit pkgs;
- inherit (cfg) certificate_scheme;
+ inherit (cfg) certificateScheme;
};
networking = import ./mail-server/networking.nix {
- inherit (cfg) domain host_prefix enable_imap enable_pop3;
+ inherit (cfg) domain hostPrefix enable_imap enable_pop3;
};
systemd = import ./mail-server/systemd.nix {
inherit pkgs;
- inherit (cfg) mail_dir vmail_group_name certificate_scheme cert_dir host_prefix
- domain dkim_selector dkim_dir;
+ inherit (cfg) mailDirectory vmailGroupName certificateScheme cert_dir
+ hostPrefix domain dkim_selector dkim_dir;
};
users = import ./mail-server/users.nix {
inherit lib;
- inherit (cfg) vmail_id_start vmail_user_name vmail_group_name domain mail_dir
- login_accounts;
+ inherit (cfg) vmailUIDStart vmailUserName vmailGroupName domain
+ mailDirectory
+ loginAccounts;
};
};
}
diff --git a/mail-server/clamav.nix b/mail-server/clamav.nix
index 9bf0737..5542a95 100644
--- a/mail-server/clamav.nix
+++ b/mail-server/clamav.nix
@@ -20,7 +20,7 @@ let
cfg = config.mailserver;
in
{
- config = lib.mkIf cfg.virus_scanning {
+ config = lib.mkIf cfg.virusScanning {
services.clamav.daemon.enable = true;
services.clamav.updater.enable = true;
};
diff --git a/mail-server/dovecot.nix b/mail-server/dovecot.nix
index b294ac1..d94539e 100644
--- a/mail-server/dovecot.nix
+++ b/mail-server/dovecot.nix
@@ -14,27 +14,27 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ vmail_group_name, vmail_user_name, mail_dir, enable_imap, enable_pop3, cert,
+{ vmailGroupName, vmailUserName, mailDirectory, enable_imap, enable_pop3, cert,
key }:
let
# maildir in format "/${domain}/${user}/"
- dovecot_maildir = "maildir:${mail_dir}/%d/%n/";
+ dovecot_maildir = "maildir:${mailDirectory}/%d/%n/";
in
{
enable = true;
enableImap = enable_imap;
enablePop3 = enable_pop3;
- mailGroup = vmail_group_name;
- mailUser = vmail_user_name;
+ mailGroup = vmailGroupName;
+ mailUser = vmailUserName;
mailLocation = dovecot_maildir;
sslServerCert = cert;
sslServerKey = key;
enableLmtp = true;
extraConfig = ''
#Extra Config
- mail_access_groups = ${vmail_group_name}
+ mail_access_groups = ${vmailGroupName}
ssl = required
service lmtp {
diff --git a/mail-server/environment.nix b/mail-server/environment.nix
index 3b61430..4ffdd2a 100644
--- a/mail-server/environment.nix
+++ b/mail-server/environment.nix
@@ -14,10 +14,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ pkgs, certificate_scheme }:
+{ pkgs, certificateScheme }:
{
systemPackages = with pkgs; [
dovecot opendkim openssh postfix clamav rspamd rmilter
- ] ++ (if certificate_scheme == 2 then [ openssl ] else []);
+ ] ++ (if certificateScheme == 2 then [ openssl ] else []);
}
diff --git a/mail-server/networking.nix b/mail-server/networking.nix
index 990c13a..81c2d15 100644
--- a/mail-server/networking.nix
+++ b/mail-server/networking.nix
@@ -14,10 +14,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ domain, host_prefix, enable_imap, enable_pop3 }:
+{ domain, hostPrefix, enable_imap, enable_pop3 }:
{
- #hostName = "${host_prefix}.${domain}";
+ #hostName = "${hostPrefix}.${domain}";
firewall = {
enable = true;
diff --git a/mail-server/postfix.nix b/mail-server/postfix.nix
index fb4dbc1..cc2817e 100644
--- a/mail-server/postfix.nix
+++ b/mail-server/postfix.nix
@@ -14,15 +14,15 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ lib, mail_dir, domain, valiases, cert, key }:
+{ lib, mailDirectory, domain, virtualAliases, cert, key }:
let
# valiases_postfix :: [ String ]
valiases_postfix = map
(from:
- let to = valiases.${from};
+ let to = virtualAliases.${from};
in "${from}@${domain} ${to}@${domain}")
- (builtins.attrNames valiases);
+ (builtins.attrNames virtualAliases);
# valiases_file :: Path
valiases_file = builtins.toFile "valias" (lib.concatStringsSep "\n" valiases_postfix);
@@ -60,7 +60,7 @@ in
# virtual mail system
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
- virtual_mailbox_base = ${mail_dir}
+ virtual_mailbox_base = ${mailDirectory}
virtual_mailbox_domains = ${vhosts_file}
virtual_alias_maps = hash:/var/lib/postfix/conf/valias
virtual_transport = lmtp:unix:private/dovecot-lmtp
diff --git a/mail-server/rmilter.nix b/mail-server/rmilter.nix
index 911eaf8..ea62a9f 100644
--- a/mail-server/rmilter.nix
+++ b/mail-server/rmilter.nix
@@ -14,10 +14,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ domain, virus_scanning, dkim_signing, dkim_dir, dkim_selector }:
+{ domain, virusScanning, dkim_signing, dkim_dir, dkim_selector }:
let
- clamav = if virus_scanning
+ clamav = if virusScanning
then
''
clamav {
diff --git a/mail-server/services.nix b/mail-server/services.nix
index 880536c..7d2188c 100644
--- a/mail-server/services.nix
+++ b/mail-server/services.nix
@@ -14,22 +14,22 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ 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 }:
+{ lib, mailDirectory, vmailUserName, vmailGroupName, virtualAliases, domain, enable_imap,
+enable_pop3, virusScanning, dkim_signing, dkim_selector, dkim_dir,
+certificateScheme, certificateFile, keyFile, cert_dir }:
let
# cert :: PATH
- cert = if certificate_scheme == 1
- then cert_file
- else if certificate_scheme == 2
+ cert = if certificateScheme == 1
+ then certificateFile
+ else if certificateScheme == 2
then "${cert_dir}/cert-${domain}.pem"
else "";
# key :: PATH
- key = if certificate_scheme == 1
- then key_file
- else if certificate_scheme == 2
+ key = if certificateScheme == 1
+ then keyFile
+ else if certificateScheme == 2
then "${cert_dir}/key-${domain}.pem"
else "";
in
@@ -40,15 +40,15 @@ in
};
rmilter = import ./rmilter.nix {
- inherit domain virus_scanning dkim_signing dkim_selector dkim_dir;
+ inherit domain virusScanning dkim_signing dkim_selector dkim_dir;
};
postfix = import ./postfix.nix {
- inherit lib mail_dir domain valiases cert key;
+ inherit lib mailDirectory domain virtualAliases cert key;
};
dovecot2 = import ./dovecot.nix {
- inherit vmail_group_name vmail_user_name mail_dir enable_imap
+ inherit vmailGroupName vmailUserName mailDirectory enable_imap
enable_pop3 cert key;
};
}
diff --git a/mail-server/systemd.nix b/mail-server/systemd.nix
index 817a760..fe3c688 100644
--- a/mail-server/systemd.nix
+++ b/mail-server/systemd.nix
@@ -14,15 +14,15 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ pkgs, mail_dir, vmail_group_name, certificate_scheme, cert_dir, host_prefix,
+{ pkgs, mailDirectory, vmailGroupName, certificateScheme, cert_dir, hostPrefix,
domain, dkim_selector, dkim_dir}:
let
- create_certificate = if certificate_scheme == 2 then
+ create_certificate = if certificateScheme == 2 then
''
# Create certificates if they do not exist yet
dir="${cert_dir}"
- fqdn="${host_prefix}.${domain}"
+ fqdn="${hostPrefix}.${domain}"
case $fqdn in /*) fqdn=$(cat "$fqdn");; esac
key="''${dir}/key-${domain}.pem";
cert="''${dir}/cert-${domain}.pem";
@@ -68,9 +68,9 @@ in
preStart =
''
# Create mail directory and set permissions
- mkdir -p "${mail_dir}"
- chgrp "${vmail_group_name}" "${mail_dir}"
- chmod 02770 "${mail_dir}"
+ mkdir -p "${mailDirectory}"
+ chgrp "${vmailGroupName}" "${mailDirectory}"
+ chmod 02770 "${mailDirectory}"
${create_certificate}
'';
diff --git a/mail-server/users.nix b/mail-server/users.nix
index de1c1ab..cae2b83 100644
--- a/mail-server/users.nix
+++ b/mail-server/users.nix
@@ -14,35 +14,35 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
-{ lib, vmail_id_start, vmail_user_name, vmail_group_name, domain, mail_dir,
-login_accounts }:
+{ lib, vmailUIDStart, vmailUserName, vmailGroupName, domain, mailDirectory,
+loginAccounts }:
let
vmail_user = [{
- name = vmail_user_name;
+ name = vmailUserName;
isNormalUser = false;
- uid = vmail_id_start;
- home = mail_dir;
+ uid = vmailUIDStart;
+ home = mailDirectory;
createHome = true;
- group = vmail_group_name;
+ group = vmailGroupName;
}];
# accountsToUser :: String -> UserRecord
accountsToUser = account: {
name = account.name + "@" + domain;
isNormalUser = false;
- group = vmail_group_name;
+ group = vmailGroupName;
inherit (account) hashedPassword;
};
# mail_user :: [ UserRecord ]
- mail_user = map accountsToUser (lib.attrValues login_accounts);
+ mail_user = map accountsToUser (lib.attrValues loginAccounts);
in
{
# set the vmail gid to a specific value
groups = {
- vmail = { gid = vmail_id_start; };
+ vmail = { gid = vmailUIDStart; };
};
# define all users