1
0
Fork 0
nixos-config/nixos/roles/mailman.nix

75 lines
2.3 KiB
Nix
Raw Normal View History

2021-06-06 17:33:30 +00:00
{ pkgs, lib, config, ... }:
2021-06-05 23:18:57 +00:00
let
hostname = "lists.maralorn.de";
2021-06-06 16:48:27 +00:00
admin = "malte.brandy@maralorn.de";
2021-06-06 17:33:30 +00:00
cfg = config.services.mailman;
lists = pkgs.privateValue { } "mail/lists";
2021-06-05 23:18:57 +00:00
in
{
2021-06-06 17:33:30 +00:00
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)
);
2021-06-05 23:18:57 +00:00
services = {
mailman = {
enable = true;
webHosts = [ hostname ];
serve.enable = true;
enablePostfix = true;
siteOwner = admin;
2021-10-31 01:19:45 +00:00
webSettings = {
2021-10-31 01:27:30 +00:00
#Try this option again with django_mailman3 1.3.6 on nixos-21.11
#ACCOUNT_ADAPTER = "django_mailman3.views.user_adapter.DisableSignupAdapter";
2021-10-31 01:19:45 +00:00
};
2021-06-06 16:48:27 +00:00
settings = {
mailman.default_language = "de";
2021-06-06 17:33:30 +00:00
"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.
2021-06-06 16:48:27 +00:00
2021-06-06 17:33:30 +00:00
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}.
'';
2021-06-06 16:48:27 +00:00
2021-06-06 17:33:30 +00:00
"list:user:notice:welcome.txt" = builtins.toFile "welcome" ''
Herzlich Willkommen auf der Mailingliste "$display_name".
2021-06-06 16:48:27 +00:00
2021-06-06 17:33:30 +00:00
Bei Fragen und wenn Du keine E-Mails von dieser Liste mehr bekommen möchtest wende Dich an ${admin}.
'';
};
}
).outPath;
2021-06-06 16:48:27 +00:00
};
2021-06-05 23:18:57 +00:00
};
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;
};
};
}