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