1
0
Fork 0
nixos-config/nixos/roles/mailman.nix
2021-10-31 02:27:30 +01:00

75 lines
2.3 KiB
Nix

{ pkgs, lib, config, ... }:
let
hostname = "lists.maralorn.de";
admin = "malte.brandy@maralorn.de";
cfg = config.services.mailman;
lists = pkgs.privateValue { } "mail/lists";
in
{
systemd.services.mailman.postStart = lib.concatStringsSep "\n" (
map
(
x: ''
${cfg.package}/bin/mailman syncmembers -W -G - "${x}" << EOF
${lib.concatStringsSep "\n" lists.${x}}
EOF
''
)
(builtins.attrNames lists)
);
services = {
mailman = {
enable = true;
webHosts = [ hostname ];
serve.enable = true;
enablePostfix = true;
siteOwner = admin;
webSettings = {
#Try this option again with django_mailman3 1.3.6 on nixos-21.11
#ACCOUNT_ADAPTER = "django_mailman3.views.user_adapter.DisableSignupAdapter";
};
settings = {
mailman.default_language = "de";
"paths.fhs".template_dir = lib.mkForce (
pkgs.setToDirectories {
site.de = {
"list:user:notice:goodbye.txt" = builtins.toFile "goodbye" ''
Du erhältst nun keine E-Mails mehr über diese Mailingliste.
Bei Fragen oder wenn Du doch E-Mails von dieser Liste bekommen möchtest wende Dich an ${admin}.
'';
"list:member:generic:footer.txt" = builtins.toFile "footer" ''
---
Du erhältst diese E-Mail über die Mailingliste "$display_name".
Bei Fragen oder wenn Du diese E-Mails nicht mehr bekommen möchtest wende Dich an ${admin}.
'';
"list:user:notice:welcome.txt" = builtins.toFile "welcome" ''
Herzlich Willkommen auf der Mailingliste "$display_name".
Bei Fragen und wenn Du keine E-Mails von dieser Liste mehr bekommen möchtest wende Dich an ${admin}.
'';
};
}
).outPath;
};
};
postfix = {
relayDomains = [ "hash:/var/lib/mailman/data/postfix_domains" ];
config =
let
lmtp = [ "hash:/var/lib/mailman/data/postfix_lmtp" ];
in
{
transport_maps = lmtp;
local_recipient_maps = lmtp;
};
};
nginx.virtualHosts.${hostname} = {
enableACME = true;
forceSSL = true;
};
};
}