# Generated by Chef

## Dovecot configuration file

# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration

# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.

# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace  "

# Most (but not all) settings can be overridden by different protocols and/or
# source/destination IPs by placing the settings inside sections, for example:
# protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { }

# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr
# --sysconfdir=/etc --localstatedir=/var

# Protocols we want to be serving.
<% unless @protocols.nil? -%>
protocols = <%= DovecotCookbook::Conf.protocols(@protocols) %>
<% else -%>
#protocols = imap pop3 lmtp
<% end -%>

# A comma separated list of IPs or hosts where to listen in for connections. 
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
<%= DovecotCookbook::Conf.attribute(@conf, 'listen', '*, ::') %>

# Base directory where to store runtime data.
<%= DovecotCookbook::Conf.attribute(@conf, 'base_dir', '/var/run/dovecot/') %>

# Name of this instance. In multi-instance setup doveadm and other commands
# can use -i <instance_name> to select which instance is used (an alternative
# to -c <config_path>). The instance name is also added to Dovecot processes
# in ps output.
<%= DovecotCookbook::Conf.attribute(@conf, 'instance_name', 'dovecot') %>

# Greeting message for clients.
<%= DovecotCookbook::Conf.attribute(@conf, 'login_greeting', 'Dovecot ready.') %>

# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
<%= DovecotCookbook::Conf.attribute(@conf, 'login_trusted_networks') %>

# Space separated list of login access check sockets (e.g. tcpwrap)
<%= DovecotCookbook::Conf.attribute(@conf, 'login_access_sockets') %>

# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
# proxying. This isn't necessary normally, but may be useful if the destination
# IP is e.g. a load balancer's IP.
<%= DovecotCookbook::Conf.attribute(@conf, 'auth_proxy_self') %>

# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
<%= DovecotCookbook::Conf.attribute(@conf, 'verbose_proctitle', false) %>

# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
<%= DovecotCookbook::Conf.attribute(@conf, 'shutdown_clients', true) %>

# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
<%= DovecotCookbook::Conf.attribute(@conf, 'doveadm_worker_count', 0) %>
# UNIX socket or host:port used for connecting to doveadm server
<%= DovecotCookbook::Conf.attribute(@conf, 'doveadm_socket_path', 'doveadm-server') %>

# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
<%= DovecotCookbook::Conf.attribute(@conf, 'import_environment', 'TZ') %>

##
## Dictionary server settings
##

# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".

<% if @conf['dict'].kind_of?(Hash) -%>
dict {
<%   @conf['dict'].sort.each do |key, value| -%>
  <%=  key %> = <%= DovecotCookbook::Conf.value(value) %>
<%   end -%>
}
<% else -%>
dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
<% end -%>

# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf

# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf
