#### Beyond Linux® From Scratch (systemd Edition) - Version 10.1

### Chapter 21. Mail Server Software

- Prev

  Mail Server Software

- Next

  Exim-4.94

- Up
- Home

# Dovecot-2.3.13

## Introduction to Dovecot

Dovecot is an Internet Message Access Protocol (IMAP) and Post Office Protocol (POP) server, written primarily with security in mind. Dovecot aims to be lightweight, fast and easy to set up as well as highly configurable and easily extensible with plugins.

This package is known to build and work properly using an LFS-10.1 platform.

### Package Information

- Download (HTTP): https://www.dovecot.org/releases/2.3/dovecot-2.3.13.tar.gz

- Download MD5 sum: f512bf1a4dac9ac994fddfb6bc5068ff

- Download size: 7.1 MB

- Estimated disk space required: 216 MB

- Estimated build time: 4.8 SBU

### Dovecot Dependencies

#### Required

libtirpc-1.3.1

#### Optional

CLucene-2.3.3.4, ICU-68.2, libcap-2.48 with PAM, Linux-PAM-1.5.1, Lua-5.4.2, MariaDB-10.5.8 or MySQL, OpenLDAP-2.4.57, PostgreSQL-13.2, SQLite-3.34.1, Valgrind-3.16.1, xfsprogs-5.10.0, Cassandra, lz4, stemmer and libsodium

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dovecot

## Installation of Dovecot

There should be dedicated users and groups for unprivileged Dovecot processes and for processing users' logins. Issue the following commands as the `root` user:

    groupadd -g 42 dovecot &&
    useradd -c "Dovecot unprivileged user" -d /dev/null -u 42 \
            -g dovecot -s /bin/false dovecot &&
    groupadd -g 43 dovenull &&
    useradd -c "Dovecot login user" -d /dev/null -u 43 \
            -g dovenull -s /bin/false dovenull

Install Dovecot by running the following commands:

    CFLAGS+=" -I/usr/include/tirpc" \
    LDFLAGS+=" -ltirpc" \
    ./configure --prefix=/usr                          \
                --sysconfdir=/etc                      \
                --localstatedir=/var                   \
                --rundir=/run                          \
                --docdir=/usr/share/doc/dovecot-2.3.13 \
                --disable-static                       \
                --with-systemdsystemunitdir=/lib/systemd/system &&
    make

To test the results, issue make -k check.

Now, as the `root` user:

    make install

## Command Explanations

CFLAGS+=...LDFLAGS+=...: build with libtirpc instead of the recently removed RPC code provided by GlibC.

`--disable-static`: This switch prevents installation of static versions of the libraries.

`--with-systemdsystemunitdir=/lib/systemd/system`: This switch is used to set the correct installation directory for systemd units.

`--with-ldap`: This switch enables OpenLDAP authentication support.

`--with-pgsql`: This switch enables PostgreSQL database support.

`--with-mysql`: This switch enables MySQL database support.

`--with-sqlite`: This switch enables SQLite database support.

`--with-lucene`: This switch enables CLucene full text search support.

`--with-lua`: This switch enables Lua plugin support. This includes a mail and push notification plugin.

## Configuring Dovecot

###

#### Config Files

`/etc/dovecot/dovecot.conf`, `/etc/dovecot/conf.d/*`, and `/etc/dovecot/local.conf`

###

#### Configuration Information

Copy an example configuration, which you can use as a starting point:

    cp -rv /usr/share/doc/dovecot-2.3.13/example-config/* /etc/dovecot

The following configuration is a simple proof of concept with IMAP service using local users for authentication and mailbox location. Reading files from the `conf.d` directory is commented out since the included example configuration requires OpenSSL and Linux PAM.

    sed -i '/^\!include / s/^/#/' /etc/dovecot/dovecot.conf &&
    chmod -v 1777 /var/mail &&
    cat > /etc/dovecot/local.conf << "EOF"
    protocols = imap
    ssl = no
    # The next line is only needed if you have no IPv6 network interfaces
    listen = *
    mail_location = mbox:~/Mail:INBOX=/var/mail/%u
    userdb {
      driver = passwd
    }
    passdb {
      driver = shadow
    }
    EOF

You will definitely want to read the official documentation at http://wiki2.dovecot.org/ if you plan to use Dovecot in a production environment.

###

#### Systemd Unit

To start the dovecot daemon at boot, enable the previously installed systemd unit with the following command:

    systemctl enable dovecot

## Contents

Installed Programs: doveadm, doveconf, dovecot, dovecot-sysreport, and dsync (symbolic link)
Installed Libraries: various internal plugins in `/usr/lib/dovecot`
Installed Directories: /etc/dovecot, /usr/{include,lib,libexec,share}/dovecot and /usr/share/doc/dovecot-2.3.13

### Short Descriptions

doveadm | is the Dovecot administration tool
doveconf | is Dovecot's configuration dumping utility
dovecot | is the IMAP and POP server
dovecot-sysreport | prints system information that is useful to the Dovecot developers when submitting bug reports upstream
dsync | is Dovecot's mailbox synchronization utility

Last updated on 2021-02-26 14:00:35 -0800

- Prev

  Mail Server Software

- Next

  Exim-4.94

- Up
- Home