I use both. I have one VM on Proxmox for all of my Docker containers, a seperate VM as a reverse proxy, and a third VM to handle OIDC for apps (because I don’t want it failing with all of my other things). I also use Proxmox for using apps in a VM that are GUI based, but that I want to have running on something other than my laptop.
I’ve been trying out Stalwart, and it seems to be working good, but it is having problems with IDN that seem to require some weird ways of fixing.
(more specifically, Stalwart recognizes the punycode and UTF8 versions of domains as separate, which is difficult for some clients like Gmail web to deal with)