DOVECONF(1)

πŸ’– DOVECONF(1) πŸ’–

okay bestie, welcome to the doveconf page β€” aka Dovecot's configuration dumping utility. Yes that's the whole name section, we're doing it, let's go ✨


πŸ¦‹ SYNOPSIS

doveconf [-aCdFInPNUwx] [-c config-file] [-f filter]

doveconf [-n] [-c config-file] section_name ...

doveconf [-h] [-c config-file] [-f filter] setting_name ...

🌸 DESCRIPTION

So doveconf reads Dovecot's configuration files, parses them, and turns them into a way simpler format that the rest of Dovecot actually uses. That's its whole thing πŸ’…

Every standalone program β€” hi, dovecot(1) πŸ‘‹ β€” gets its settings by running doveconf first, unless it can just get them by connecting to the config UNIX socket. Either way, it gets fed.

For sysadmins, doveconf is mainly the girl who:

  • lets you inspect your current configuration in an easy, human-readable format πŸ‘€
  • checks individual settings πŸ”
  • compares your configured values against their defaults βš–οΈ

And she can also inspect configuration @groups by querying them directly, because she's versatile like that πŸŽ€


✨ OPTIONS ✨

  • -a β€” show all the settings, with the values they're currently configured to. all of them. every single one. she's thorough πŸ’–
  • -C β€” TODO (check full config). yeah. that's literally what it says. moving on πŸ™ˆ
  • -c config-file β€” read the configuration from the config-file you give her. if you don't say anything, she defaults to /etc/dovecot/dovecot.conf. no cap 🫢
  • -d β€” show the setting's default value instead of whatever's currently configured. you can also use this to show the contents of default setting groups by querying the group name directly, like:
doveconf -d @mailbox_defaults/english

iconic behaviour honestly 🌈

  • -F β€” show the configuration in a filter-based format, which is how Dovecot internally accesses it. super useful for debugging why your config is not doing what you expected 😭

Here's the tea: the settings get grouped into different "structs", and each struct is accessed independently. A new struct starts in the output as # struct_name.

Next up is the list of filters, which begin with :FILTER followed by the filter in the event filter syntax. An empty filter matches everything. The filters are processed from end to beginning, and the settings are taken from the first matching filter (i.e. the last one in the output). Since not all filters have all settings defined, the processing just keeps going until all the settings have been found.

Named list filters such as protocols = imap pop3 are shown as protocol/imap=yes and protocol/pop3=yes # stop list. The "stop list" means the value is not modified by any following filters that match. But if the setting was defined as protocols { imap=yes, pop3=yes }, the "stop list" would be missing, because this setting is only adding the protocols, not replacing the list. subtle but important, iykyk ✨

Settings groups are included in :INCLUDE lines. The includes are processed last, after all the filters have been applied, so all settings inside the groups can be overridden. she plans ahead πŸ’…

  • -f filter β€” show the matching configuration for the filter condition you specify. The filter option string has to be given as a name = value pair. And for multiple filter conditions? Just supply the -f option multiple times, she can handle it πŸ’ͺ

Possible names for the filter are:

  • protocol : the protocol, e.g. imap or pop3
  • local_name : the local hostname for TLS SNI matching, e.g. mail.example.com.

This matches filters which were configured like:

local_name mail.example.com { # special settings }
  • local : the local hostname or IP address.

This matches filters which were configured like:

local 1.2.3.0/24 { # special settings }
  • remote : the client's hostname or IP address.

This matches filters which were configured like:

remote 1.2.3.0/24 { # special settings }
  • -h β€” hide the setting's name, show only the setting's value. mysterious. lowkey serving πŸŽ€
  • -I β€” TODO (dump config import). another mystery bestie πŸ™ˆ
  • -n β€” show only settings with non-default values. this is the default behavior when no other parameters are given. so if you're wondering what she does with zero instructions β€” it's this 🫢
  • -N β€” show settings with non-default values and explicitly set default values. both. at once. πŸ’–
  • -s β€” show also hidden settings. the hidden settings should not be changed normally, so like… hands off bestie ⚠️
  • -P β€” show passwords and other sensitive values. πŸ‘€ careful who's looking over your shoulder fr fr
  • -U β€” ignore all unknown settings in the config file. she simply will not acknowledge them πŸ’…
  • -w β€” TODO (hide obsolete warnings). yeah. another TODO. we respect the honesty πŸ™ˆ
  • -x β€” expand configuration variables (e.g. $ENV:foo) and show file contents (from e.g. ssl_server_key_password = </etc/ssl/password.txt). she opens the envelope for you πŸ’Œ
  • section_name β€” show only the current configuration of one or more specified sections.
  • setting_name β€” show only the setting of one or more setting_name(s) with the currently configured value. and you can show a setting inside a section by using / as the section separator, e.g. service/imap/executable. slash is the vibe πŸ¦‹

🌟 EXAMPLE

Show only settings with non-default values (default behavior):

doveconf -n

Show all settings with their default values:

doveconf -ad

Show the contents of a default settings group:

doveconf -d @mailbox_defaults/english

When Dovecot was configured to use different settings for some networks/subnets it is possible to show which settings will be applied for a specific connection.

doveconf -f local=10.0.0.110 -f remote=10.11.1.2 -f protocol=pop3 -n

Ask doveconf for a global setting:

doveconf mail_plugins

mail_plugins = quota

Ask doveconf for a protocol specific setting. Uses the -h option, in order to hide the setting's name:

doveconf -h -f protocol=imap login_greeting

Dovecot ready.

Dump a whole configuration section:

doveconf service

service imap {
  ...
}
service pop3 {
  ...
}

Or dump only the imap service:

doveconf service/imap

service imap {
  ...
}

😭 REPORTING BUGS

Found a bug? Report it β€” and please include your doveconf -n output β€” to the Dovecot Mailing List ⟨dovecot@dovecot.org⟩. All the info you need about reporting bugs lives at ⟨https://dovecot.org/bugreport.html⟩. do it for the girls πŸ’–


πŸ‘‘ SEE ALSO

doveadm(1)


and that's the whole page bestie, you ate πŸ’…

this was brought to you by Dovecot, source/version f979264, dated April 2026 β€” DOVECONF(1), periodt ✨

πŸ“¦ where this page comes from