File: //usr/share/man/man1/doveconf.1
.TH "DOVECONF" "1" "May 2026" "e5ac02a" "Dovecot"
.SH "NAME"
\fBdoveconf\fR - Dovecot's configuration dumping utility
.SH "SYNOPSIS"
.P
\fBdoveconf\fR \[lB]\fB-aCdFInPNUwx\fR\[rB] \[lB]\fB-c\fR \fIconfig-file\fR\[rB] \[lB]\fB-f\fR \fIfilter\fR\[rB]
.P
\fBdoveconf\fR \[lB]\fB-n\fR\[rB] \[lB]\fB-c\fR \fIconfig-file\fR\[rB] \fIsection_name\fR ...
.P
\fBdoveconf\fR \[lB]\fB-h\fR\[rB] \[lB]\fB-c\fR \fIconfig-file\fR\[rB] \[lB]\fB-f\fR \fIfilter\fR\[rB] \fIsetting_name\fR ...
.SH "DESCRIPTION"
.P
\fBdoveconf\fR reads and parses Dovecot's configuration files and converts them into a simpler format used by the rest of Dovecot.
.P
All standalone programs, such as dovecot(1), will first get their settings by executing doveconf, unless they can get the settings by connecting to the config UNIX socket.
.P
For system administrators, \fBdoveconf\fR is mainly useful for inspecting the current configuration in an easy human readable format, checking individual settings, and comparing configured values against their defaults.
.P
It can also be used to inspect configuration @groups by querying them directly.
.SH "OPTIONS"
.P
\fB-a\fR
.RS 0
.RS 4
.P
Show all settings with their currently configured values.
.RE 0
.RE 0
.P
\fB-C\fR
.RS 0
.RS 4
.P
TODO (check full config).
.RE 0
.RE 0
.P
\fB-c\fR \fIconfig-file\fR
.RS 0
.RS 4
.P
Read configuration from the given \fIconfig-file\fR. By default \fI/etc/dovecot/dovecot.conf\fR will be used.
.RE 0
.RE 0
.P
\fB-d\fR
.RS 0
.RS 4
.P
Show the setting's default value instead of the one currently configured.
.P
This can also be used to show the contents of default setting groups by querying the group name directly, for example:
.P
\fBdoveconf -d @mailbox_defaults/english\fR
.RE 0
.RE 0
.P
\fB-F\fR
.RS 0
.RS 4
.P
Show the configuration in a filter-based format, which is how Dovecot internally accesses it. This can be useful for debugging why configuration is not working as expected.
.P
The settings are grouped into different "structs", which are all accessed independently. A new struct is started in the output as \fB# struct_name\fR.
.P
Next is the list of filters, which begin with \fB:FILTER\fR followed by the filter in the event filter syntax. An empty filter matches everything. The filters are processed from end to beginning. The settings are taken from the first matching filter (i.e. the last in the output). Since not all filters have all settings defined, the processing continues until all settings have been found.
.P
Named list filter such as \fBprotocols = imap pop3\fR are shown as \fBprotocol/imap=yes\fR and \fBprotocol/pop3=yes # stop list\fR. The "stop list" means that the value is not modified by any following filters that match. If the setting was defined as \fBprotocols { imap=yes, pop3=yes }\fR, the "stop list" would be missing, because this setting is only adding the protocols, not replacing the list.
.P
Settings groups are included in \fB:INCLUDE\fR lines. The includes are processed last, after all filters have been applied, so all settings inside the groups can be overridden.
.RE 0
.RE 0
.P
\fB-f\fR \fIfilter\fR
.RS 0
.RS 4
.P
Show the matching configuration for the specified \fIfilter\fR condition. The \fIfilter\fR option string has to be given as \fIname\fR \fB=\fR \fIvalue\fR pair. For multiple filter conditions the \fB-f\fR option can be supplied multiple times.
.P
Possible names for the \fIfilter\fR are:
.RS 4
.P
\fBprotocol\fR : The protocol, e.g. imap or pop3
.RE 0
.RS 4
.P
\fBlocal_name\fR : The local hostname for TLS SNI matching, e.g. mail.example.com.
.P
This matches filters which were configured like:
.RS 4
.P
\fBlocal_name mail.example.com { # special settings }\fR
.RE 0
.RE 0
.RS 4
.P
\fBlocal\fR : The local hostname or IP address.
.P
This matches filters which were configured like:
.RS 4
.P
\fBlocal 1.2.3.0/24 { # special settings }\fR
.RE 0
.RE 0
.RS 4
.P
\fBremote\fR : The client's hostname or IP address.
.P
This matches filters which were configured like:
.RS 4
.P
\fBremote 1.2.3.0/24 { # special settings }\fR
.RE 0
.RE 0
.RE 0
.RE 0
.P
\fB-h\fR
.RS 0
.RS 4
.P
Hide the setting's name, show only the setting's value.
.RE 0
.RE 0
.P
\fB-I\fR
.RS 0
.RS 4
.P
TODO (dump config import).
.RE 0
.RE 0
.P
\fB-n\fR
.RS 0
.RS 4
.P
Show only settings with non-default values. This is the default behavior when no other parameters are given.
.RE 0
.RE 0
.P
\fB-N\fR
.RS 0
.RS 4
.P
Show settings with non-default values and explicitly set default values.
.RE 0
.RE 0
.P
\fB-s\fR
.RS 0
.RS 4
.P
Show also hidden settings. The hidden settings should not be changed normally.
.RE 0
.RE 0
.P
\fB-P\fR
.RS 0
.RS 4
.P
Show passwords and other sensitive values.
.RE 0
.RE 0
.P
\fB-U\fR
.RS 0
.RS 4
.P
Ignore all unknown settings in config file.
.RE 0
.RE 0
.P
\fB-w\fR
.RS 0
.RS 4
.P
TODO (hide obsolete warnings).
.RE 0
.RE 0
.P
\fB-x\fR
.RS 0
.RS 4
.P
Expand configuration variables (e.g. \fB$ENV:foo\fR) and show file contents (from e.g. \fBssl_server_key_password = </etc/ssl/password.txt\fR).
.RE 0
.RE 0
.P
\fIsection_name\fR
.RS 0
.RS 4
.P
Show only the current configuration of one or more specified sections.
.RE 0
.RE 0
.P
\fIsetting_name\fR
.RS 0
.RS 4
.P
Show only the setting of one or more \fIsetting_name\fR(s) with the currently configured value. You can show a setting inside a section using \fB/\fR as the section separator, e.g. \fBservice/imap/executable\fR.
.RE 0
.RE 0
.SH "EXAMPLE"
.P
Show only settings with non-default values (default behavior):
.P
.RS 2
.nf
doveconf -n
.fi
.RE
.P
Show all settings with their default values:
.P
.RS 2
.nf
doveconf -ad
.fi
.RE
.P
Show the contents of a default settings group:
.P
.RS 2
.nf
doveconf -d @mailbox_defaults/english
.fi
.RE
.P
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.
.P
.RS 2
.nf
doveconf -f local=10.0.0.110 -f remote=10.11.1.2 -f protocol=pop3 -n
.fi
.RE
.P
Ask \fBdoveconf\fR for a global setting:
.P
.RS 2
.nf
doveconf mail_plugins
.fi
.RE
.P
.RS 2
.nf
mail_plugins = quota
.fi
.RE
.P
Ask \fBdoveconf\fR for a protocol specific setting. Uses the \fB-h\fR option, in order to hide the setting's name:
.P
.RS 2
.nf
doveconf -h -f protocol=imap login_greeting
.fi
.RE
.P
.RS 2
.nf
Dovecot ready.
.fi
.RE
.P
Dump a whole configuration section:
.P
.RS 2
.nf
doveconf service
.fi
.RE
.P
.RS 2
.nf
service imap {
...
}
service pop3 {
...
}
.fi
.RE
.P
Or dump only the imap service:
.P
.RS 2
.nf
doveconf service/imap
.fi
.RE
.P
.RS 2
.nf
service imap {
...
}
.fi
.RE
.SH "REPORTING BUGS"
.P
Report bugs, including \fIdoveconf -n\fR output, to the Dovecot Mailing List \fI\(ladovecot@dovecot.org\(ra\fR. Information about reporting bugs is available at: \fI\(lahttps://dovecot.org/bugreport.html\(ra\fR
.SH "SEE ALSO"
.P
doveadm(1)