De-googling in 2025 (but in 2026).


TLDR

The stack is Mailcow running on an 8GB VPS hosted in the EU by Hetzner. Five or so months in with nearly zero issues and 99% uptime.

One day I wanted to play Warframe with a friend, but the login was tied to an old Gmail account I hadn’t touched in years. Despite entering the correct credentials from the same state where the account was created, Google refused the sign-in. “I’ll just verify with my phone,” I thought, but that didn’t work either. The account had been setup years ago and I didn’t have a phone attached to begin with, but they still gave me the option to recover it if I added my phone, so I did.

I wrestled with Google’s recovery flow for a couple days, letting cooldown periods lapse to avoid timeouts, yet every attempt ended in a brick wall. From what I could gather, the account had probably been disabled for inactivity, but I’ll never know, literally nothing is explained in their dialogue. I lost the account and whatever (likely unimportant) mail it contained. Google Support is effectively non-existent for regular people, and the recovery options are close to zero. Thankfully, after a quick chat with the Warframe support team, I had my game account back within 24 hours.

The whole series of events irritated me enough that I threw in the towel and learned to host my own email. I already self-host the rest of my cloud, so it felt like the logical solution. If you fall into the Gen Z / Millennial bracket, odds are your email and personal-cloud provider is one of the big three: Apple, Google, or Microsoft. Every message you’ve sent, every account you’ve registered, everything sits in these private clouds that can be locked away for no rhyme or reason.

A quick disclaimer: I would not recommend this to a novice labber or anyone without solid IT skills. That said, thanks to modern projects, standing up a mail server is surprisingly trivial these days, basically a terminal and a couple of hours reading docs. Still, you must handle backups, updates, and hardening yourself.

Now for the meat. There are several slick containerized stacks that include all the bells and whistles, but you need to solve infrastructure first. I never planned to run mail from my homelab; residential IPs are hit or miss for blacklists and deliverability, and you’re stuck wrestling with dynamic DNS. Most VPS providers also block outbound port 25 by default, forcing you to relay through a service like SMTP2GO. That works well, 1000 free messages a month covers 99% of users, could even add whole families, but I didn’t want to depend on another 3rd party for this. Hetzner will open these ports after your first billing cycle upon request, and it’s basically automated so you don’t have to wait long after.

I chose Mailcow, though I also evaluated Mail-in-a-Box and later discovered Stalwart. Stalwart is now on my shortlist for a future migration if I decide to ever change. Mailcow (and Stalwart) are heavier than MIAB and want at least 8 GB of RAM. They pack in more utilities and services than MIAB to my understanding. I initially tried using my 4 GB Hetzner VPS but ran into performance issues pretty much immediately after day to day usage. After bumping to the 8 GB tier, memory hovers at 60%-70% usage. Configuration was painless, the docs are thorough, and once the container set is running you get a web panel with pretty good admin tools, basically requiring zero terminal usage after it’s running.

With the server stable, I pointed my personal domains at it, created aliases for my old email providers I had an account with, and set up forwards so I never have to leave my own client. Five months in, the experience has been almost hassle-free. The rare message that lands in my spam can quickly have the sender whitelisted through the web panel tools, but I’ve had to do this maybe three times?

Overall, it’s been a fun experience and I didn’t have to put much effort into getting it running which is always nice. It feels good not being tied down to a multi billion dollar company that could decide to erase my digital life if they so wished. I think this peace of mind was worth cancelling my existing Protonmail subscription and paying the $6 or whatever it is a month for my own email instead.

On a side note, I’ve been a paying user of Protonmail since it’s inception. I don’t have many bad things to say besides the lack of a functional email client in the browser and mobile with proper tools you would expect, but they’re aiming to be a personal cloud provider these days and not just email and thus efforts spread out across their different products.