Building Your HomeLab Server - Hardware & Ubuntu Setup [Part 2 of 10]
Choosing the right hardware and installing a rock-solid foundation
![]()
![]()
![]()
![]()
Youâve decided to build a HomeLab. Now comes the fun part: building (or repurposing) the server that will run everything.
The good news? You donât need enterprise-grade hardware or a massive budget. Letâs talk about what actually works.
Hardware: What You Actually Need
The Reality Check
You probably already have something that will work. That old gaming PC gathering dust? The desktop you replaced last year? Even a retired office workstation can make an excellent HomeLab server.
Donât let âperfectâ be the enemy of âgood enough.â Start with what you have, learn the ropes, then upgrade if needed.
Hardware Options (Budget to Beast)
Option 1: Repurpose What You Have ($0)
Best for: Getting started, learning, testing
What works:
-
Old gaming PC (5+ years old)
-
Retired desktop or workstation
-
Mini PC with decent specs
-
Even a laptop (if you can keep it cool and plugged in)
Minimum specs:
-
Multi-core CPU (Intel i5/i7, AMD Ryzen 5/7, or equivalent)
-
16GB RAM (8GB will work but youâll feel the limits quickly)
-
256GB+ storage for OS
-
Gigabit Ethernet port
Real talk: Iâve seen HomeLabs running on 10-year-old hardware. If it boots and has network connectivity, you can probably use it.
Option 2: Budget Build ($300-600)
Best for: Dedicated server on a budget
What to look for:
-
Used office workstation (Dell Optiplex, HP ProDesk, Lenovo ThinkCentre)
-
Often available for $200-400
-
Reliable, quiet, low power consumption
-
Easy to find parts
-
Refurbished server (Dell PowerEdge T-series, HP ProLiant ML-series)
-
More expandable
-
Can be louder and use more power
-
Great for learning enterprise hardware
Recommended specs:
-
CPU: Intel i5/i7 (6th gen+) or AMD Ryzen 5/7
-
RAM: 16-32GB DDR4
-
Storage: 256GB SSD for OS + 3-4 drives for RAID
-
Network: Gigabit Ethernet (built-in is fine)
Where to buy:
-
eBay, Craigslist, Facebook Marketplace
-
Local computer shops
-
Corporate surplus sales
Option 3: Mini PC Build ($270-600)
Best for: Compact, quiet, low power consumption
Real-world example (my first HomeLab):
-
Base: PELADN WO4 Mini PC or similar
-
AMD Ryzen 5 5600H (6 cores/12 threads)
-
16GB RAM (stock)
-
512GB SSD (stock)
-
Dual 2.5Gbe LAN
-
Price: ~$270
-
Upgrades I added:
-
32GB RAM upgrade (~$65-100)
-
2TB SSD upgrade (~$100-150) - Did this immediately to avoid reinstalling
-
Total cost: ~$435-520
Why a mini PC?
-
Small footprint (fits anywhere)
-
Very quiet operation
-
Low power consumption (~15-35W)
-
Dual NIC options available (great for networking projects)
-
Upgrade RAM and storage as needed
-
Perfect for learning without a huge investment
This is where I started - ran multiple Docker containers, learned the basics, then upgraded to bigger hardware later when I needed more power.
Option 4: New Budget Build ($600-1000)
Best for: Building exactly what you want
Sample build:
-
CPU: AMD Ryzen 5 5600 or Intel i5-12400 (~$150-200)
-
Motherboard: B550/B660 with good I/O (~$100-150)
-
RAM: 32GB DDR4 (2x16GB) (~$65-160)
Storage:
-
500GB NVMe SSD for OS (~$40-60)
-
4x 4TB HDDs for RAID 5 (~$300-400)
-
Case: ATX case with good airflow (~$50-80)
-
PSU: 550-650W 80+ Bronze (~$50-80)
Total: ~$755-1,130
Option 5: Enthusiast Build / Repurposed Gaming PC ($1000-2000+)
Best for: Future-proofing, heavy workloads, or repurposing high-end hardware
Real-world example (my setup):
-
Source: Retired gaming PC (removed GPU, repurposed for HomeLab)
-
CPU: AMD Ryzen 9 7950X (16 cores/32 threads)
-
RAM: 128GB DDR5
Storage:
-
1TB NVMe for OS
-
3x 2TB NVMe in RAID 5 for Docker/data
-
Motherboard: ASUS ROG STRIX X670E-E
Why repurpose a gaming PC?
-
Already have the hardware (free!)
-
High-end components = excellent server performance
-
Remove GPU = lower power consumption
-
Runs 10+ Docker containers simultaneously
-
Room for VMs and future expansion
-
Handles media transcoding, photo processing, etc.
The lesson: Donât buy new if you have capable hardware sitting around. That old gaming rig makes an excellent HomeLab server.
My Hardware Recommendations by Use Case
Just Starting Out
-
CPU: 4-6 cores minimum
-
RAM: 16GB (upgrade to 32GB later)
-
Storage: 1 SSD + 2-3 HDDs for RAID
-
Budget: $0-400 (repurpose or used)
Running 5-10 Services
-
CPU: 6-8 cores
-
RAM: 32GB
-
Storage: 1 SSD + 3-4 HDDs for RAID
-
Budget: $400-800
Power User / Future-Proofing
-
CPU: 8+ cores
-
RAM: 64GB+
-
Storage: NVMe for OS + 4+ drives for RAID
-
Budget: $1000+
Donât Forget These Components
Network Connection
-
Gigabit Ethernet minimum (local network speed, not your ISP)
-
Wired connection (WiFi works but not recommended for a server)
-
Most motherboards have this built-in
Power Protection
-
UPS/Battery backup highly recommended
-
Protects against power outages and surges
-
Gives time for graceful shutdown
Options:
-
Budget: CyberPower (~$100-150)
-
Premium: APC (~$150-300)
-
Portable: EcoFlow RIVER 2 Pro (~$400-600)
Cooling
-
Stock CPU cooler is usually fine for servers
-
Good case airflow is more important than fancy cooling
-
Keep it in a ventilated area
Installing Ubuntu Server
Now that you have hardware, letâs install the operating system.
Why Ubuntu Server?
My choice: Ubuntu Server - Hereâs why:
-
Massive community support - Largest user base means easy to find help
-
Long-term support (LTS releases get 5 years of updates)
-
Excellent documentation - Tutorials and guides everywhere
-
Docker-friendly - Everything just works
-
Beginner-friendly - Great for learning Linux server administration
Other solid options:
-
Debian - Lighter weight, more experienced users
-
Ubuntu is based on Debian, so very similar
-
Slightly more minimal and stable
-
Great choice if you want less bloat
-
Proxmox - If you want to run VMs alongside containers
-
CentOS Stream / Rocky Linux - Enterprise-focused (RHEL-based)
Important notes:
-
Most popular distros are Debian or Ubuntu-based anyway
-
Weâre installing server (no desktop GUI) - keeps it lightweight
-
You can add a desktop environment later if you want, but itâs not needed
-
For this series, Iâm using Ubuntu Server for consistency
Bottom line: Ubuntu Server hits the sweet spot of beginner-friendly + powerful + well-supported.
Download Ubuntu Server
-
Download Ubuntu Server 24.04 LTS (or latest LTS version)
-
Youâll get an
.isofile (~2GB)
LTS = Long Term Support - Gets updates for 5 years. Always choose LTS for servers.
Create Installation Media
Youâll need a USB drive (8GB minimum) to install Ubuntu.
On Windows:
-
Download Rufus
-
Insert USB drive
-
Open Rufus
-
Select your USB drive
-
Select the Ubuntu
.isofile -
Click Start
On Mac:
-
Download balenaEtcher
-
Insert USB drive
-
Open Etcher
-
Select the Ubuntu
.isofile -
Select your USB drive
-
Click Flash
On Linux:
# Find your USB drive (usually /dev/sdb or /dev/sdc)
lsblk
# Write ISO to USB (replace /dev/sdX with your drive)
sudo dd if=ubuntu-24.04-live-server-amd64.iso of=/dev/sdX bs=4M status=progress
sudo sync
Installing Ubuntu Server
BIOS/UEFI Settings (Important for Newer Hardware)
Before installing, check these BIOS settings:
Enter BIOS/UEFI:
- Power on and press F2, F12, Del, or Esc (varies by manufacturer)
Settings to disable (if present):
-
Secure Boot - Can prevent Linux from booting
-
Usually under Security or Boot settings
-
Set to Disabled
-
Fast Boot - Can cause USB boot issues
-
Usually under Boot settings
-
Set to Disabled
Settings to enable:
-
UEFI Boot Mode (not Legacy/CSM)
-
Modern standard, better compatibility
-
Virtualization (Intel VT-x / AMD-V)
-
Needed if you plan to run VMs later
-
Usually under CPU or Advanced settings
Boot order:
-
Set USB drive as first boot device
-
Or use one-time boot menu (usually F12)
Save and exit - Your system will reboot
Boot from USB
-
Insert USB drive into your server
-
System should boot from USB automatically
-
If not, enter boot menu (F12) and select USB drive
Installation Steps
The Ubuntu installer is text-based but straightforward:
1. Language Selection
- Choose your language (English is fine)
2. Keyboard Layout
-
Select your keyboard layout
-
Test it to make sure itâs correct
3. Installation Type
- Choose âUbuntu Serverâ (not minimal)
4. Network Configuration
-
Use DHCP for now (weâll set static IP later)
-
Make sure it detects your Ethernet connection
-
Note the IP address shown
5. Proxy Configuration
-
Leave blank unless you need a proxy
-
Most home users donât
6. Mirror Configuration
-
Use default Ubuntu mirror
-
It will auto-select based on your location
7. Storage Configuration
This is important. You have two options:
Option A: Use Entire Disk (Simple)
-
Select your OS drive (usually the SSD)
-
Choose âUse an entire diskâ
-
Enable LVM (Logical Volume Manager)
-
This is fine for getting started
Option B: Custom Partitioning (Advanced)
-
Only if you know what youâre doing
-
Weâll cover RAID setup in Part 3
For now, choose Option A. Weâll add RAID storage later.
8. Profile Setup
-
Your name: Your actual name
-
Server name:
homelab-server(or whatever you want) -
Username:
admin(or your preferred username) -
Password: Choose a strong password (youâll use this a lot)
9. SSH Setup
-
Install OpenSSH server (IMPORTANT!) -
This lets you manage the server remotely
-
Donât skip this
10. Featured Server Snaps
-
Donât select anything here
-
Skip all snap packages
-
Weâll install everything manually using apt (traditional package manager)
Why avoid snaps?
-
Slower startup times
-
Larger disk usage
-
Can have permission issues with Docker volumes
-
We want full control over our installations
-
Throughout this series, we wonât use snaps at all
11. Installation
-
Review your choices
-
Confirm and start installation
-
This takes 10-15 minutes
-
When done, select âReboot Nowâ
-
Remove the USB drive when prompted
First Boot
After reboot, youâll see a login prompt:
homelab-server login: _
Log in with:
-
Username:
admin(or whatever you chose) -
Password: (your password)
Youâre in! You should see a command prompt:
admin@homelab-server:~$
Initial Configuration
Letâs do some basic setup before moving forward.
Update the System
# Update package lists
sudo apt update
# Upgrade installed packages
sudo apt upgrade -y
# Reboot if kernel was updated
sudo reboot
Set Static IP Address
Your server needs a consistent IP address. Right now itâs using DHCP (dynamic).
Find your current network info:
ip addr show
Look for your Ethernet interface (usually eno1, enp0s3, or eth0). Note:
-
Your current IP address (e.g.,
192.168.1.100) -
Your subnet mask (usually
/24)
Edit netplan configuration:
sudo nano /etc/netplan/00-installer-config.yaml
Replace the contents with (adjust values for your network):
network:
version: 2
ethernets:
eno1: # Replace with your interface name
dhcp4: false
addresses:
- 192.168.1.100/24 # Your desired static IP
routes:
- to: default
via: 192.168.1.1 # Your router's IP
nameservers:
addresses:
- 192.168.1.1 # Your router (or 8.8.8.8 for Google DNS)
Save and exit: Ctrl+X, then Y, then Enter
Apply the configuration:
sudo netplan apply
Test it:
ip addr show
ping -c 3 google.com
Your server now has a static IP!
Basic Security
Before we go further, letâs lock down SSH access.
Disable IPv6 (Optional but Recommended)
If youâre not using IPv6 on your network:
sudo nano /etc/sysctl.conf
Add these lines at the end:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Apply changes:
sudo sysctl -p
Configure Firewall (UFW)
Ubuntu includes UFW (Uncomplicated Firewall). Letâs enable it.
Run these commands on your Ubuntu server:
# Allow SSH from your local network only
# NOTE: Replace 192.168.1.0/24 with YOUR network range
# Common ranges: 192.168.0.0/24, 192.168.1.0/24, 10.0.0.0/24
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp comment 'SSH from LAN'
# Enable firewall
sudo ufw enable
# Check status
sudo ufw status numbered
Important:
-
Replace
192.168.1.0/24with your actual network range -
To find your network: Look at your serverâs IP (e.g.,
192.168.1.100) -
If your IP is
192.168.1.100, your network is192.168.1.0/24 -
If your IP is
192.168.0.50, your network is192.168.0.0/24 -
If your IP is
10.0.0.25, your network is10.0.0.0/24
TL;DR
-
Hardware: Start with what you have, upgrade later if needed
-
Minimum specs: Multi-core CPU, 16GB RAM, SSD + HDDs
-
OS: Ubuntu Server 24.04 LTS (free, stable, well-supported)
-
Installation: Boot from USB, follow installer, enable SSH
-
Post-install: Update system, set static IP, enable firewall
-
Next: Weâll set up RAID storage in Part 3
Your Turn
What hardware are you using for your HomeLab?
Building new or repurposing old equipment?
Hit any snags during Ubuntu installation?
Drop a comment below!
Navigation: â Part 1 | Part 3 â