74 lines
2.3 KiB
Nix
74 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;
|
|
};
|
|
};
|
|
|
|
}
|