When I got my first job as a Linux sysadmin, I built a small PC to practice as much as I could on all the cool technologies I wanted to learn, and not only the stuff needed for the current job I had at that moment. That mindset escalated quickly, and the PC became a full blown server running multiple VMs, services, different network segments and with a pretty decent uptime (almost 99.0% even without UPS).
I must admit it has crossed my mind to host a box in the so called “cloud”, but I was too proud of and had too much fun with my personal infrastructure to come to that. Besides, as a major plus, the server was sitting on my living room, tuck away on my TV cabinet, and doubled as a HTPC.
After a while, requests rolled in to host several websites for friends and family, which made me to get things a little more professional and dig in DNS (pun intended), service tuning, availability and scalability.
After 7 years, the time has come to seriously upgrade the machine and I started searching the best way to balance power consumption, performance, noise, longevity and price. This was the end result:
Cooler Master Elite 110 Mini-ITX
Asus H81I-PLUS Mini-ITX
Intel Core i3 4340 (3.60 GHz)
Zalman CNPS8900 Quiet
Dimm 8GB DDR3 Crucial CL9 1600Mhz Ballistix
Western Digital SATAIII 1TB 7200rpm 64Mb Black 6Gb/s
Silverstone SFX 300W 80 Plus Bronze
All the hardware assembly went on without any issues, the case is very versatile for its size and with plenty of space to add more storage capability. Never have used a SFX format PSU before and I was happily surprised by its size, giving a lot more room inside the case and deploying all the required power very quietly.
The new haswell processor architecture provides a major boost between performance and power consumption and the integrated GPU is more than enough for 1080p playback. Hey, even if you are wondering if gaming is possible in a ring like this, the answer is hell yeah, it counts as my own version of a steam box.
Regarding the software, there are two main purposes to consider, HTPC and Server, I will give a quick overview of the most important bits of each.
On the HTPC side I went with Linux Mint as the default operating system. It has Cinnamon by default, completely compatible with the hardware I’ve bought and with all the PPAs to choose from - package installation was a breeze.
Obviously, XBMC has to be running. It's the best media center out there and I’ve been using it since it was only on the xbox. A while back I got a lightpack strapped to my TV. With boblightd and XBMC working together I’ve achieved an astounding ambilight experience.
Last but not least, Steam got installed because gaming is awesome.
As for the Server, pretty much every service runs inside a virtual machine, KVM has been my hypervisor of choice for some years now. My KVM manages several CentOS boxes built by function. Recently I’ve also started using CoreOS to get the hang of Docker and to spin up environments for testing.
Nagios remains my faithful watchdog and keeps an eye on things for me, while OSSEC enforces the security policy in place and integrates with nagios for alerting on when something is fishy.
Screen is always on so I keep an instance of IRSSI connected to #freenode and another of rtorrent, just for legal downloads obviously.
To get all of my DNS A records updated, as I don’t have public static IP addresses, ddclient does its magic.
No decent home server would be finished without providing a NAS, and Samba takes care of that quite nicely.
Well, there you go, the reasons I went through all this trouble and an insight on the most important stuff running in my new box. Yeah, I could have a NAS + Raspberry Pi + a couple of AWS/DigitalOcean/whatever instances, but what would be the fun in that?