critical
The installation is a regular package install. The order matters in two places, and both are easy to miss.
The group is created in advance if you need a specific numeric ID. The package will create it itself, but with an ID the system chooses. On nodes where group IDs must match across machines, the group is created before installation.
The license key goes in before the first start. Without it the engine will not start, and the prepared machine will sit idle while the key is being requested.
The configuration is checked, not accepted as is. The package installs a template file, and it lacks lines without which the manual considers the node unconfigured — the responsible person’s address among them.
Starting is needed only once. After that the engine comes up by itself when the machine boots.
The debugger is installed optionally — with it the engine collects more information on a crash. The decision is worth making before a crash happens.
So the license key and group creation steps stay entirely with a human, while the Hub takes over the configuration check — its file replaces the template.
⚠️ One step it does not cover: the responsible person’s address. The Hub does not write it and the template does not contain it — so the watchdog is left without a channel (pmtawatch).
What is decided before installation and what after:
| Step | When |
|---|---|
| numeric group ID | before installation, otherwise the system chooses |
| license key | before the first start |
| debugger | before the first crash, not after |
| configuration | after installation, but before live sending |
The first three cannot be cheaply reversed after the fact. Changing the group ID after installation means redoing permissions across all directories; a debugger installed after a crash will tell you nothing about that crash.
Do not keep the template. It is good for making sure the engine works and for nothing beyond that.
# the order in which the steps cannot be rearranged groupadd -g 5000 pmta # before installation, if the ID matters rpm -Uvh PowerMTA-*.rpm cp license /etc/pmta/license # before the first startsystemctl start pmta
what people get wrong and how it ends3 mistakes▶
§ 2.4
§ 2.4
§ 2.4
4 relations
License fileThe file is put in place during installation; without it the engine will not start. § 2.2Initial configurationThe sixth installation step: the template is checked against the requirements, not accepted as is. § 2.2
Prepare a machine for the engineAll the machine requirements must be met before this step. § 1.2
Upgrading the engineA first installation goes through the same steps, only without the license compatibility check. § 2.2Installing on WindowsA related procedure: they share some of the steps. § 2.1Removing the engineA related procedure: they share some of the steps. § 2.4Running in an imageThe procedure in which the mechanism is applied. § 11.23
pmta show version && pmta show license pmta test config ps -ef | grep -c '[p]mtad\|[p]mtawatch'
3 articles
◇The activation key is a prerequisite for installation, not a step after itWithout an activation key from SparkPost support the engine neither installs nor runs, and the license tier sets the outbound connection ceiling: on Standard everything above 200 is ignored.◇Cloud restrictionsClouds restrict outbound mail on port 25 until you ask them to lift the limit, and mailbox providers treat their address ranges with suspicion.◇How to turn a sending plan into hardwareTwo constants for sizing any node: about 2 KB of memory per queued recipient and spool space proportional to the total size of the messages.