For a long time, I've wanted a NAS, or really, anything that could attach storage that doesn't require my aging gaming rig running Windows insider builds to be the storage hub of my home. But NAS is stupidly expensive (hundreds of dollars, plus disks). So when Corndart told me a whisper-quiet server-grade PC could be had for less than $300, I was skeptical.
Well, one Newegg eBay pre-Black-Friday special and $279.99 later, my server was on its way.
It's a very simple piece of hardware. Single 4GB DIMM, single 500GB 7200RPM HDD. Single onboard NIC, onboard VGA port, and a bunch of USB ports.
My strategy is simple:
- Microsoft Hyper-V Server 2012 R2.
It's free, it'll run VMs, and I can manage it all from my computer using our glorious overlord's clicky UIs.
- VM: Ubuntu Server - Wily Werewolf.
It's also free, boots in seconds, can run just about anything with practically no resource overhead, and I can connect with PuTTY anywhere anytime.
- Install Tor, BOINC, Plex, Samba, Transmission.
- Though you'd think OEMs would have caught up by now. The BIOS was set up with everything off: virtualization, TCG, and secure boot to start. I understand why (prevent security or compatibility issues during install), but nothing stings quite like having everything set up for remote desktop then having to get down and plug all the wires back in to launch the BIOS.
- While 2012 R2 uses Generation 2 VMs, the configuration format for Windows 10 is different, so no export from my desktop. Though, even just pulling the VHD directly, it wouldn't boot, suggesting something is fundamentally different with the guest environment on Windows 10. Thankfully Ubuntu is pretty easy to install.
- Managing the OS is pretty easy. A physical login --> cmdline manager command to enable Remote Desktop --> Powershell: Enable-NetFirewallRule -DisplayGroup "Remote Desktop" --> I can pull the VGA cable. Same command with "File and Printer Sharing" and I'm able to share
- In contrast, the absolute hardest thing to get working was remote Hyper-V management. I do this regularly in my day job, so I know it works, but it's nearly impossible to get security right without a domain backing the credentials. In the end, I couldn't figure it out myself; it took a mixture of mystery cmdkey commands and an outdated Hyper-V remote configuration tool, both on the server and my local client, but it now works.
The TS140 is old (I think officially past end of life), and even the several years newer Xeon E3-1225 has trouble keeping up with my desktop workhorse (an i7 920). But it's still plenty powerful as a home server. Even committing two out of four cores full time to BOINC, the thing can serve up .m4v files in Plex while barely pushing the needle on the CPU graph.
Side note - two cores of BOINC costs approximately 32W.