---
title: Install software packages
lastUpdated: 2025-08-14
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 \
    ufw mutt unattended-upgrades mariadb-server
```

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 emsrc/content/docs/ispmail-trixie/140-install-packages.mdx emails using 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.
- **ufw** \
  Universal FireWall. A simple tool to manage firewall rules to limit access to your server. TODO: omit?
- **rspamd** \
  It reliably detects spam. Also handles adding DKIM signature to outgoing email to prevent spoofing your domains. TODO:
  later/optional
- **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.
