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 run mbsync/isync to keep a maildir copy of my email (hosted by someone else).
You can run it periodically with cron or systemd timers, it connects to an IMAP server, downloads all emails to a directory (in maildir format) for backup. You can also use this to migrate to another IMAP server.
If the webmail sucks, I wouldn’t run my own. I would consider using Thunderbird. It is a desktop/Android application. It syncs mail to your desktop/phone, so most of the time, it’s working with local storage so it’s much faster than most webmails.
I too looked for a way to move my imap emails out of the cloud, and after looking for years, 2 came along in a matter of months. Mail Archiver and Open Archiver. I’ve been using Open Archiver for about 2 months and like it. I just VPN to home (well, Pangolin), and have it as a proxied web page to search old emails.
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!
I run this setup, mostly. For backups, I just run a BorgBackup cronjob over the Maildir and the configuration folders.
My mail client is mu4e. Advantages over a web-based mail client: I can safely encrypt my e-mail (web-based GnuPG has too many flaws) and all the e-mails are stored on my hard disk for searching and archiving.
I’m low key on the lookout for something like this as well, to gain independence from mail providers, and I’ve had a browser tab for Mail Archiver open for a few months now but never got around to trying it out. Maybe this would solve your problem?