I did exactly this (except relay), started a few months ago as I don't have a ton of time to sink into it. Went with Mailcow Dockerized (Tried Stalwart, too much behind paywall) on my VPS. My renewal is next month and since I was already paying for a VPS I figured I should tinker with this instead of paying for Proton. I already had domain(s) so that part was fine, I almost never send either but tested sending to gmail and proton. Initially had issues with gmail but was able to resolve them by adding my domain at https://postmaster.google.com/
So far no other issues hampering the project, been receiving all emails fine including catchall. I do have in the back of my mind if I ever need to back out of self hosting to look into migado.com.