Now that we had our network cabinet in place, I turned my attention to JARVIS’s hardware. While I want to keep this relatively budget friendly, I also want to make sure JARVIS will be robust and durable enough to be reliable 24/7 for us. If we’re going to have a locally hosted solution for our files and services, JARVIS needs to be up to the task. While I’ve been building my own PCs since the 90s, servers are a slightly different animal than I’ve tackled previously.
Looking first at the OS, most of my experiences come from working in a Windows environment, but that’s not ideal for a server, especially when there’s plenty of FOSS options available that are much better suited to the task. After looking into some of those options, I chose to start with TrueNAS Scale, which is a fairly user-friendly OS that based on Debian Linux. Now while I say it’s fairly user-friendly, there’s a learning curve like anything else, and this will be an ongoing thing for me to learn as JARVIS grows.
Once I’d settled on TrueNAS, things were fairly simple to plan out. The main software suite that I knew I wanted to run is called NextCloud. It’s another free suite that will allow us to get away from things like Google Drive, Google Docs, Google Calendar, Google Coffeemaker, etc.
Wait, scratch that last one. I’m only dreaming of having my coffeemaker operated by JARVIS.
Add to that some other applications that were a “must have” for me to run in our home and tinker with, and I knew I’d need some decent resources, hardware wise. I do like to tinker, after all.
Looking around online, I found a variety of options that would fit our budget. In the end, I was intrigued by a simple motherboard I kept seeing come up in different YouTube videos, which I was able to pick up with an older Intel Xeon processor, for less than $100 at the time on AliExpress. With ten SATA ports, six 2.5Gb ethernet ports, and an NVME slot to install my OS, I figured this would be a solid foundation to begin building on. Not perfect, but definitely solid.
Now that’s not to say this setup will be perfect by any means. There are a few limitations I’ll be working with, such as only two slots for DDR4 memory and a single PCIe Gen 3 slot. The only onboard graphics output is VGA, which is outdated but not a factor for my use case really. JARVIS is a server, not a gaming PC. So in theory, this is only JARVIS Mk 1, and there will be revisions and upgrades later, but this is a good starting point for learning what I need here.
JARVIS’s processor is an Intel Xeon E5-2680 v4 @ 2.40GHz. It’s not the latest and greatest, but 14 cores and 28 threads means there should be plenty of processor to run whatever JARVIS needs for now. Keeping JARVIS’s CPU running cool should be fairly simple, thanks to the cross ventilation of the cabinet, coupled with the extremely efficient Noctua NH-D98DX i4 cooler.
The motherboard’s documentation says it officially supports up to 64GB of DDR4, so that’s what I’m starting with here. Picked up a TEAMGROUP 64GB DDR4 kit on sale on Amazon as a starter. At some point, I might test 128GB to see if it will work (sometimes that’s a possibility, regardless of what’s “officially” supported), but the 64GB is a good start for our needs.
To install the OS, I went with a TEAMGROUP 256GB NVME SSD that was on sale at Amazon. It’s probably overkill for capacity but the speed and reliability are worth it. Before this project, I don’t think I’d ever picked up anything from TEAMGROUP, but the reviews were good and the price couldn’t be beat at the time of purchase.
After that was resolved, I moved on to picking storage for data and applications.
For applications, I wanted to keep things as quick and snappy as possible, so I decided to use two of the SATA III ports to setup a data pool with a pair of SSDs in a mirrored array. Turning to Amazon again, I found a pair of TEAMGROUP Vulcan Z 1TB SSDs on sale and pulled the trigger on those. I know it’s starting to sound like I’m promoting TEAMGROUP here, but this isn’t a sponsored project at all. I just found their components to be well reviewed and affordable as I picked each one.
Storage was the next concern. We both have a lot of projects spread out across multiple storage devices and cloud services. We’re both writers and artists with a lifetime of individual projects on our own Google Drives, Dropboxes, hard drives, flash drives, laptops, and desktops. We also both have sizable media libraries that we’d like to be able to share more easily. We need a lot of capacity if this is going to replace all (or even most) of our current storage services.
After some research into a good source for high capacity drives on Reddit, I found myself looking at ServerPartDeals on Ebay. They have a very positive reputation and some great deals available. I chose to go with four of their “White Label” 14TB SATA 7200RPM HDD and set them up in RAIDZ2. After all of that was setup, that gave us a usable storage capacity of about 25TB. Given the amount data we currently have and how much we want to add, I’m sure we’ll need to expand this at some point down the line, but for now, this is more than sufficient to get us started.
It’s worth noting here that RAID is not a backup, but it does provide redundancy that can prevent data loss in the event of a drive failure. That being said, I’m still exploring a good backup, which is important. This is one of the few situations I’ll consider a cloud solution for, as it’s important to make sure you have at least one backup to an offsite location. That’s a problem that’s yet to be solved, particularly as I was in the early build stage here.
Anyway, I put everything together on a simple open test chassis, which sits on the top shelf of JARVIS’s cabinet.
Since this is an open build that isn’t in a normal case, I needed to pick up a stand alone on/off switch. It didn’t need to be anything fancy, but I wanted it to be at least fairly robust. When I saw this round, red and black one with a big blue LED power button though, I knew I’d found what I wanted. Kind of reminded me of a mini arc reactor in some ways. Kind of.
When it came to cooling the section of the cabinet where JARVIS would reside, I chose to go with eight 120mm fans, four on each side of the cabinet. I talked about this a bit in my last post, but what’s different about the fans for JARVIS is that I chose to go with RGB fans with standalone controllers. As much as JARVIS is a functioning server for my home, I also want things to have a certain aesthetic to them, so lights and little decorative add-ons are a must.
The fans I went with were Okinos 3-Pin Addressable RGB fans, which come with their own ARGB Controller Hub and a remote control. I picked up a five pack and a three pack, and mounted one controller on each side to handle the closest four fans. Was very easy to sync up LED patterns and fan speeds to pull it all together, and it looks great diffused through the filters on the intake side. I’ll touch on this more later, but this is a little peek at how it looks from the outside.
Now, while JARVIS is a server, and one I’ll be able to remote into, there would always be times when I might need to have direct access to JARVIS from the cabinet. With that in mind, I added a slide-out keyboard drawer large enough to hold a keyboard and mouse, mounting it directly to the underside of the shelf JARVIS resides on. Then I picked up a cheap RGB keyboard and mouse, which I fed into a Yinker two-port KVM (Keyboard, Video, Mouse) Switch. The KVM switch then goes to both JARVIS and a mini PC called Paragon that also lives in the cabinet.
I’ll explain more about Paragon another time, as that project deserves its own post. As it uses a modern HDMI port for video though, I picked up a simple HDMI to VGA converter, allowing it plug directly into the KVM switch. Paragon will be largely accessed remotely as well, but again, I’ll touch on that more another time.
Powering all of this, I went with a Corsair RM750x Modular ATX PSU. I didn’t need to buy this one, because it was left over from an earlier upgrade to my desktop PC in 2022. Yes, it’s a leftover part here, but I still only went with this PSU because it’s just a solid choice to run the server with. Suppose you could say it was from a box of scraps, but you know, who would believe that’s a thing that happens, right?
Next up, we’ll tackle the installation of TrueNAS Scale and some other goodies. Until next time, get out there and build the world you want!