An overview of my 10-inch Rack Server setup
My 10” rack server has been running reliably for the past few years, but it was time for some improvements and upgrades. I’m going to take the opportuity to share my setup, as some people have been asking for a long time. I will add a quick Google search for most of the products in case someone is interested, as direct product links can get outated quickly.
The main goal was to have a compact and silent server for a variety of tasks, while using as little power as possible since it runs 24/7. The current power consumption is usually around 20-30W which is great for what it does, and there is still room for improvement especially on the software side to optimize idle times.
10” Rack Cabinet
Everything is housed in a 10” network rack cabinet (except for a Zigbee antenna placed on the outside, to avoid signal degradation), which is a great size for home use. If you have a 3D printer with at least 254mm on a diagonal, it is quite easy to design and 3D print custom rack units. If needed, it will also fit perfectly (with ventilation) inside an IKEA Alex unit, which will be its future home.
t looks cooler when it’s dark 😎 The cabinet I got is branded “HMF”, but I have seen similar ones also under the brand “Digitus”. The 12U version is just right for my needs.
Power Distribution Unit
I will mostly skip the topmost part, as it is still a bit of a mess and there is not much going on. There are a few components mounted on a DIN Rail, like a power meter, and then a 300W 12V DC Power Supply which powers most of the devices. This is more efficient than having each device using its own power supply.
Since many devices will be powered by either 12V or 5V, I also designed a custom Power Distribution Unit, where it is possible to tap into the 12V Power Supply via DC Jacks.
All models are made in Fusion360 and printed on a Bambulab P1S 3D printer in PLA (the only material I had in black, but it is holding up without issues).
There is a switch which enables the 5V section on the right side, where the voltage is converted using a cheap DC-DC step down voltage regulator module. The on-board LED display can monitor both the input and the output, which is useful for detecting eventual voltage drops.
Drives PSU and Monitoring Unit
Drives PSU
The next module is powered from 12V and takes care of powering the HDDs and SSDs by using a PicoPSU, which is a ~150W ATX power supply in the smallest available form factor. At the moment it is reliably powering two 3.5” HDDs and two SSDs.
I designed a custom unit in Fusion360 for this as well. On the right, the
PicoPSU clicks into place wihout any screws. There is a switch which to turn the
unit on/off by connecting PS_ON
to COMMON
and a small white LED to signal
its status.
Monitoring
On the left side of the same unit, there is a slot where I superglued a 5 pin 2.54mm header which acts as a mount for a M5AtomS3 Module (any Atom module will fit). The module is based on the ESP32-S3, and it is connected to the same LAN as the server via Wi-Fi. It monitors the status of some components and displays some information on its screen.
The module is powered by a 5V output from the Power Distribution Unit via a groove connector, which also allows for expansion by allowing more devices and sensors to be connected.
Network Switch and Patch Panel
Nothing fancy here, just a TP-Link Gigabit Switch with a custom 3D printed mount and a 10” Rack Patch Panel. For this one I just adapted an existing design to size. I considered 2.5 Gigabit, but decided that it was still not worth the hassle for my use cases.
Dell Optiplex Server (Unraid)
I’m still not sure if I want to rack mount this one, but Dell Optiplex Micro Form Factor PCs are great machines to use as home servers. They don’t require much power, and they are easy to find on the used market at reasonable prices, as companies often replace them after a couple years.
Here is a link to a chart comparing CPU, chipset and RAM of all Optiplex models since 2010, divided by year.
The OS I run on it is Unraid which is well worth the money. If you are not familiar with it, here are some of its main features:
- Unlike with RAID, you can mix and match any kind of drives, different sizes too
- Unraid relies on parity drives to recover from potential errors or drive failures
- There is an active community maintaining applications of all kinds
- You can use SSD drives as cache drives (great for keeping it silent, too)
- You can spin up only the drive that contains the file you need (like a movie), saving on power and wear
- And much more…
Unraid is designed to be run from a USB drive and loaded into memory, so it doesn’t even need a drive for the OS, saving those precious SATA ports for actual data drives.
Hardware mods
Since I need more drives than such a small PC has ports for, I removed all the existing ones (as mentioned, Unraid does not need any drives for the OS) and added a PCIe M.2 to 5x SATA adapter.
If you are having issues with the drives not being recognized while using this adapter, try disabling the RAID options in the BIOS. It is normal for the drives not to show up in the BIOS, as they will still be detected by Unraid.
There is no room inside the case to fit the SATA connectors, so I had to do some drastic modifications with a Dremel rotary tool. I cut open the case and then added a 3D printed frame so it doesn’t have any sharp edges and looks much cleaner.
Drives
As for the drives, I quickly designed and printed a system that allows to stack both 3.5” HDDs and 2.5” SSDs. This is great as a temporary solution and leaves some spacing between the drives to allow for cooling with a small 80mm fan.
The current drives connected directly to the Unraid server are:
- 2x 8TB HDDs for the Array (one of which is used for Parity)
- 1x 1TB SSD for the Cache
- 1x 1TB SSD for Backups
Raspberry Pi 4 Server (Homeassistant)
The included Raspberry Pi 4 is dedicated to runing Homeassistant. It does not run on the main Unraid server as I want to be able to replace it quickly in case of failure. For the same reason, it is not rack mounted, but a compact package attached directly to its own drives, so it is not dependent on the rest of the system and can be moved anywhere.
The OS is installed on the external SSD, as I have found the reliability of running these types of systems from a microSD to be terrible.
Almost every smart device I have runs locally on Zigbee, so there is an USB Zigbee dongle attached to the Pi to communicate through Zigbee2MQTT, while most of the automations are handled through Node-RED.
The whole setup is still a work in progress, as there are still some things which should be improved, but it still runs reliably nonetheless. In this post I covered mostly the hardware setup, but there is also a lot going on with the sofware side, which would require another post or two.