I have came across Mail-in-a-Box for a while since I have got ahold of two domain names (I don’t want to stick to my @gmail.com forever, plus it’s very awkward to spell davness to a bank clerk or anything similar).
But as a developer, I don’t want to just host mail. Sure, other solutions exist, but MIAB is by far the easiest to get going.
Of course, though, as someone who wants the most power per buck (or we can say, the most bang per VM as per the Clown Computing Initiative), I want to host a website, and a private link shortener, too.
MIAB in it’s vanilla form doesn’t allow me such a thing, so I have decided to fork and tune the Mail-in-a-Box project to my needs… yielding very positive results so far.
Here’s what I could do until now:
It supports Ubuntu LTS 20.04 and Debian 10
Why? Because I’m a madman. If I am going to work on this, then it’s not a bad idea to use up-to-date software. So I made it work with Ubuntu 20.04, too.
And because I am a madman, Debian gets support too. Because why not?
Support for Ubuntu 18.04 LTS was dropped.
Some love to the admin panel
Not that I actually meant to do a facelift to the admin panel, but it’s never a bad idea to update Bootstrap and JQuery (they were a major version behind) that it used. JQuery was fortunately a drop-in replacement. Bootstrap, not so much - it required some work to restore some of the functionalities.
However, after some polishing, I can argue that the admin panel now looks gorgeous
Port 25 blocked? No problem (I guess)
As you know, there are providers that block port 25 outbound (for example, Microsoft Azure and recently, Digital Ocean). If you happen to get across one of those, don’t think about switching cloud providers just yet!
There are third-party services like Sendgrid that you can use to actually deliver your mail. You could already do this on vanilla MIAB using a manual configuration, but I guess I’d make the process slightly easier by creating a menu for it in the admin panel:
Under the hood, it roughly just adjusts the postfix settings so that all mail is sent via the relay. I’m not entirely sure it works 100% correctly!
To the people who want to run their PHP-based websites (or anything more complicated, really), they’ll find out that Mail-in-a-Box will outright refuse to cooperate: Even if you change the
local.conf nginx file, it’s just a matter of time until the MiaB daemon reverses these changes. Here’s a solution for this issue:
On the non-default web folders (
/home/user-data/www/some.domain.tld), there will be an
.nginx.conf file, that you can change freely (This doesn’t apply to domains under
default). When the daemon updates, it uses that file to build the final
If you wish to revert to revert the file to it’s “original” status, delete it and do an web-update on the admin panel: It will be regenerated.
Use cases for this feature? Infinite!
/home/user-data/www/defaultignores this feature.
Other goodies (and planned ideas)
- Nextcloud has been updated to the latest available/stable version (
Ideas on the table
- Making it easier to implement TSIG AXFR transfers;
- Encrypt backups with a public PGP key provided by you;
- Expand DNS customization (more record types, etc.);
- Further webmail customization on the admin panel (Quotas, attachment limits, etc.)
Can I use it?
It’s free software, so yes! I am using it on my own box (currently testing stability, and it’s going great). However, if you prefer the maximum stability/support possible, maybe it’s best to stick to the vanilla Mail-in-a-Box. (because there is more support and less things to break) Though, if it breaks, you get to keep the pieces!
If you have any other weird ideas that you think are kind of out-of-scope of the mainline MiaB project, hit me up!