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 updateDEBIAN_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.