Skip to content

Install software packages

Let’s install the necessary Debian packages. Run this command as root on your server as root:

Run this on your server
apt update
DEBIAN_FRONTEND=noninteractive \
apt -y install postfix-mysql dovecot-mysql \
dovecot-imapd dovecot-lmtpd dovecot-managesieved \
apache2 python3-certbot-apache libapache2-mod-php \
php-intl php-mbstring php-xml unzip certbot \
roundcube-mysql roundcube roundcube-plugins swaks libnet-ssleay-perl \
mutt unattended-upgrades mariadb-server \
rspamd redis-server opendkim-tools bind9-dnsutils pwgen

While the server is downloading and installing the packages, let me give you a quick explanation of each package:

  • postfix / postfix-mysql
    Postfix is the MTA (mail transport agent) that speaks SMTP to send and receive emails. This package installs Postfix with support for MariaDB databases.
  • dovecot
    Dovecot manages the emails on disk and lets users access them via IMAP.
    • -lmtpd
      LMTP (Local Mail Transfer Protocol) provides the glue between Postfix and Dovecot.
    • -managesieved
      Lets you configure automatic processing rules on the server. Like out-of-office emails or filtering incoming emails to folders.
    • -mysql
      Makes Dovecot able to query MariaDB databases.
  • apache
    Web server. Needed for webmail.
  • php-*
    PHP is the programming language that Roundcube (the webmail software) is written in.
  • mariadb-server
    Database server that helps us store control data in a MariaDB database on the mail server.
  • roundcube / roundcube-mysql
    Webmail software that lets you access your emails in any web browser. Roundcube speaks to Dovecot to fetch emails. And to Postfix to send emails.
  • swaks / libnet-ssleay-perl
    The SWiss Army Knife of Smtp. Helpful command-line tool to send test emails to a mail server. The additional SSL package is needed to test encrypted connections.
  • certbot
    Gets a free TLS certificate from Let’s Encrypt for encrypting network communication.
  • mutt
    A console-based program that can speak IMAP and also read Maildirs directly. Very helpful for testing the functionality of your mail server. Think of it as a text-based Thunderbird.
  • unattended-upgrades
    Installs security updates automatically.
  • rspamd
    It reliably detects and blocks spam. Also handles adding DKIM signature to outgoing email to prevent spoofing your domains.
  • redis-server
    Rspamd requires a Redis server as its storage of learned spam emails.
  • opendkim-tools
    Not strictly necessary. But a nice tool to verify DKIM signatures. You know, for science.
  • bind9-dnsutils
    Provides the infamous dig command for an easy way to do DNS lookups.
  • pwgen
    A password generator.