---
title: Install software packages
lastUpdated: 2025-11-01
slug: ispmail-trixie/install-the-software-packages
sidebar:
  order: 130
---

import { Aside } from "@astrojs/starlight/components";

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

```sh title="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_](https://letsencrypt.org/) 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](https://redis.io/docs/latest/operate/oss_and_stack/) 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.
