Justin's (Old) Homelab Overview and Introduction

My R710. Or, at least, a google'd picture of one.

Introduction

Hi. I'm Justin. I'm a software engineer / developer / programmer / code monkey from Maryland, and I've gotten into the server hardware side of IT as a hobby.

This post will be an overview of my network, homelab, and other hardware as a preface to when I start knowledge-dumping in future posts; additionally, it will stand as a description of my infrastructure baseline as I make and document changes in the future.

I'm a software guy by trade so I've learned all of my server/network administration and hardware setup on my own, on the side with the help of various forums, reddit posts, and friends who still tolerate my constant questions. I have had some incidental interactions with servers and software (webservers, databases, etc) through work and school, but I've had very limited actual training or education on anything I'm going to write in the Homelab section of this blog. Just keep that in mind before you start roasting me :)


Why?

So I've put together this blog website so I can start cataloging my home server and network configuration, and so I can share the knowledge I've gained while working on this hobby.

A bit of history, I learned a long time ago that if I was going to write a website, I needed something to run it on. I used to rent a dedicated server in France from OVH to host a few websites and some software for the use of my friends and I. Just doing that took up every ounce of server admin and webhosting knowledge I had, and I got tired of paying for it annually. So one day I just figured... why don't I just get my own server and figure out how to host things myself? I had no idea how to do anything or what to buy, so like a moron I just googled "cheap servers" and found out old Dell rackmount solutions were sorta in my budget. So I started lurking Ebay and Craigslist looking for deals.

Since then I've learned a lot and I've gotten dozens of projects and systems together using this infrastructure, and I've had a great time doing it. And I've decided and/or been pestered to start writing down how I did everything. That's where this blog begins.


Basic network diagram

Network

Right now my network is super basic. Well, maybe a bit more complicated than your parents' configuration, but for a hobbyist it's borderline embarrassing.

My gateway to the internet is my ISP-provided Wifi-enabled router. It's nothing special and I find it pretty frustrating to configure, but it has decent signal strength and provides adequate speeds. Attached to that I have a secondary Wifi-enabled Amplifi meshnet router (not pictured) configured in bridge mode - meaning it doesn't do any actual routing or assigning of IP addresses as it would in DHCP mode, it just passes connections through to my actual router. I have some of my smart home devices connected to that network, but I do plan on getting rid of it when I upgrade everything.

Connected to my router via a long copper ethernet cable is a 5-port gigabit switch that sits on my desk in my computer room. Connected to that switch is my Desktop PC (more on that later), and then another cable is running between my 5-port switch and a 24-port gigabit Unmanaged switch in my server closet.


Desktop

This month, I decided to rebuild my personal computer. I will dive deeper into what I built and why in a future post, but the short version is I got a good deal on an i9-10900kf, I carried over my RTX 2070 and some 1TB Samsung SSDs from my last PC.


Storage

The first storage array I ever put together was a Synology DS418j NAS (network attached storage) with four 4TB hard drives. Initially, I only had 3 of those drives, but I went ahead and set them up anyway in a RAID 5 configuration - both for a little extra speed from the data striping, and enough durability to lose an entire disk and not lose any data. I eventually shucked a fourth 4TB HDD out of a consumer-grade external USB enclosure I had at the time and added it as a standalone disk in the NAS.

Status of my DS418j NAS. Yes, one drive is "Failing" but it's been fine for years. Seagate sucks.

If I were to set it all up again, I would probably continue to use a RAID 5 configuration, but make sure I include all drives in the array. I don't do anything that needs higher data transfer speeds on this NAS, so while I could potentially gain some speed by using a RAID 0 configuration, I don't think I really need it. I accept slower write speeds (due to writing parity data) in exchange for protection against a drive failure. And I may actually end up setting up a second standalone NAS, because I have an empty Western Digital My Cloud EX4100 sitting in my server closet...


Server

I guess this is the heart of my homelab, and I'll probably go way more in depth about it in a future post. I currently only have one server, a second-hand Dell R710 that I bought off Ebay a few years ago on the cheap. It came with 24GB of RAM and 2x 300GB SAS hard drives, and dual Intel Xeon CPU E5645 @ 2.40GHz for about $300. I've since replaced its PERC6i RAID controller with an H200 (exactly this one), increased the memory to 72GB, and slotted in a few more hard drives - and one SSD. My R710 is the 8-bay 2.5" drive version, not the 6-bay 3.5" so I stuck with smaller capacity drives to keep my costs low. After all, this R710 is mainly just there to screw around with and learn on. I have my NAS for storage. Or at least, that's how I got started... I do plan on doing a fully custom build to replace my R710 this year, I'll do a write-up when I commit to that. I at least know it will be a tower, not a rackmount server - I can't fit my Dell rack anywhere in my new house ?

Unraid's Array Display

My R710 is currently running Unraid 6.9.1. Unraid was developed initially as a software storage array - like RAID, but different - so I had no need to configure my storage drives in any RAID configuration. More on that in a future how-to-do-Unraid-on-an-R710 post. If you didn't feel like clicking on that link, besides being a storage array manager Unraid provides a lot of cool tools and functionality. I primarily use it as a Docker container host and a VM (virtual machine) host. In that future post I'll deep dive into what I run on the server, but here's a quick overview.


Unraid docker/vm list

Software

I'm always looking for new stuff to use my server for. I have a few VMs running now, one of those Ubuntu ones hosts my hand-written website(s? in the future?) and discord bots and such.

In docker containers, I'm running MANY THINGS. Here's a brief run down of the more important stuff that you may not recognize immediately. I plan on writing future blog posts on most of these explaining what I use everything for, why, and how I set it up so ... subscribe? How do blogs work? I don't know.

  • Mariadb / Postgres11 - Databases. Initially for webdev purposes, but I actually have a few containers utilizing each of these databases.
  • NginxProxyManager - Reverse proxy. All incoming internet traffic on ports 80/443 are directed here from my router, and then directed to the appropriate system via subdomains.
  • Jellyfin / Plex - Media library management and access. I initially just had Plex, but I'm transitioning to Jellyfin for various reasons.
  • Seafile - Self hosted replacement for Dropbox/Google Drive/One drive.
  • Home Assistant - Smart home/IoT device controller
  • Ghost - Blogging software that runs this very blog! It's new, I just added it!

Other Notes

I have a few other relevant bits of hardware that don't fit in anywhere else. I have one Cyberpower UPS powering everything in my server closet and it connects nicely to the R710/Unraid. I've also recently started setting up a home theater in my basement. If you actually read this and want me to go into details about that or anything else, or if you have questions about how I did anything, hit me up at justintavares@gmail.com and give me some suggestions.

If you did read everything, thanks, I appreciate you. Sorry for badgering you into reading this post. More coming soon!