For email, cloudron has a built-in email server (it's poorly advertised) - https://cloudron.io/get.html#selfhost . You can then read up https://cloudron.io/references/selfhosting.html#email. Install rainloop for web ui.
For contacts, calendar, just install the ownCloud or nextCloud app. On android, https://davdroid.bitfire.at/ works great.