I’m no stranger to thinking about regular computers as lightweight, non-professional use servers. Way back in my second year at college, I volunteered to use my relatively modest laptop as the host for a bunch of Wordpress and other services for on-campus student activities. Cheap power and good intranet (but terrible internet) speeds meant that the machine saw a decent amount of usage from the activity group members. After I moved out of campus though, I stopped running the laptop 24x7 as my usage patterns then did not justify it.
Within a year of me moving to Bangalore, the Raspberry Pi Foundation released their first gen, Model A board, in 2012. I happened to be in Germany in 2013, and splurged on a Model B. After the initial bout of tinkering, the Raspberry Pi ended up doing DNS ad-blocking duty on a variety of networks at home for quite a few years. I pretty much always ended up using the Pi as a general purpose headless Linux machine. I never experimented with the GPIO pins or purchased HAT (hardware attached on top) boards. For a while, I ran the MagicMirror project on the board as well, but any updates would end up being cumbersome due to the measly compute capacity on the device. I vaguely remember npm install
for some project taking more than 15 minutes, and most of it was due to the processor doing work, not due to package downloads taking time. As a result, I was well aware of the limitations of the Pi as a home server (even though a lot of folks around the world have had good success, especially with the 3rd and 4th gen boards). The CPU limitations are obvious, but it’s network and storage throughput are also nothing to write home about.
Fast forward to 2019, I had a fair bit of data spread across 2-3 different disks. Most of my personal data was photographs I’d clicked, family events, and digital recordings of some concerts that my Dad had organised, in addition to all the usual fluff and cruft our disks collect over time. After spending time deduplicating and categorizing the data, I realised that my data footprint is going to be more than a couple of terabytes and there are no offsite backups anywhere. Also, by this time, I’d spent enough time shepherding (virtual) machines of various capacities and configurations in a professional capacity that I was confident I could take on a bigger challenge. In addition, my list of open source project ideas and experiments had been steadily growing over the years, and I finally had some time and mental bandwidth to work through them. I decided to take the plunge, and go for a proper machine, retiring my Raspberry Pi from active duty.
A ton of folks have shared their home server journeys, either in written form (blog posts, Reddit threads) or video (YouTube has a crazy active home lab community!). I started reading up, and I looked at three primary friends and acquaintances who have done something similar in India: Hiway has been rocking a Dell Poweredge T40 as a home server for some time, Karan has a constellation of Raspberry Pis (all newer generations!), and Abhay/Nemo has a custom built machine that he has upgraded over time. By the time I finally got to the point where I could purchase this device, the pandemic had kicked in, and I was no longer living in a metro city. The primary access I would have to good computer parts would be Amazon and friends. I talked to a bunch of folks (Hiway, Sathya, Aman, Shadez), and realised that this would be my very first build. I wasn’t sure at all that I’d get the right parts to pair with each other, and given the slightly tricky return policies during the pandemic, I decided to not build a custom machine, but instead, go for a branded, SOHO grade server.
To build the shortlist, I looked at a bunch of used and new options. None of the sites selling used hardware gave me confidence. India has no equivalent of an eBay where I can pick up credible used hardware, and options available on the not-so-reputed sites were all machines from a much older generation, with high power budgets. In addition, most of the models they sold were designed to be used in a proper data center environment with appropriate cooling and noise management. This left me with a shortlist of entry level machines from Dell (the aforementioned T40), HP (the Proliant Microserver Gen 10 Plus) and Lenovo (ThinkSystem ST50) as my primary candidates. All these candidates fit my primary requirements of:
- Being relatively low power (i.e. don’t guzzle 100s of Watts of electricity)
- Low noise of fans, especially at idle, so I can possibly even keep it in my bedroom
- It should be easily deliverable to a home address in a tier-2 city in India
- It doesn’t need to be rack mountable, it can sit as a desktop machine
I found a couple of listing on Amazon for the Lenovo machine on Amazon, and reached out to the seller. I also checked with the local Lenovo distributor, which is actually a chain of shops across some cities in Maharashtra. I had hopes that their Mumbai outlet might stock these machines and send it over. They did not have stock then, and the local person was not very enthusiastic. I ended up reaching out to a seller on Amazon, Eagle. They happily obliged, and even helped customise it by adding some more RAM to the machine. I ended up paying for the machine, and they shipped it via BlueDart. The package arrived a few days later, and I finally had a server at home!
This was the start of a super exciting journey for me, and I’ve since done a bunch of things on it. In the next few posts, I’ll talk about the highs and lows of my home server experiment.