A homelab is a specialized computing device or collection of devices designed to provide a controlled and customizable computing environment suitable for work, learning, or hobby purposes.

My setup thus far includes most of my computing devices and network equipment in a rack that fits under my desk and sits on wheels so it all be moved as one unit. It's as portable as it gets for me.

rack

As a note to the reader, this is a living post that I update with my evolving setup– this is less a guide and more an example for anyone interested in homelabs.

Rack setup

My choice of rack was something that is portable enough to sit under a desk in my workspace, and can be occational moved around as one unit– for this I picked a 12U rack on caster wheels.

It's a work in progress– the build I've planned allows me to have a large amount of local storage, enough compute to run dozens of applications across various operating systems and virtual environments, including room for LLMs, and local databases and archives of datasets and GPUs for deeplearning .

rack plan

Networking

Part of the purpose of this portable rack is to contain my network devices alongside my computers. For the most part, I can simply plug-in internet access from any network provider, and have it securely distributed to my servers and any devices connected to the network via WiFi or wired LAN.

A managed network provides a predictable layer of security to my local network, while allowing devices to access my servers over LAN and via a VPN when I'm travelling. My exact setup does evolve, but generally consist of a managed router (usually Pfsense) and a switch. The exact appliances I use for this are not reccomendations nor endorsments.

Servers

Raspberry Pi cluster

I'm a fan of little computers that do things. Hence a Raspberry Pi cluster that I primarily use to run network monitoring software and a couple spares that I use as isolated VMs.

Multi-purpose server

Features a 2U server chassis, providing reasonable space for expansion and compatibility with most server racks. The Asus AM4 TUF X570-Plus motherboard was chosen for its compatibility with the latest AMD Ryzen processors and support for PCIe 4.0. We opted for the AMD Ryzen 5 5600X CPU, which offers excellent performance for the price and can handle a wide range of tasks.

svrt

For our GPU, we selected the ZOTAC GeForce GTX 1650, which offers solid performance at an affordable price. Our memory choice is 64GB of Corsair DDR4 RAM, providing enough capacity for running multiple applications and processes.

Storage is a combination of high-capacity Western Digital HDDs set up in RAID 6, SATA SSDs for frequently accessed data, and a high-performance NVMe SSD for the operating system and essential applications. Finally, a reliable and efficient power supply, the CORSAIR RM650x, powers our server.

ComponentSpecification
CaseSST-RM23-502 2U Server chassis
MotherboardAsus AM4 TUF X570-Plus
GPUZOTAC GeForce GTX 1650
CPUAMD Ryzen 5 5600X
RAM4 x Corsair Vengeance LPX 16GB
4 x Samsung 16GB UDIMM DDR4 2666MHz ECC
Storage4 x Western Digital 14TB WD Red Pro NAS HDD (RAID 6)
2 x 4TB SATA SSDs
Crucial P3 Plus 1TB PCIe Gen4 3D NAND NVMe M.2 SSD
PSUCORSAIR RMX Series™ RM650x 80 Plus Gold Fully Modular ATX Power Supply

These are components I had access to, so they're just here as a reference, not recommendations. With that said, this build has been performing great and recently hit a year of persistent uptime without a hitch.

GG server

My gaming PC turned GPU server is a pending addition. It's useful for video editing and rendering, any reasonable deep learning tasks, running LLMs, and lots of video games from PC to VR.

ComponentSpecification
MotherboardAsus X670-E
GPUNVIDIA GeForce RTX 4090
CPUAMD Ryzen 9 7950X 16-Cores 4.5GHz
RAMDDR5 6000MHz CL36 - 32 GB ( 2 x 16GB) x 2
Storage1 TB NAND NVMe M.2 SSD
PSUCybercore 1300W Platinum

Mac-mini server

This was a recent and useful addition. I've been experimenting with them for hosting local LLMs and they're almost ideal. The extra power of a mac-studio would be the ideal thing– hoping to upgrade this at some point, but this works well for now and gives me fewer reason to keep my power-hungry GPU build running.


