Files
2026-07-09 18:07:40 -04:00

157 lines
6.3 KiB
Markdown

---
description: A quickstart tutorial for experienced MailOps admins to install and configure KumoMTA on Rocky Linux 9, covering prerequisites and a fast non-production setup.
---
# Quickstart Tutorial
!!!warning
This adbridged set of instructions assumes you are an experienced MailOps administrator looking for the basic commands needed for an install. **This tutorial will not result in a production-ready install.** More detailed instructions are in the [next section of the tutorial](./server_environment.md). This tutorial is not intended to be a replacement for reading the [full documentation](../index.md), but rather will show how to install and configure KumoMTA for a specific environment and serve as a basis to your own unique deployment.
<iframe width="560" height="315" src="https://www.youtube.com/embed/ClJX5mIxy7g?si=GcpBpegzsTRz01H5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Prerequisites
This tutorial requires the following:
* A basic understanding of Linux administration.
* Experience installing and managing an [MTA](https://en.wikipedia.org/wiki/Message_transfer_agent), preferably in a high-volume sending environment.
* A provisioned physical or virtual machine.
* A minimal installer for Rocky Linux 9.
!!!danger
Reaching the inbox in bulk requires extensive knowledge and experience in both MailOps and Deliverability. If you have not previously operated a high-volume email sending environment we do *not* recommend taking this step lightly. Those without the requisite skills are strongly recommended to utilize a SaaS relay solution.
1. Provision an AWS t2.xlarge (or larger) instance (or any physical or virtual server with at least 4 CPUs, 16Gb RAM, 300Gb Hard Drive).
!!!Note
The hardware here is for a medium throughput sending environment, but KumoMTA can technically run on a smaller footprint for low-volume environments. if your sending needs are smaller, you can deploy to a server with 1 CPU, 2GB RAM, and 10Gb of storage. Deployments with fewer than 4 cores are officially unsupported in production by our team.
1. [Install Rocky Linux 9](https://docs.rockylinux.org/guides/installation/). A minimal install is sufficient.
1. Update the OS and disable Postfix if needed
```bash
sudo dnf clean all
sudo dnf update -y
sudo systemctl stop postfix.service
sudo systemctl disable postfix.service
```
1. Add the KumoMTA repo to your config manager and yum install it like this:
```bash
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager \
--add-repo \
https://openrepo.kumomta.com/files/kumomta-rocky.repo
sudo yum install kumomta
```
!!!note
Alternatively you can install the kumomta-dev package in order to take advantage of the latest pre-release features. This is only recommended for testing environments.
1. The instructions above will place a default configuration file at /opt/kumomta/etc/policy/init.lua and start the KumoMTA service, if the service does not start by default it can be started and enabled with the following commands:
```bash
sudo systemctl start kumomta
sudo systemctl enable kumomta
```
Alternately you can run it manually with:
```bash
sudo /opt/kumomta/sbin/kumod --policy \
/opt/kumomta/etc/policy/init.lua --user kumod&
```
KumoMTA will now be installed and running the init.lua configuration from `/opt/kumomta/sbin/kumod`. If you started it manually, the `&` pushes the running process to the background, type 'fg' to bring it forward again.
1. Test your KumoMTA configuration using telnet or the tool of your choice:
```bash
telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain KumoMTA
ehlo moto
250-localhost.localdomain Aloha moto
250-PIPELINING
250-ENHANCEDSTATUSCODES
250 STARTTLS
MAIL FROM:test@example.com
250 OK EnvelopeAddress("test@example.com")
RCPT TO:test@example.com
250 OK EnvelopeAddress("test@example.com")
DATA
354 Send body; end with CRLF.CRLF
Subject: Test Message Using KumoMTA
This is a test.
.
250 OK ids=d7ef132b5d7711eea8c8000c29c33806
quit
221 So long, and thanks for all the fish!
```
1. View the log entries related to your test message:
```bash
sudo /opt/kumomta/sbin/tailer --tail /var/log/kumomta
```
```json
{
"type": "Reception",
"id": "d7ef132b5d7711eea8c8000c29c33806",
"sender": "test@example.com",
"recipient": "test@example.com",
"queue": "example.com",
"site": "",
"size": 320,
"response": {
"code": 250,
"enhanced_code": null,
"content": "",
"command": null
},
"peer_address": {
"name": "moto",
"addr": "127.0.0.1"
},
"timestamp": 1695847980,
"created": 1695847980,
"num_attempts": 0,
"bounce_classification": "Uncategorized",
"egress_pool": null,
"egress_source": null,
"feedback_report": null,
"meta": {},
"headers": {},
"delivery_protocol": null,
"reception_protocol": "ESMTP",
"nodeid": "d8e014c7-eaeb-4683-a56e-61324e91b1fc"
}
```
!!!note
In the default configuration, it will take about 10 seconds for the log files to flush and show the log entries in the `tailer` output.
You can speed that up by changing the `max_segment_duration` in the `init.lua` file, or through flushing the log files by restarting the server via
`sudo systemctl restart kumomta`.
These example log entries have been formatted for ease of reading in the documentation.
## Next Steps
Congratulations on completing the quickstart tutorial, some things you can do next:
1. Join our community Discord at [https://kumomta.com/discord](https://kumomta.com/discord) to ask questions and get feedback on your configuration.
1. Sign up for the latest KumoMTA news [here](https://kumomta.com/subscribe).
1. Work through the [full tutorial](./server_environment.md) to learn more about how to set up a working install.
1. Check out our [User Guide](../userguide/index.md) for more detailed instructions.