Module 2 · Lesson 4 of 25

Installing KumoMTA

Part of KumoMTA: High-Volume Sending Engine — Installation, Lua Primer & systemd.

Supported OS: Debian 12, Ubuntu 22.04/24.04, Rocky/Alma 9. Don't try Alpine — musl libc breaks DNS resolution under load.

Install via the official repo (Debian/Ubuntu):

curl https://openrepo.kumomta.com/files/kumomta-debian.sources \
  | sudo tee /etc/apt/sources.list.d/kumomta.sources
apt update
apt install kumomta

Default paths:

Path Purpose
/opt/kumomta/sbin/kumod The daemon binary
/opt/kumomta/etc/policy/init.lua Main config
/var/spool/kumomta/ Queue spool
/var/log/kumomta/ JSON event logs
/etc/systemd/system/kumomta.service systemd unit

Hello world via systemd:

systemctl enable --now kumomta
journalctl -u kumomta -f

The default init.lua listens on 2525 (not 25 — port 25 binding requires CAP_NET_BIND_SERVICE in the unit file).

🎯 In production, bind 25 only on relay-from-trusted hosts. Submission goes on 587/465 with AUTH.

Sign in to keep track of what you have read.

Pulse · self-hosted sending

Own the infrastructure your pipeline depends on.

One install script on your own server. Pulse sets up the MTA, mailboxes, certificates and dashboard; you add domains and start sending.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Also from us:Beat — monitoring that tells you the fixConsulting — $65/hr, no retainer