So I am currently using PurelyMail for my email server, as it’s hard to beat <$0.40/month for unlimited aliases, which I fully intend to replace when I can afford to justify a VPS. It is incredibly slow to use their webmail, and even checking for new emails can take awhile, so I was hoping to mitigate as much of that as possible by having a local copy of my emails and connecting to a self-hosted webmail/connecting my phone app to the local email server instead of the 3rd party one.
This would also act as an interim step to moving my email service to a non-US VPS smoothly, since I would have a copy of all my emails when the time comes.
The problem I am facing with this is being overwhelmed by choice, while not being sure of what I actually need. Every time I search this, I see suggestions of running a stack of 2-10 services, but not really a good explanation of why those services are needed - and some of the explanations seem to contradict each other (I use x services that seems to be feature complete, but I do this function with y service because that’s how I set it up 10 years ago), and I am just not sure what I actually need.
I’m also not sure the best way to safely set it up within my current setup. Is it doable with Traefik+Authelia in docker? Should it be it’s own dedicated VM? Should I make sure Traefik is watching port 143, or is it safe to forward the port directly to the container/VM?
For services I need to achieve what I want, what is actually necessary/not necessary?
- I see dovecot mentioned a lot, and it seems to have a lot of environment variables that aren’t at all listed in it’s docker documentation.
man dovecot
also did not seem very enlightening to me. - I’ve also seen imapsync mentioned to be paired with dovecot, what does it do that dovecot doesn’t?
- While trying to figure out what I need, I have also seen things like docker-mailserver. This seems to be far more than necessary for my use case though, should I bother looking into it, or keep it simple?
- For mail clients, what is the benefit of Thunderbird over something like Roundcube? Is it worth running a Thunderbird container if I want a webclient, or should I stick to a purpose-built one?
I just did this last week. I originally tried stalwart as that seemed to be a pretty small footprint (1 docker container) and had built-in PGP support. But I couldn’t get the built in acme bot to work with my dns provider, maybe you’ll have better luck.
I then tried mailcow and had e-mail flowing in under an hour. Of note, there are a lot of containers if you go the docker route, some may not be necessary if you just want email. I have so far left the default containers running as I don’t really care about the extra containers, it’s all running on a vm w 5 GB of RAM. I’m not concerned about PGP at this point as the server hard disk is encrypted via LUKs.
I can’t speak to your first 2 questions, dovecot comes with mailcow, but I didn’t have to set any specific settings for it.
I port forward directly to the vm, but it’s on it’s own isolated VLAN. use 993 for imap instead of 143, it requires SSL if using a proper mail server.
I use thunderbird for desktop and fairmail for android. mailcow dockerized does come with it’s own webclient SoGo, which didn’t seem too bad if that’s what you prefer.
I hope this helps!