I’ve been using VirtualMin for many years on different VPS’s. I’m planning to spin up a VPS, likely Ubuntu 20, primarily for Mailcow ( https://mailcow.email/ ) (which is a bunch of Docker containers) for email.
I would like to keep using VirtualMin for management, and potentially moving some websites over to the same server (performance won’t be an issue), and I have so much familiarity and trust with it.
I’m not very far into Mailcow yet, but my plan is to route all the email ports via VirtualMin to the Mailcow container and disable inbound email in Virtualmin. And have Virtualmin setup a proxy for a hostname to route http and https for webmail. And have Virtualmin use the Mailcow container for SMTP to send system emails (alternately, I could send outbound email via an external SMTP relay). I’m not quite sure how user account management would work.
Does anyone have any tips or thoughts on if this is a terrible idea or an OK idea?
mailcow has preconfigured webmail including CalDAV and CardDAV. I also suspect the deliverability features like DKIM and DMARC are easier to setup. I’ve done the DIY managed email server thing, mostly for outbound email - it’s a pain and I’m lazy. I really want to use a popular bundle that is single purposed. Also, it should be easier to keep a Docker based email server up to date.
DKIM and DMARC are actually easier to setup in Virtualmin, considering that if you manage the DNS with Virtualmin it’s all automatic.
Sure, Mailcow will print the information you need but you’d still need to add it in the nameservers yourself.
Also worth noting that Mailcow technically doesn’t support SNI on IMAP/SMTP and is more of a single domain solution.
That being said it works great if you need the entire “collaboration” thingy…
As for the question itself, don’t!
Both Mailcow and Virtualmin requires a fresh install before installation.
Trying to force one on top of the other will most certainly break things.
If you have a beefy bare metal you’d want to install this on, virtualize it instead and setup Virtualmin on one, pointing the MX records to the Mailcow installation.
This will save you a heap of troubles and you won’t receive the “this is an unsupported installation” from either the Virtualmin or the Mailcow community when you ask for help
Thanks! I guess I will have to manage the Mailcow server some other way. It’s a VPS, not bare metal, and I don’t think I can do nested virtualization… not that I’d want to go down that rabbit hole.
I never have hosted my own DNS… scares me to have the VPS as that much of a single point of failure.
Interesting about the Mailcow + SNI, I will have to look into it, though, in my use case, it doesn’t really matter, as the users will be myself or close friends and family.
Okey, no, nested virt is generally not a good solution.
But what kind of management are you looking for?
Mailcow will take care of all the mail-related stuff, they provide a script for updating and system updates you just do via SSH.
What else do you need?
You don’t have to host your own DNS either, you can use whichever registrar/provider you are using today.
If you’d want some more specific pointers when you get that far, feel free to PM me if you want.
I have setup quite a few Mailcow instances over the last few years (although not as many as I have with Virtualmin )
Ideally I would have consolidated my existing VPSs (that are very long in the tooth) onto this new VPS for mailcow. Fewer VPS’s to worry about would have been nice, and a little cheaper. (It’s laughable, my original VPS came with 256MB of RAM. Now I get 16GB of RAM for less than half the price!)
Also I was worried about mailcow backups, but I think I need to approach that differently anyway - the mailboxes are too large for nightly full backups. I’ll have to look into the mailcow live ~rsync feature.