UPS for the Homelab: Power Protection for Servers and NAS
A homelab without a UPS is a hardware failure waiting to happen. Power outages corrupt filesystems, kill ZFS pools mid-write, and damage storage controllers. A UPS provides runtime to survive brief outages and — more importantly — time to gracefully shut down before power runs out.
Photo by Abby Moulton on Unsplash
UPS Types
Standby (Offline) UPS
The most common and cheapest type. During normal operation, power flows directly from the wall. On outage, the unit switches to battery (2-10ms switchover time).
- Best for: Desktop computers, basic NAS, home networking
- Price: $50-200
- Example: CyberPower CP1500PFCLCD, APC Back-UPS Pro
The brief switchover delay is generally not a problem for modern power supplies, which handle gaps up to 10-20ms.
Line-Interactive UPS
More sophisticated: includes an autotransformer (AVR — Automatic Voltage Regulation) that corrects minor voltage fluctuations without switching to battery. Better protection against brownouts and overvoltage.
- Best for: Servers, NAS, workstations
- Price: $150-500
- Example: APC Smart-UPS, Eaton 5SC, CyberPower SmartApp series
For homelab servers and NAS: line-interactive is the right tier. Pure sinusoidal output is preferred for servers with active PFC power supplies (most modern server PSUs).
Simulated vs pure sine wave output: Line-interactive UPS units come in two output waveform types:
- Simulated (stepped) sine wave: Cheaper. Fine for most equipment. Some active PFC PSUs dislike it.
- Pure sine wave: More expensive. Compatible with all equipment. Recommended for server-class hardware.
Double-Conversion Online UPS
Power always flows through the inverter — no switchover delay. Provides the cleanest, most stable power.
- Best for: Production servers, equipment sensitive to power quality
- Price: $500-5000+
- Example: APC Smart-UPS Online, Eaton 9SX
Overkill for most homelabs, but appropriate for high-value equipment or enterprise-grade servers.
Sizing
Calculate your load before buying:
List your equipment with power draws:
- NAS: ~50-80W (varies with drive count and CPU)
- Homelab server (modest): 80-150W
- 24-port switch: 20-40W
- Router/firewall: 15-25W
- Raspberry Pi cluster: 5-20W total
Sum the wattage: Example: NAS (70W) + Server (120W) + Switch (30W) + Router (20W) = 240W
Size for 50-70% UPS capacity: A 240W load should have a 400-600VA/W UPS. The ratio of VA to W varies by power factor (typically 0.9 for modern units, so 500VA ≈ 450W).
Calculate runtime: Most UPS specs show runtime at 50% and 100% load. For graceful shutdown you need 5-15 minutes. Buy accordingly.
APC UPS Selector Calculator: APC and CyberPower both have online tools where you input your equipment and get UPS recommendations.
NUT: Network UPS Tools
NUT (Network UPS Tools) is the standard open-source software for communicating with UPS units and triggering graceful shutdowns. Most homelabs use NUT with USB or serial-connected UPS.
Installation
# Ubuntu/Debian/Proxmox
sudo apt install nut nut-server nut-client
Configure USB Connection
# Detect your UPS
sudo nut-scanner -U
# Output shows something like:
[nutdev1]
driver = "usbhid-ups"
port = "auto"
vendorid = "051d" # APC
productid = "0002"
/etc/nut/ups.conf
[homelab-ups]
driver = usbhid-ups
port = auto
desc = "APC Back-UPS Pro 1500"
/etc/nut/nut.conf
MODE=standalone
# Or MODE=netserver if multiple machines will connect
/etc/nut/upsd.conf
LISTEN 127.0.0.1 3493
# For network mode, listen on your LAN interface:
# LISTEN 192.168.1.50 3493
/etc/nut/upsd.users
[admin]
password = change-this
actions = SET
instcmds = ALL
[monitor]
password = monitor-password
upsmon master
/etc/nut/upsmon.conf
MONITOR homelab-ups@localhost 1 monitor monitor-password master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYCMD /usr/sbin/upssched
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
Start NUT:
sudo systemctl enable nut-server nut-client
sudo systemctl start nut-server nut-client
Check status:
upsc homelab-ups
Output includes: battery charge, load percentage, runtime remaining, input voltage, etc.
NUT Network Mode (Multiple Machines)
For a homelab with multiple servers:
NUT server (the machine connected to the UPS via USB):
- Runs
nut-server - Listens on network (configure LISTEN in upsd.conf)
NUT clients (other machines):
- Install
nut-client - In
upsmon.conf, point to the server:MONITOR [email protected] 1 monitor password slave - Client receives shutdown command from server when UPS is critical
All machines shut down gracefully when the UPS battery reaches a low threshold.
Like what you're reading? Subscribe to HomeLab Starter — free weekly guides in your inbox.
Proxmox + NUT Integration
For Proxmox, NUT is the recommended approach. You can also install the NUT plugin for the Proxmox web UI.
Configure Proxmox to receive shutdown commands:
# On Proxmox host
apt install nut-client
# /etc/nut/upsmon.conf
MONITOR homelab-ups@nut-server-ip 1 monitor password slave
SHUTDOWNCMD "/sbin/shutdown -h now"
When UPS goes critical, the NUT server triggers shutdown on all clients (including Proxmox), which cleanly stops VMs before the OS shuts down.
APC vs CyberPower
Both are popular homelab brands:
APC: Market leader, excellent NUT compatibility, good reliability. Smart-UPS line is highly regarded. More expensive.
CyberPower: Better price-to-capacity ratio. PFC Sinewave models use pure sine wave output. Good NUT support. Popular with homelab builders on budget.
Eaton: Enterprise-grade, excellent reliability, slightly more expensive than APC. Very good NUT support.
For a homelab: CyberPower PR1500LCD or similar (pure sine wave, line-interactive) is a common value choice. APC Smart-UPS 1500 is the reliable default.
Battery Replacement
UPS batteries last 3-5 years. Replacement batteries are available from third parties at lower cost than OEM (Amazon, BatteryClerk, similar). Most consumer UPS units use standard SLA batteries.
Set a calendar reminder to test the battery annually (most UPS units have a self-test button) and plan for replacement before failure.
