propellor-2.16.0: property-based host configuration management in haskell

Safe HaskellNone




satellite :: Property NoInfo Source

Configures postfix as a satellite system, which relays all mail through a relay host, which defaults to smtp.domain, but can be changed by mainCf "relayhost".

The smarthost may refuse to relay mail on to other domains, without further configuration/keys. But this should be enough to get cron job mail flowing to a place where it will be seen.

mappedFile :: Combines (Property x) (Property NoInfo) => FilePath -> (FilePath -> Property x) -> Property (CInfo x NoInfo) Source

Sets up a file by running a property (which the filename is passed to). If the setup property makes a change, postmap will be run on the file, and postfix will be reloaded.

newaliases :: Property NoInfo Source

Run newaliases command, which should be done after changing etcaliases.

mainCfFile :: FilePath Source

The main config file for postfix.

mainCf :: (String, String) -> Property NoInfo Source

Sets a name=value pair. Does not reload postfix immediately.

getMainCf :: String -> IO (Maybe String) Source

Gets a setting.

mainCfIsSet :: String -> IO Bool Source

Checks if a field is set. A field that is set to the empty string is considered not set.

dedupMainCf :: Property NoInfo Source

Parses, and removes any initial configuration lines that are overridden to other values later in the file.

For example, to add some settings, removing any old settings:

 mainCf `File.containsLines`
	[ "# I like bars."
	, "foo = bar"
	] `onChange` dedupMainCf

Note that multiline configurations that continue onto the next line are not currently supported.

masterCfFile :: FilePath Source

The master config file for postfix.

data Service Source

A service that can be present in the master config file.

parseServiceLine :: Line -> Maybe Service Source

Note that this does not handle multi-line service entries, in which subsequent lines are indented. serviceLine does not generate such entries.

saslAuthdInstalled :: Property NoInfo Source

Installs saslauthd and configures it for postfix, authenticating against PAM.

Does not configure postfix to use it; eg smtpd_sasl_auth_enable = yes needs to be set to enable use. See

Password brute force attacks are possible when SASL auth is enabled. It would be wise to enable fail2ban, for example:

Fail2Ban.jailEnabled "postfix-sasl"

saslPasswdSet :: Domain -> User -> Property HasInfo Source

Uses saslpasswd2 to set the password for a user in the sasldb2 file.

The password is taken from the privdata.