Email servers are a bit of a mess. Having set up a server manually, linking postfix, dovecot and a database, I completely understand why everyone recommends against setting up your own email server. When I started a second server and wanted to try it again, I tried out Mailcow. Mailcow was miles better, being able to set it up in about an hour rather that three days. That said, Mailcow is a dockerised application stack making it easy to administer but fairly resource heavy, especially on a low cost VPS like the one I was using. Mailcow is very good, having an web page for administration and inbuilt web client but its resource use reduced its appeal to me.
Enter Maddy, a complete email stack written in go as a single binary. Maddy impliments a SMTP application and an IMAP server, complete with support for multiple domains and accounts. Maddy is entirely configured from a single config file and is very easy to set up with its tutorial. It also generates DKIM keys and dumps them in a text file to be copied to your DNS records. The downsides is that it does not have a spam catcher and its install is a bit of a pain with permissions (but I expect that to be resolved once it starts to be packaged by distros). It currently lacks a web interface, being entirely driven from its userspace command line tool, but that is fairly easy to use. Something that urks me about the tool is that it lacks the option to set up IMAP when a user is added. Additionally its aliasing table isn’t the clearest thing on their site, and lacks catch-alls. For me that is a bit of a pain as I tend to use the email for automated notifications, which all send to their own unique addresses.
In terms of performance, I am finding it works pretty well. I’m running it on an arm vps and its using barely any ram or cpu. Plus, its running on arm, with nothing stating so in the documentation. I’m chalking that up to it being written in go, but its a plus in my books regardless.
Maddy is very clearly advertised as a beta, and I’d like to see some changes in the administration tools, but I’m still very impressed with the project. It has been able to provide a very easy to use and set up email server for all of the needs I have. While I will probably not use it for a main email (more of a distrust of my own hosting and people expecting Google/Microsoft servers), it certainately fulfuls the requirements of a secondary email. I have been very impressed with the project, and hope to see it grow.