diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2022-05-20 01:36:48 +0200 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2022-05-20 01:36:48 +0200 |
commit | aea3ec632da49c2527c75183e8566dff4c40f670 (patch) | |
tree | 42def9e5111e0cf998100ab7b4f14f13e0a2d634 /nixos/modules/services/mail/mailman.nix | |
parent | 72a14ea563a3f5bf85db659349a533fe75a8b0ce (diff) | |
download | nixpkgs-aea3ec632da49c2527c75183e8566dff4c40f670.tar nixpkgs-aea3ec632da49c2527c75183e8566dff4c40f670.tar.gz nixpkgs-aea3ec632da49c2527c75183e8566dff4c40f670.tar.bz2 nixpkgs-aea3ec632da49c2527c75183e8566dff4c40f670.tar.lz nixpkgs-aea3ec632da49c2527c75183e8566dff4c40f670.tar.xz nixpkgs-aea3ec632da49c2527c75183e8566dff4c40f670.tar.zst nixpkgs-aea3ec632da49c2527c75183e8566dff4c40f670.zip |
mailman: split python env for web and mailman
Diffstat (limited to 'nixos/modules/services/mail/mailman.nix')
-rw-r--r-- | nixos/modules/services/mail/mailman.nix | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix index 4dd3af219f1..5b714c384de 100644 --- a/nixos/modules/services/mail/mailman.nix +++ b/nixos/modules/services/mail/mailman.nix @@ -6,9 +6,8 @@ let cfg = config.services.mailman; - pythonEnv = pkgs.mailmanPackages.buildEnv { - withHyperkitty = cfg.hyperkitty.enable; - }; + inherit (pkgs.mailmanPackages.buildEnvs { withHyperkitty = cfg.hyperkitty.enable; }) + mailmanEnv webEnv; withPostgresql = config.services.postgresql.enable; @@ -291,9 +290,12 @@ in { name = "mailman-tools"; # We don't want to pollute the system PATH with a python # interpreter etc. so let's pick only the stuff we actually - # want from pythonEnv + # want from {web,mailman}Env pathsToLink = ["/bin"]; - paths = [pythonEnv]; + paths = [ mailmanEnv webEnv ]; + # Only mailman-related stuff is installed, the rest is removed + # in `postBuild`. + ignoreCollisions = true; postBuild = '' find $out/bin/ -mindepth 1 -not -name "mailman*" -delete ''; @@ -322,8 +324,8 @@ in { requires = optional withPostgresql "postgresql.service"; wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStart = "${pythonEnv}/bin/mailman start"; - ExecStop = "${pythonEnv}/bin/mailman stop"; + ExecStart = "${mailmanEnv}/bin/mailman start"; + ExecStop = "${mailmanEnv}/bin/mailman stop"; User = "mailman"; Group = "mailman"; Type = "forking"; @@ -381,9 +383,9 @@ in { restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; script = '' [[ -e "${webSettings.STATIC_ROOT}" ]] && find "${webSettings.STATIC_ROOT}/" -mindepth 1 -delete - ${pythonEnv}/bin/mailman-web migrate - ${pythonEnv}/bin/mailman-web collectstatic - ${pythonEnv}/bin/mailman-web compress + ${webEnv}/bin/mailman-web migrate + ${webEnv}/bin/mailman-web collectstatic + ${webEnv}/bin/mailman-web compress ''; serviceConfig = { User = cfg.webUser; @@ -397,7 +399,7 @@ in { uwsgiConfig.uwsgi = { type = "normal"; plugins = ["python3"]; - home = pythonEnv; + home = webEnv; module = "mailman_web.wsgi"; http = "127.0.0.1:18507"; }; @@ -424,7 +426,7 @@ in { startAt = "daily"; restartTriggers = [ config.environment.etc."mailman.cfg".source ]; serviceConfig = { - ExecStart = "${pythonEnv}/bin/mailman digests --send"; + ExecStart = "${mailmanEnv}/bin/mailman digests --send"; User = "mailman"; Group = "mailman"; }; @@ -436,7 +438,7 @@ in { restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; wantedBy = [ "mailman.service" "multi-user.target" ]; serviceConfig = { - ExecStart = "${pythonEnv}/bin/mailman-web qcluster"; + ExecStart = "${webEnv}/bin/mailman-web qcluster"; User = cfg.webUser; Group = "mailman"; WorkingDirectory = "/var/lib/mailman-web"; @@ -455,7 +457,7 @@ in { inherit startAt; restartTriggers = [ config.environment.etc."mailman3/settings.py".source ]; serviceConfig = { - ExecStart = "${pythonEnv}/bin/mailman-web runjobs ${name}"; + ExecStart = "${webEnv}/bin/mailman-web runjobs ${name}"; User = cfg.webUser; Group = "mailman"; WorkingDirectory = "/var/lib/mailman-web"; |