servy 586

my home server

Assembled from mostly used parts that range from vaguely sensible to wildly overspecced for my use case, my home server seems to have ended up as my personal exercise in gratuitous computing overkill, for the sort of peasant that can't afford 4 grand for an RTX 4090.

It got that way because I was trying to build a machine of a similar level of performance to the old gaming laptop that used to be my home server, before I vivisected it and grafted on a NAS, only to find that it didn't seem to like my doing that very much. Believe it or not, the point of this monster was to get away from the unusably bad stability issues the old server was having, and it seems to have worked. You can read more about how I justified it all to myself here.

Hardware

CPU - AMD Ryzen 7 3700X

When I said "gratuitous computing overkill", this is primarily what I meant. For a home server, this high-end, albiet 5-year-old, gaming CPU is admittedly a little bit ridiculous. An Intel N100 Chromebook chip would be more than capable of most of the things this server is doing, but I had a good reason to go for something this fast: I knew I wanted to run Minecraft servers on this machine, possibly more than one, and with Minecraft, single-core performance is king. Even professional Minecraft hosting providers use chips like this, because enterprise-grade server hardware is worse than the consumer stuff for this task.

My line of reasoning for choosing this CPU was as follows: my currect machine has an i7-9750H in it, so I'll get the desktop version of that, the i7-9700K, for similar performance, except wait, the corresponding Ryzen chip from the same generation is a way better value on the used market, let's get that. And that's how I ended up accidentally doubling my multi-threaded performance despite specifically setting out not to get a major upgrade. Realistically, though, I wouldn't have saved a ton of money going for something more in line with my stated goal anyway.

CPU Cooler - Thermalright Peerless Assassin 120

In what is becoming something of a theme here, I'm well aware that this cooler is ludicrously overbuilt for the chip I'm asking it to cool, but that's the point. This thing provides more than ample headroom for me to set a nice, relaxed, quiet curve on the machine's case fans, which is important since it's currently sitting right next to my desk.

Motherboard - ASUS ROG CROSSHAIR VI HERO X370

Also a bit of a silly motherboard for a home server, what with all the built-in Gaming Lights™ and fancy overclocking features. I need it though, because this is the only thing with all the expandability I need. It has eight whole SATA ports, exactly enough for all my drives, which saves me having to burn a PCIe slot on a SATA controller. This particular board also has another helpful feature: if add-in cards are installed in both the first and second PCIe x16 slots, it shares the bandwidth evenly between them for two x8 connections instead of having one x16 and one x4. This gives me enough lanes for the specific 10 gig network card I'm using.

Buying used components is always a bit of a risky play, and I initially thought this board, or the CPU, was dead on arrival when it failed to POST with a cryptic CPU error. Fortunately, I was able to fix it with the BIOS flashback feature. I may or may not have updated the BIOS, but it gives you so little feedback I don't know. I just inserted the USB drive, hit the flashback button and waited until it stopped blinking. Either way, it works now.

RAM - Corsair Vengeance LPX 2x16GB DDR4-3200 CL16

It's RAM. What can I say? I picked this particular kit because it was the cheapest one available from a brand I actually trusted. I bought this stuff new, since used DDR4 prices at the time were exactly the same anyway.

GPU - Nvidia Quadro P400

A bit of an anemic video card for gaming, but I'm not gaming on this machine, at least not like that. This card was both dirt cheap used and has the two features I was actually looking for and nothing more: literally any video output at all for first-time setup, and good transcoding performance for Jellyfin.

Network Card - Dell Intel X540-T2 10GbE

These old server NICs allow for 10 gigabit ethernet connectivity at rock-bottom prices. I originally bought two so I could put one each in the server and my main PC and direct-attach them, but limitations of my B550 motherboard killed that plan. This one still went in the server so it will be ready when I eventually upgrade to something that can accept the other card.

The one downside of these cheap old network cards is that the fans on them are pretty much always dying and tend to be very loud. I solved this problem by splicing a replacement fan onto the connector from the original, and mounting it to the card's heatsink with a zip-tie that's screwed into one of the original fan mounting holes.

A 40mm wide, 10mm thick Noctua fan zip-tied to the heatsink on a PCIe Ethernet card. The zip-tie is screwed into one of the original fan mounting holes on the heatsink. As in, the screw is going through the zip-tie.

Lucky me the original fan is a standard 12 volt one and doesn't take, like, 19 volts or something stupid like that. I wouldn't put it past Dell.

Power Supply - Seasonic GX-650 650W

I originally bought a GX-650 for my main PC, then it blew up out of nowhere and I RMA'd it, but still bought a beefier replacement anyway out of both an abundance of caution and a desire for more GPU upgrade headroom. When this unit arrived, it ended up in my server. Again, it's overkill for what I need, but that's now my official strategy for PSUs.

Case - Enlight 7237 (?)

This Pentium 3-era case was among the first I found that could accommodate my needs for this machine, although I admit my search strategy was flawed. Still, I was enamoured with this case and, frankly, building in it was a pleasure compared to my experiences with modern cases. I can actually get to the modular PSU cables without removing anything! Imagine that! And in a case that predates the concept of modular power supplies by fully half a decade. In spite of its objectively dogshit airflow, this case makes me resent the modern Corsair box I originally built my main rig in.

