I appreciate the write-up! I always wanted to do a similar write-up for my own setup, but I never got around to it. (My setup uses slightly with different components: exim+dovecot+spamassassin+openldap.)
However, after reading this, the software developer in me feels like "These tutorials should not be necessary."
This should be a GitHub repo, trivial to fork and trivial to test out locally for anyone.
I've been running a mailcow install for the past year and it has worked remarkably well. Not sure if I'll stick with it when I move my server, but I've got no complaints.
I think when you setup that whole stuff yourself you are better prepared to fix any problems that might arise. I mean those are 'tutorials', sound like teaching ;-)
However, after reading this, the software developer in me feels like "These tutorials should not be necessary."
This should be a GitHub repo, trivial to fork and trivial to test out locally for anyone.