Here is a peek at the hardware which you are using right now to view this website. It’s hosted on a Raspberry Pi, a tiny, inexpensive Linux machine. This one is running “headless”, meaning it has no keyboard, mouse, or display. Instead, I connect to it via ssh, http, or other network protocols.
The black box on the right is the computer itself, in a black plastic enclosure. The data for this website actually resides on the USB thumb drive sticking out above the black box, between the orange Ethernet cable and the black USB cable.
The Altoids tin has nothing to do with the computer, but is merely to show a sense of scale, since every electronics tinkerer knows exactly how big an Altoids tin is.
The small black device above the Altoids tin is a powered USB hub. The Raspberry Pi itself may not always be able to reliably power mechanical disk drives.
The black and silver boxes to the left are external USB drives of 1 and 2 TB. These are not used for the website, but instead are network attached storage used for backing up some of my family’s laptop computers.
In addition to serving up this website and hosting the big backup drives, this computer runs an NTP server, to make one central reference in my home to which all other computers synchronize their clocks. It also runs some home automation software which I wrote, which takes care of turning on and off various outdoor lights.
By self-hosting my website at home on inexpensive hardware, I avoid ongoing expenses, and can run this site exactly how I want to. Notice the absence of advertising? The downsides are that I’m responsible for all administration and backups, there is nobody I can call for tech support, and all of the traffic to this website must go through my relatively slow home modem and network. So far, I’m not popular enough for that to be a serious problem.