One main issue setting up a small web server of VPN server at home is managing your public IP. Most home ISPs do charge extra for issuing you a static public IP address. If you do not want to pay then you need to tackle this problem yourself.
You can setup a subdomain/domain with your home address. Here, I have written a tiny script which checks if my current home IP has changed. If positive, it updates the DNS records associated with my domain.
I manage my DNS with digitalocean (www.digitalocean.com = DO). DO provides a REST api which can be used to update your configuration.