We host our own website here at ataary. We are cheap but resourceful so here is how we do it, all for free (we did opt to buy a domain name, but that is it). We have a Windows Surface Book (2015) with Intel i5-6300U 2.4 GHz Dual Core and 8 GB Ram, which is running localwp, an application that hosts a WordPress website on your local network.
The file system for the site is then easily accessed on the Surface Book, allowing us to simply drop our creations into the file system of the website and then just link them in our posts.
We then use Cloudflare to connect the site to the outside world. Cloudflare has a tunnel service which creates a tunnel from a domain name (ataary.com) back to our Surface Book, specifically to the port being used by localwp for the site.
So if our internet is slow or the Surface Book gets turned off our site disappears, but it has been very reliable so far and there have been little to no issues getting it all up and running.