Before you start
- Public TCP port 587 provisioned by the installation administrator (installer public_tcp_ports, or modules.py public-tcp afterwards) and open in the cloud and host firewall
- The installation's TLS issuer: Hakopod issues and renews the certificate for this service's generated hostname, and apps connect to that hostname on port 587
- Create a sending account from the service terminal with: maddy -config "/etc/maddy/$MADDY_DELIVERY.conf" creds create app@your-domain
- Publish SPF, DMARC and the DKIM record from /data/dkim_keys/*.dns for the sender domain before sending
- Direct delivery needs outbound TCP 25 and reverse DNS for the server hostname; many cloud providers block port 25, so use relay delivery there
- Send-only: there is no inbound mail on port 25 and no IMAP mailbox
Required secrets
Configure these scoped secrets during deployment review in your Hakopod installation. Secret values stay out of the application TOML.
-
relay-password
Use this preset
- Open the Catalog in your own Hakopod dashboard and select Maddy SMTP.
- Choose the project, environment, and application name. Set the required values and secret references.
- Review the generated configuration, resource requests, networking, and storage plan.
- Deploy, then inspect readiness and logs. Configure backups for persistent data before relying on the service.
Read the upstream setup documentation ↗
View native TOML and setup notes ↗
Pinned container image
foxcpp/maddy:0.9.6@sha256:e1074e92a452b84d1135ebe8ab831c5f541d33dcbd39e38fab740a53bbf2f97c
The catalog pins this image for reproducibility. Review upstream updates and compatibility before changing it.