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

Safe Haskell | None
Language | Haskell2010

Propellor.Property.Apache

Synopsis

- installed :: Property DebianLike
- restarted :: Property DebianLike
- reloaded :: Property DebianLike
- type ConfigLine = String
- type ConfigFile = [ConfigLine]
- siteEnabled :: Domain -> ConfigFile -> RevertableProperty DebianLike DebianLike
- siteEnabled' :: Domain -> ConfigFile -> Property DebianLike
- siteDisabled :: Domain -> Property DebianLike
- siteAvailable :: Domain -> ConfigFile -> Property DebianLike
- modEnabled :: String -> RevertableProperty DebianLike DebianLike
- confEnabled :: String -> RevertableProperty DebianLike DebianLike
- listenPorts :: [Port] -> Property DebianLike
- siteCfg :: Domain -> [FilePath]
- multiSSL :: Property DebianLike
- allowAll :: ConfigLine
- iconDir :: ConfigLine
- type WebRoot = FilePath
- virtualHost :: Domain -> Port -> WebRoot -> RevertableProperty DebianLike DebianLike
- virtualHost' :: Domain -> Port -> WebRoot -> [ConfigLine] -> RevertableProperty DebianLike DebianLike
- httpsVirtualHost :: Domain -> WebRoot -> AgreeTOS -> RevertableProperty DebianLike DebianLike
- httpsVirtualHost' :: Domain -> WebRoot -> AgreeTOS -> [ConfigLine] -> RevertableProperty DebianLike DebianLike

# Documentation

installed :: Property DebianLike Source #

restarted :: Property DebianLike Source #

reloaded :: Property DebianLike Source #

type ConfigLine = String Source #

type ConfigFile = [ConfigLine] Source #

siteEnabled :: Domain -> ConfigFile -> RevertableProperty DebianLike DebianLike Source #

siteEnabled' :: Domain -> ConfigFile -> Property DebianLike Source #

siteDisabled :: Domain -> Property DebianLike Source #

siteAvailable :: Domain -> ConfigFile -> Property DebianLike Source #

modEnabled :: String -> RevertableProperty DebianLike DebianLike Source #

confEnabled :: String -> RevertableProperty DebianLike DebianLike Source #

Control whether an apache configuration file is enabled.

The String is the base name of the configuration, eg "charset" or "gitweb".

listenPorts :: [Port] -> Property DebianLike Source #

Make apache listen on the specified ports.

Note that ports are also specified inside a site's config file, so that also needs to be changed.

siteCfg :: Domain -> [FilePath] Source #

multiSSL :: Property DebianLike Source #

Configure apache to use SNI to differentiate between https hosts.

This was off by default in apache 2.2.22. Newver versions enable it by default. This property uses the filename used by the old version.

allowAll :: ConfigLine Source #

Config file fragment that can be inserted into a Directory stanza to allow global read access to the directory.

Works with multiple versions of apache that have different ways to do it.

iconDir :: ConfigLine Source #

Config file fragment that can be inserted into a VirtualHost stanza to allow apache to display directory index icons.

type WebRoot = FilePath Source #

virtualHost :: Domain -> Port -> WebRoot -> RevertableProperty DebianLike DebianLike Source #

A basic virtual host, publishing a directory, and logging to the combined apache log file. Not https capable.

virtualHost' :: Domain -> Port -> WebRoot -> [ConfigLine] -> RevertableProperty DebianLike DebianLike Source #

Like `virtualHost` but with additional config lines added.

httpsVirtualHost :: Domain -> WebRoot -> AgreeTOS -> RevertableProperty DebianLike DebianLike Source #

A virtual host using https, with the certificate obtained using `letsEncrypt`.

http connections are redirected to https.

Example:

    httpsVirtualHost "example.com" "/var/www"
    	(LetsEncrypt.AgreeTOS (Just "me@my.domain"))

Note that reverting this property does not remove the certificate from letsencrypt's cert store.

httpsVirtualHost' :: Domain -> WebRoot -> AgreeTOS -> [ConfigLine] -> RevertableProperty DebianLike DebianLike Source #

Like `httpsVirtualHost` but with additional config lines added.