I hope someone else can pitch in with a more indepth instructions, but two things I wanted to mention:
First, forget about hosting your own email from home. Seriously. Even those who do it professionally don't want to deal with that at home. You'll find people on fediverse who do it but I'm sure plenty will give you this same recommendation/warning. It's a huge hassle and it's so easy to get your domain blocked/ending up on a blacklist and way harder to get out of it.
Second, I can personally recommend https://linuxupskillchallenge.org/ if you are really starting from scratch ( there's a community here: !linuxupskillchallenge@programming.dev ). This is how I started and set up my own linux server and started self hosting stuff on it. It's really basic and won't teach you everything you need but it's a great start for setting up your own server. You can do everything with a local server at home that you have set up.
