Personal Homelab
A compact self-hosted server rack combining NAS storage, media services, network tools, custom cooling control, and PCB-based power distribution.
Project Overview
A custom 10-inch homelab rack inspired by the Lab Rax Mini, designed as a compact NAS, media server, and self-hosting platform. The system is built around a ZimaBoard 2 running as the main server, hosting Immich for photo management and Jellyfin for media streaming, with a secondary ZimaBlade handling Pi-hole and providing room for additional lightweight network services in the future.
The rack has been adapted to suit my own storage, cooling, and power requirements, with a custom PCB solution for HDD power delivery and thermal management. This includes automatic fan control using an STM-based controller to read temperature sensors and adjust cooling performance, alongside a manual fixed-speed mode using a 555 timer in astable operation. The project combines 3D-printed mechanical design, self-hosted services, custom PCB design, embedded control, and practical power distribution into a modular homelab system.
Key Features
Custom PCB Power and Cooling System
Custom PCB solution providing thermal control and SATA power delivery, designed to interface with a compact 250 W power supply and support multiple storage drives and cooling fans.
Custom-designed NAS Rack Levels
Each rack level uses a custom-designed panel tailored to the hardware it supports, including fan panels, HDD bays, the network switch and ZimaBlade layer, the ZimaBoard server layer, and the power supply section. This keeps the compact rack organised, serviceable, and purpose-built around the final homelab layout.
Technical Development
Fan Control and Temperature Monitoring PCBs
A custom PCB solution was developed to manage the cooling system for the homelab rack. The fan control board is designed around two operating modes: an automatic temperature-controlled mode using an STM32 microcontroller, and a manual fixed-speed mode using a 555 timer configured in astable operation.
In automatic mode, the STM32 reads temperature sensor feedback and adjusts fan output based on the thermal conditions inside the rack. This allows the cooling system to respond to HDD and enclosure temperature changes without requiring constant manual adjustment. The board also includes programming access through an ST-Link connection, allowing the STM32 firmware to be flashed and debugged during development.
The manual mode provides a hardware fallback using a 555 timer PWM circuit. This allows the fans to run at a fixed speed even if the microcontroller is disabled, unprogrammed, or not required for a particular operating mode. This added redundancy was useful from both a design and troubleshooting perspective, as it separates basic fan operation from the embedded control system.
Power Supply and SATA Power Distribution
The rack uses a compact power supply mounted with custom standoffs, with a dedicated SATA power distribution PCB mounted alongside it. The purpose of this board is to simplify internal power wiring by routing supply connections from Molex Mini-Fit style connectors to individual SATA power outputs for the hard drives.
Each branch from the input connectors is routed to a dedicated SATA connector, reducing loose wiring inside the enclosure and making the drive power layout easier to service. This also makes the power system more modular, as the board acts as a central distribution point between the power supply and the storage drives.
The SATA power PCB also includes a rear-accessible wakeup switch, allowing the system to be controlled from the rear panel without needing to open the enclosure. This was included to improve day-to-day usability once the rack is fully assembled.
3D Printing, Enclosure Design, and Assembly
The mechanical design was originally inspired by mklements' LabRax concept, but the final layout has been altered substantially to suit my own hardware, cooling, storage, and serviceability requirements. The project keeps the compact 10-inch rack concept, while adapting the internal layout around the ZimaBoard, ZimaBlade, HDDs, power supply, fan system, and custom PCB assemblies.
The enclosure components are printed in black PETG to provide better temperature resistance than PLA, which is useful for a compact server rack containing hard drives, electronics, and active cooling. The side panels are laser cut from acrylic, giving the enclosure a cleaner finish while still allowing access and visibility into the internal layout.
This part of the project involved fitting together multiple disciplines: CAD layout, 3D printing, panel design, PCB mounting, cable routing, airflow planning, and practical assembly. A major goal was to keep the rack modular enough that individual boards, drives, or service nodes could be accessed and modified as the system evolves.
Project Outcome
This project is being developed as a compact, modular homelab platform for managing personal media, self-hosted services, storage, and future network tools while also serving as a practical electronics and mechanical design project.