nixos/mailcatcher: init module for existing package
This commit is contained in:
parent
2dc4153633
commit
395ec8c0d4
|
@ -349,6 +349,7 @@
|
|||
./services/mail/exim.nix
|
||||
./services/mail/freepops.nix
|
||||
./services/mail/mail.nix
|
||||
./services/mail/mailcatcher.nix
|
||||
./services/mail/mailhog.nix
|
||||
./services/mail/mlmmj.nix
|
||||
./services/mail/offlineimap.nix
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.mailcatcher;
|
||||
|
||||
inherit (lib) mkEnableOption mkIf mkOption types;
|
||||
in
|
||||
{
|
||||
# interface
|
||||
|
||||
options = {
|
||||
|
||||
services.mailcatcher = {
|
||||
enable = mkEnableOption "Enable MailCatcher.";
|
||||
|
||||
http.ip = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = "The ip address of the http server.";
|
||||
};
|
||||
|
||||
http.port = mkOption {
|
||||
type = types.port;
|
||||
default = 1080;
|
||||
description = "The port address of the http server.";
|
||||
};
|
||||
|
||||
smtp.ip = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = "The ip address of the smtp server.";
|
||||
};
|
||||
|
||||
smtp.port = mkOption {
|
||||
type = types.port;
|
||||
default = 1025;
|
||||
description = "The port address of the smtp server.";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
# implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.mailcatcher ];
|
||||
|
||||
systemd.services.mailcatcher = {
|
||||
description = "MailCatcher Service";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
Restart = "always";
|
||||
ExecStart = "${pkgs.mailcatcher}/bin/mailcatcher --foreground --no-quit --http-ip ${cfg.http.ip} --http-port ${toString cfg.http.port} --smtp-ip ${cfg.smtp.ip} --smtp-port ${toString cfg.smtp.port}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue