My Home-Lab | Updated Regularly

My Home-Lab | Updated Regularly

This page on my blog will be the continuous update of my Home Lab. Previously this was just an update of my current build. Last updated August 8th, 2024.

Homelab with front door open
Homelab with front door closed

Ill go over what each part of my server does starting from the top of the rack.

The Rack:

All my server hardware lives inside of an old Compaq Rack 7000. It's been great so far! I was able to find the keys for the latches as well. It's entirely enclosed with a plexiglass front door with vents to pull in fresh air. The rear panel is all metal mesh to allow the hot air to vent. I talk about the rack some more here.

PDU:

Starting at the top of the rack is my StarTech 1U PDU. I choose this one because I enjoyed having the indicator lights on the front and the switch that I can use to cut power to the entire rack. The PDU is also connected to my Battery backup at the bottom of the rack.

Patch Panel:

The next item on the list is my Cat6 ethernet Patch Panel. This is pretty self explanatory but it's basically what distributes ethernet to the back of the server and connects everything to the network.

Network Switch:

Next is my network switch. It's a Mokerlink G24410GSM. This switch was a bit of a gamble as it boasts some very high performance stats but there was not much I could find supporting this outside of the product page. However for only $270 USD, it was hard to pass up. So far I have been using it for almost 2 years and it's been great! For my SFP+ LC fiber modules I was provided a few 10GB transceivers from OSI Global for testing. So far they have been fantastic! I will be writing about them soon.

1U Brush:

Next in the rack, and below my network switch is just an organizational 1U brush panel. It's simply there to allow me to route the fiber cables to the back of the server rack.

Proxmox Backup Server:

The next thing in the server is my 1U Proxmox Backup Server. It connects to my main Proxmox server and performs automatic backups every day. Eventually, this server will connect to a remote to provide an offsite backup for this server.

  • CPU - Intel Xeon E5-2620 v4
  • RAM - 16GB DDR4
  • Motherboard - Supermicro C7X99-OCE
  • Chassis - SuperChassis 512L-200B
  • 1TB NVME SSD
  • 1TB HDD (Upgrading Soon)

pfSense Server:

Next up in the rack is my pfSense server/router. It's a Dell PowerEdge R210 II. This server has an Emulex SFP+ 10GB NIC.

  • CPU - Intel Xeon E3-1270 v2
  • RAM - 16GB DDR4
  • Motherboard - OEM
  • 1TB SATA SSD
  • NIC - Emulex OneConnect OCe10100/OCe10102 Series 10GbE

Proxmox Server:

Next up is my main Proxmox server. This is an Intel R2000WT Family server. It's a 2U form factor server. I use my main Proxmox server to run most of my services that I test with.

  • CPU - 2x Intel Xeon E5-2697A v4
  • RAM - 256GB DDR4
  • Motherboard - Intel OEM
  • Storage:
    • Boot Storage - 256GB SSD
    • Boot Backup - 256GB SSD
    • VM Storage - 24x 1TB SSDs (ZFS Pool)
  • GPU - Nvidia Quadro P2200
  • NIC - Intel X540-AT2 10GbE x2