Since this case appears to have been whitelabeled by a system integrator called Touch Computer before being emptied out and sold to me, there's no indication of what model it is, but it closely resembles the Enlight 7237, so I suspect it's either that or something closely related. Apparently these were very common back in the day, and I can see why.

A beige PC tower with four 5.25" bays and two external 3.5" bays, populated with an optical drive and a floppy drive respectively. The only visible branding is a Pentium III sticker and a badge that reads "TOUCH". The inside of the same old PC case. Its layout is extremely pragmatic: motherboard in the very bottom corner, PSU in the top corner above it, and all the drive bay mounts are in a cage lining the front side. In other words, it looks like an old PC case.
These photos are from the case's Ebay listing. It did, in fact, ship with all that stuff, including the IDE cable.

The "586" in this machine's name is derived from the Pentium sticker on the front of the case.

Drives

Boot Drive - Samsung 870 EVO 250GB (2x) (Mirrored)

I run two boot disks in a mirrored array for increased reliability. It's not strictly necessary, but it's one more thing I can rule out if the thing ever fails to boot.

I bought these drives for the original laptop server build, but they didn't make the cut after I hit some weird laptop-BIOS-ass limitations on my SATA connectivity.

Apps Storage - Crucial BX500 1TB + WD Blue 1TB (Mirrored)

I like my redundancy, especially since both of these drives are technically used. The BX500 was used for the same purpose in the old server, and the WD Blue was originally a storage upgrade for that laptop when it was still my daily driver, before being transplanted into my shiny new desktop rig, before then being replaced for peace of mind when my PSU a-sploded.

These are the drives I install programs to and such-like. There's no reason I couldn't use the giant HDD pool for this, but the performance hit just wouldn't be worth the savings, especially since I only had to buy one of these drives for home-server purposes anyway.

Game Server Storage - Samsung OEM 256GB NVMe

Not redundant, unfortunately, since I only had one of these laying around and there was only one remaining drive slot in the system when I decided to add it. This is the original boot drive from the old laptop, meaning it's over four years old, so it arguably needs redundancy the most, but frequent automated backups should mitigate that issue.

I install my game server(s) to this drive for maximum performance. By now the pattern must have emerged that I'm going all out on speed for anything that's going to affect that in particular. Only the best for the half a dozen or so friends who are gonna ever actually play on this thing. I think we've all dealt with enough poorly-performing shit-tier Minecraft servers in our time.

Bulk Storage - Seagate Exos 16TB 7200RPM (x4) (RAIDZ1)

A patently insane amount of storage. Even configured such that one of them is used up entirely on redundancy, that's still well north of 40TB of usable space. It's enough for my entire life, and that's the idea. These drives hold automated backups of all my other devices, my entire library of Legally Obtained media, and a good amount of other stuff, too. The NAS is to minimize the chances I ever lose any of it, and the massive HDD array is to minimize the chances I have to delete any myself.

I absolutely could not afford drives like this new — I got these drives Manufacturer Recertified™ from serverpartdeals.com. This makes them ever-so-slightly less trustworthy than new drives, but that's what the RAID is for, and the recertified ones are half the price of brand new. I chose the specific drives I did because they were the best available in terms of cost-per-terabyte at the time I bought them.

Software

OS - TrueNAS Scale

I could probably recreate my elaborate configuration on like, baseline debian or something, but I don't want to. Between four ZFS pools, virtual machines, a slightly convoluted system of SMB shares, and various other services, the slick web GUI TrueNAS provides makes everything far more convenient. Its configuration export feature was also very handy when migrating to the new machine.

It's got some idiosyncracies to it, but in general TrueNAS smooths out the experience of running this server enough that I'm doing a lot of things I probably couldn't be bothered to otherwise.

Jellyfin

Let's be real, this is what home servers are for. This is why you get one, to make watching your, uh, totally legally obtained movies on your phone more convenient. Jellyfin does a great job of this. It fetches metadata reliably and plays nice with my GPU for transcoding. I also use it to host my music library, now that the Finamp beta lets you transcode your downloads to OPUS.

Homepage

I mostly keep this around because there's no way to point your Firefox new tab page to a local file on your computer, but it's got some nice features. Namely, it can display stats from your various services.

Syncthing

I fucking love Syncthing. I've got all my favourite files from my PC and my phone backing up to my server, automatically and with zero effort. If I could only run one thing on my server, it'd be this.

Filebrowser

A Google Drive-style web file browser for my network shares. I can access them over SMB, of course, but this provides the same functionality with a lot less friction for devices and people that aren't super compatible with that level of nerd shit.

OS - Debian Linux

Wait, what? Didn't I just say I was running TrueNAS? I am, but I also have a virtual machine under TrueNAS for my game servers, and this is the OS I use for that. There's a learning curve here compared to Ubuntu Server, which I'm more used to, but at the end of the day Linux is Linux.

Crafty Controller

A convenient admin panel for my Minecraft servers. Getting my old server imported was an Experience, but after that it's been smooth. Highly recommend. I especially like the automated backup system.

WireGuard

I run a WireGuard client in the VM with a server on my VPS to make my game servers accessible from outside the house without giving out my IP address, worrying about dynamic DNS, or trying to port forward on the solid lump of concentrated ISP malice that passes for my router. I had to write a couple configuration files by hand, god forbid, but otherwise this was much easier.