As has already been established, VPN and port forwarding are 2 ways to allow people to connect to a server on your home network from theirs over the internet. However it is slightly less hassle to have your server hosted externally. This means that all players on the server, including yourself, are connecting to a server in a data-center, which means there is no risk of malicious access to your home network through your server.
My first 2 minecraft servers were hosted with OVH (which is cheaper than using horde, I checked. Horde £12.31 for 4GB RAM, 20GB storage; OVH £5.99 4GB RAM, 20GB storage) however my 2 most recent servers I hosted at home.
I switched to hosting at home because I felt it might be cheaper in the long run, since renting virtual private servers can get expensive when you want higher amounts of RAM (8GB), also having it home means I can turn it off during a period of non-use, but if it were in a data-center I'd have to either cancel my contract and reinstall when I want to next use it, or pay for a server that's doing nothing.