Browse Source
* New directory modules/programs that contains system-wide
* New directory modules/programs that contains system-wide
configuration for specific programs. For instance, ssh.nix provides the configuration for the SSH client; ssmtp.nix provides the configuration for the `ssmtp' MTA. svn path=/nixos/branches/modular-nixos/; revision=15757nsd-state-dir
6 changed files with 114 additions and 81 deletions
-
25etc/default.nix
-
1modules/config/system-path.nix
-
4modules/module-list.nix
-
20modules/programs/ssh.nix
-
91modules/programs/ssmtp.nix
-
54system/options.nix
@ -0,0 +1,20 @@ |
|||
# Global configuration for the SSH client. |
|||
|
|||
{config, pkgs, ...}: |
|||
|
|||
{ |
|||
environment.etc = |
|||
[ { # SSH configuration. Slight duplication of the sshd_config |
|||
# generation in the sshd service. |
|||
source = pkgs.writeText "ssh_config" '' |
|||
${if config.services.sshd.forwardX11 then '' |
|||
ForwardX11 yes |
|||
XAuthLocation ${pkgs.xorg.xauth}/bin/xauth |
|||
'' else '' |
|||
ForwardX11 no |
|||
''} |
|||
''; |
|||
target = "ssh/ssh_config"; |
|||
} |
|||
]; |
|||
} |
@ -0,0 +1,91 @@ |
|||
# Configuration for `ssmtp', a trivial mail transfer agent that can |
|||
# replace sendmail/postfix on simple systems. It delivers email |
|||
# directly to an SMTP server defined in its configuration file, wihout |
|||
# queueing mail locally. |
|||
|
|||
{config, pkgs, ...}: |
|||
|
|||
with pkgs.lib; |
|||
|
|||
let |
|||
|
|||
options = { |
|||
|
|||
networking.defaultMailServer = { |
|||
|
|||
directDelivery = mkOption { |
|||
default = false; |
|||
example = true; |
|||
description = " |
|||
Use the trivial Mail Transfer Agent (MTA) |
|||
<command>ssmtp</command> package to allow programs to send |
|||
e-mail. If you don't want to run a ``real'' MTA like |
|||
<command>sendmail</command> or <command>postfix</command> on |
|||
your machine, set this option to <literal>true</literal>, and |
|||
set the option |
|||
<option>networking.defaultMailServer.hostName</option> to the |
|||
host name of your preferred mail server. |
|||
"; |
|||
}; |
|||
|
|||
hostName = mkOption { |
|||
example = "mail.example.org"; |
|||
description = " |
|||
The host name of the default mail server to use to deliver |
|||
e-mail. |
|||
"; |
|||
}; |
|||
|
|||
domain = mkOption { |
|||
default = ""; |
|||
example = "example.org"; |
|||
description = " |
|||
The domain from which mail will appear to be sent. |
|||
"; |
|||
}; |
|||
|
|||
useTLS = mkOption { |
|||
default = false; |
|||
example = true; |
|||
description = " |
|||
Whether TLS should be used to connect to the default mail |
|||
server. |
|||
"; |
|||
}; |
|||
|
|||
useSTARTTLS = mkOption { |
|||
default = false; |
|||
example = true; |
|||
description = " |
|||
Whether the STARTTLS should be used to connect to the default |
|||
mail server. (This is needed for TLS-capable mail servers |
|||
running on the default SMTP port 25.) |
|||
"; |
|||
}; |
|||
|
|||
}; |
|||
|
|||
}; |
|||
|
|||
cfg = config.networking.defaultMailServer; |
|||
|
|||
in |
|||
|
|||
mkIf cfg.directDelivery { |
|||
require = [options]; |
|||
|
|||
environment.etc = |
|||
[ { source = pkgs.writeText "ssmtp.conf" '' |
|||
MailHub=${cfg.hostName} |
|||
FromLineOverride=YES |
|||
${if cfg.domain != "" then "rewriteDomain=${cfg.domain}" else ""} |
|||
UseTLS=${if cfg.useTLS then "YES" else "NO"} |
|||
UseSTARTTLS=${if cfg.useSTARTTLS then "YES" else "NO"} |
|||
#Debug=YES |
|||
''; |
|||
target = "ssmtp/ssmtp.conf"; |
|||
} |
|||
]; |
|||
|
|||
environment.extraPackages = [pkgs.ssmtp]; |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue