I'd run my own email server since the early 2000's - in several forms over time. A VA Linux 2U rack server that I got from work (noisy, overkill), a personal Mac Mini (Frankenstein macport upgrade-resistant), and now a single-node k8s instance with everything neatly managed (an excuse to really dive into k8s from the ground up).
I use dyndns to handle IP changes (incredibly rare with Frontier FIOS, actually). I use mailhop.org to handle secondary MX records in case my machine is down (as well as mail filtering) Everything else is postfix, spamassassin, dovecot imap
It's not a trivial system, and it took a while to get everything working how I wanted. It's a terrific learning opportunity, but it's by no means simple to mentally model the process of all that happens inside.
Just document this for all, simplify the setup but keep the learning :)