Skip to content

Installing MailDock on Linode (Akamai)

Linode blocks outbound mail on new accounts until a support request is approved. This guide covers that request and reverse DNS for running MailDock.

Linode has blocked outbound port 25 on new accounts since 2019, and is clear about it rather than quiet. The unblock process asks real questions and approves real answers.

The request

Be concrete. “Mail for my own domains and my family’s” and “transactional mail for my SaaS, no marketing” both get approved routinely. Vagueness does not. If you can say roughly what volume you expect, say it — a number that is obviously small is reassuring.

Reverse DNS has an order

The panel will not accept a PTR until the forward record already resolves to that IP. So:

  1. Create the Linode and note the IP.
  2. Point mail.example.com at it with an A record, and wait for it to resolve.
  3. Then set the reverse DNS on the Network tab.

Doing it the other way round produces an error message that does not explain itself, and people conclude the panel is broken.

Sizing

The 2 GB Nanode is the floor and works. Disk is 50 GB, which is a reasonable amount of mail.

IPv6

Every Linode gets IPv6.

From 0.8.0 MailDock can serve IPv6, and it is off until you switch it on. Until you do, publish no AAAA record for any name this server answers — not the mail hostname, and not webmail., postmaster. or any domain you point here later: with IPv6 off nothing answers there, so mail servers and certificate challenges that prefer IPv6 fail. Keeping inbound IPv6 closed in the provider’s firewall stays sensible while it is off.

To serve IPv6, install with mailctl install --ipv6, or set IPV6_ENABLED=true in /opt/mailserver/.env and run npm i -g @maildock/mailctl@latest && mailctl upgrade — the CLI first, because an older one has no IPv6 override to apply. It needs Docker 27 or later, which forwards IPv6 so that each client keeps its own address — on an older Docker an IPv6 client would look like the server itself and could relay mail without signing in, which is why the installer refuses it. Then:

  • run mailctl doctor and wait for its ipv6 row to read ✔;
  • open the mail and web ports to IPv6 in the provider’s firewall;
  • publish an AAAA record for the mail hostname, and set the reverse DNS (PTR) for the server’s IPv6 address in the provider’s console;
  • outbound mail stays on IPv4 unless you turn outbound IPv6 on, which MailDock refuses until that PTR is in place.

The details are in the IPv6 page of the docs.

Then the standard install.

Checked against Linode’s own documentation on . Providers change their policies without telling us — tell us if this is out of date. Sources: Linode networking documentation