And of course these are the services I am running on my server:

  • LXC - Plex Server
    • Main media server.
  • LXC - Torrent Server
  • LXC - Jellyfin Server
    • Secondary media. Also used as backup.
  • LXC - Folding@Home
    • This container is an Alpine Linux based server that simply runs the Folding@Home daemon. I used it heavily during the height of the COVID 19 Virus to contribute to a cure/treatment. I have over 326 Million points awarded.
  • LXC - MySQL Database
    • For any services I run that may need it.
  • LXC - PostgreSQL Database
    • For any services I run that may need it.
  • LXC - osTicket
    • A ticketing platform that I use to track issues.
  • LXC - Portainer
    • Hosts the management panel Portainer that I use to manage the containers running on my Docker VM.
  • LXC - Astroneer Server
    • A hosted Game server for Astroneer
  • LXC - BeamMP Server
    • A multiplayer mod server hosted for Beam NG.
  • VM - Docker
    • Stack 1 - Dashy Dashboard
    • Stack 2 - Ghost Blog
      • This stack runs a handful of Ghost based blog websites that I run, including this one.
    • Stack 3 - IMMICH
      • Machine Learning - A container that managed facial and image recognition that allows me to search my photos that I have backed up.
      • Microservices - A small lightweight container that handles some of the web services of the IMMICH website.
      • Postgres - A database to store collected information.
      • Redis - A second database that is used by the application.
      • Server - Main website for IMMICH.
    • Stack 4 - Jellystat
      • This is a Tautulli-like statistics panel used to track my Jellyfin Media Server.
    • Stack 5 - Nginx Proxy Manager
    • Stack 6 - Planka
      • This is the closest Trello Clone that I use for project tracking.
    • Stack 7 - General Services
      • Bookstack - I use for Home Lab documentation on projects. It organizes information sources that I use to complete projects so I have a fast way to repeat process I create.
      • Discord Server Archive - I maintain a public backup of the streaming service Caffeine.tv since they have shut their doors. This archive can be viewed here.
      • Docker Check - This is a very simple container that just checks all the docker containers on the same instance and just provides a list of containers that have updates available. This is useful if you are not using Watchtower.
      • Floatplane Downloader - This is a tool that can be used to automatically download and sort content from subscribed creators on Floatplane. This ties in with both my Plex and Jellyfin servers.
      • Grafana - I use this to host a visualization of general data for an app that I help support and build called Casterlabs.
      • IT Tools - IT Tools is a web based multi tool for IT related tasks.
      • MeTube - Self-hosted YouTube video downloader web-based front end for yt-dlp.
      • Tauticord - Connects to the Tautulli API to create a bridge between Discord and Plex Media Server. This can be used to manage a Plex Server from Discord and provide active watch and server stats.
      • Tautulli - Better statistics panel for Plex Media Server. Also pushes new content notifications to a Discord server.
      • Whoogle Search - Self-hosted Google search results without ads, javascript, AMP links, cookies, or IP address tacking. Better and faster Google searching.
    • Stack 8 - Kutt.it
      • This is used for automatic link shorting of automatic uploaded screenshots I take with ShareX on Windows and DropShare on Mac. I also sometimes use for standard link shortening.
    • Stack 9 - Torrent Management
      • Gluetun - A VPN client that supports OpenVPN. It connects to a PIA account to route this stack's internet traffic through.
      • qBittorrent 2x - This client handles the downloading of my Linux ISOs. I use 2 of them for different types of content.
      • Flaresolverr - A small server that uses chromium via CLI to bypass Cloudflare Turnstile robot verification.
      • Overseerr - A client that allows users of my Media servers to request Linux ISOs
      • Prowlarr - Indexes specified torrent sites and collects magnet links, saves that information, and allows for fast torrent fetching.
      • Unpackerr - Automatically extracts torrents that are downloaded that contain compressed files.
      • Radarr 2x - Used for media management. I use two instances for different content.
      • Sonarr 2x - Used for media management. I use two instances for different content.
    • Stack 10 - Vaultwarden
      • A decentralized, self-hosted, community fork of Bitwarden's self hosted password management server. It can be used with the first party Bitwarden clients.
  • MV - Gaming Server
    • A Windows Server that runs multiple game servers. Many game servers do not support native Linux or Wine/Proton on Linux. This is used to host these servers.
  • VM - MacOS Sonoma
  • VM - Windows Azure Deployment Testing (Azure Testing)

NAS Server:

Below my main server is my 45Drives HL15 chassis that runs my NAS Server. I am running TrueNAS Scale as it's my preferred NAS software. Currently I am working on moving all my data to Pool 2 to slowly replace some smaller HDDs I have in my server that have been around for a while. I do not use my HL15 to host anything other than my storage needs.

  • CPU - Intel Xeon E5-2620 v4
  • RAM - 64GB DDR4 ECC
  • Motherboard - ASUS X99-A
  • NIC - Chelsio T420-BT
  • HBA - 2x Dell H200 SAS HBA
  • Storage:
    • Boot - Samsung 970 EVO 1TB SSD
    • Pool 1:
      • 6x Western Digital Ultrastar WUH721414ALE6L1 14TB HDDs
        • This main pool is used for all general storage. It attached to all Docker containers that need storage and also stands and the media storage.
    • Pool 2:
      • 3x 1TB SATA SSDs.
        • This is a testing pool that I use for fast temp off storage. Often used for testing, 10 Gigabit Network Benchmarking, etc.

Remote Gaming PC:

The 4U server chassis below the HL 15 is my VR PC. I had a spare 4U chassis and figured it would make for a good remote gaming server. This machine is running Windows 11 and has a Sunshine Client installed. I connect to it with Moonlight to remote game. I also use this PC for VR Gaming as I my VR setup is next to where my server rack lives. I was able to route some cables out the bottom of the server that still lets me take advantage of my entire play space.

On the blank panel below I have my 3 Vive trackers mounted on the font to ensure connectivity range.

  • CPU - Intel i9-9900K
  • RAM - Teamgroup Elite DDR4 32GB (2x 16GB Kit)
  • Motherboard - ASUS Prime Z390
  • Storage:
    • Boot - WD 500GB NVME
    • Game - SK Hynix Gold 1TB SATA SSD
  • GPU - Nvidia GeForce RTX 3080

Battery Backup:

Finally at the bottom of the server rack I have an APC Smart-UPS 1500. This is primarily a power conditioner for most of my servers. At some point I will need to get a second UPS to handle the load between all the machines but for now this does take care of any potential brown-outs I may get.