I've been using a cloud server to do all my personal server work -- I don't have a linux laptop so I use it with ssh to do all my office work, work in general, programming, development on it (and using dropbox to get completed files to my laptop) as well as hosting a few web apps on it that really are only meant for personal use (like an online journal web app, an interface for running computations), as well as a git server.
I've decided to build my own server at home with much more powerful components that is much cheaper to maintain than my cloud server. However, I have some concerns about opening up port 80, port 22, etc. to the world on my personal network, which is not only used by me but also my family.
What should I watch out for? I have people that warn me about people compromising my server and being able to hack into our PC's and steal data and stuff. I already have fail2ban, but what precautions should I take before opening up ports to the world like this?
the box is an ubuntu one
(edit: i know there are a lot of things I can do to secure a server in general :) i am just wondering about tips specific to hosting a server on my home network)