@AngelaScholder @sophie Fully under your own control is going to be difficult, you're always relying on someone for the uplink to the internet.
If you want to host a website at home, your biggest challenge is potentially DNS. Do you have a static IP or a dynamic IP? If it's dynamic, you'll need to set up dynamic DNS to update your DNS records as soon as your uplink IP changes.
If you don't have a public IP at all but are behind carrier-grade NAT, you'll need to figure out how to route traffic to a public IP to your home server. My internet connection at home has this. The IP address I get assigned is not a publically routable IP, so I have set up a tunnel from my home router to my server in a datacenter and expose my home servers to the internet through the tunnel.
Not sure what you would want to host at home. If it's just a simple static site, something like lighttpd would be perfect. Even if you want something dynamic, lighttpd can work well.