Assembly

When assembling your server, focus on proper airflow and cable management for optimal performance and easier maintenance down the line. A well-organized build will not only be more efficient but also simpler to troubleshoot if issues arise.

(this is not a guide)

Once the hardware assembly is complete, install your preferred operating system (e.g., Linux, Windows Server, Proxmox) and set up the required services, applications, and network configurations.


Software

Managing a home server is not unlike managing any other server.There are a lot of options in terms of software you can run. The best choice for you depends on your specific needs, preferences, and familiarity with the platform. Some factors to consider include ease of use, hardware compatibility, feature set, scalability, and cost.

SoftwareKey FeaturesType
ProxmoxUser-friendly web interface, supports VMs and containers, robust feature set, open-sourceVirtualization & Server Management
TrueNAS SCALELinux-based, ZFS support, easy-to-use interface, compatible with VMs and containers, scalableNAS & Virtualization
Pi-holeNetwork-wide Ad Blocking, Web Interface for monitoring and configuration, LightweightNetwork Management & Security
Home AssistantPrivacy-focused, open-source home automation, supports a wide range of devices, easy integrationHome Automation
DockerSupports containerization, simplifies deployment of applications, platform-independentContainerization
NextcloudSelf-hosted file share and communication platform, strong privacy and security, extendable with appsFile Sharing & Collaboration
pfSenseOpen-source firewall and router, feature-rich, supports VPNs, traffic shaping, and network monitoringFirewall & Router

Maintenance

Proper maintenance and monitoring of your server are essential to ensure its reliability, security, and performance. Establishing a regular maintenance schedule and following best practices will help you achieve better uptime and extend the life of your server.

7 days uptime on server

Monitoring

  • System performance: Keep an eye on your server's CPU, RAM, and disk usage. Monitoring tools such as htop, top, or Glances can help you track system performance in real-time. Setting up alerts for high resource usage can help you identify potential issues before they become critical.

  • Log files: Regularly review log files to identify potential issues, security threats, or application errors. Tools like Logwatch, Graylog, or the ELK stack (Elasticsearch, Logstash, Kibana) can help automate log analysis and alert you to potential problems.

  • Uptime: Monitor your server's uptime using tools such as Uptime Robot, Pingdom, or a self-hosted solution like Nagios or Zabbix. These tools can notify you if your server becomes unreachable or experiences downtime.

Updates and Security

  • Operating system updates: Keep your server's operating system up-to-date by regularly installing security patches and software updates. This will help protect your server from vulnerabilities and improve stability. Set up a schedule to check for updates at least once a week, and more frequently for critical security updates.

  • Application updates: Similarly, keep your server's applications and services updated to their latest stable versions. This ensures you have the latest features and security improvements. Regularly review the release notes for any significant changes or known issues.

  • Backups: Regularly back up your server's data to protect against data loss or corruption. Implement a 3-2-1 backup strategy: keep at least three copies of your data, store two of them on different storage media, and have at least one copy offsite.

  • Firewall and security: Configure and maintain a properly configured firewall to protect your server from unauthorized access. Regularly review firewall rules and update them as needed. Use intrusion detection systems (IDS) like Snort or Suricata to monitor network traffic for malicious activity.

  • User account management: Regularly review user accounts and permissions, removing any unused or unnecessary accounts. Enforce strong passwords and use multi-factor authentication where possible.

By following a couple maintenance and monitoring practices, you can ensure your server remains secure, performs optimally, and achieves better uptime. Remember that consistency is key, so set up a maintenance schedule and stick to it.


Building a home lab can be a rewarding experience, offering a centralized platform for learning, experimentation, and hosting. By carefully selecting components and software tailored to your specific needs, you can create a powerful and versatile server that can grow and adapt with you over time.

Whether you're a maker, technology enthusiast, or someone looking to localize their digital resources, a home lab server can be a useful addition to your tools.