By LK Wood IV · 2026-05-16 · ~14 min read · St. Louis County, MO

Architecture flow diagram: wall outlet to a CyberPower CP1500PFCLCD line-interactive UPS (1500VA/900W) over USB HID into a Proxmox node running NUT, then a four-step on-battery shutdown timeline — ONBATT 5-minute grace, 300-second low-battery trigger, qm shutdown of running VMs, and a clean host power-off, with the NAS on a slave delay.

A homelab without a UPS is a data integrity incident waiting to happen. An unclean power-off hits a Proxmox cluster mid-write the same way it hits any other server: ZFS journals, VM checkpoints, and TrueNAS datasets can survive it, but they do not have to — and the margin between “survived” and “corrupted” is thinner than most people expect until they lose a pool after a brief power flicker.

This article covers everything between buying decision and runtime calculation: VA vs W, line-interactive vs online double-conversion, how to read a runtime curve, how much power typical homelab configurations actually pull, how to wire NUT into Proxmox so VMs shut down before the battery reaches critical, and the battery replacement math you need to know before the first cell dies.

Methodology and sources

This article is a research-based sizing guide. Power-draw figures come from manufacturer specifications, vendor-published runtime curves, and third-party review measurements — cited inline at each claim. The CyberPower CP1500PFCLCD is used as a representative line-interactive unit throughout because it is widely deployed in the homelab community and CyberPower publishes its full runtime curve; the same sizing math applies to comparable units from APC (Back-UPS Pro, Smart-UPS lines), Eaton (5-series, 9-series), and Tripp Lite (SmartPro, SmartOnline).

Primary sources used in this article:

Last updated: 2026-06-08. Sources reviewed and current as of this date.

VA vs W: why they are not the same number

Almost every UPS ships with two power ratings: a VA (volt-ampere) rating and a W (watt) rating. The CP1500PFCLCD is rated 1500VA / 900W. That gap is not a typo.

VA is apparent power — the product of RMS voltage and RMS current regardless of phase relationship.

W is real power — the power that actually does work.

The ratio W/VA is the power factor. A pure resistive load (incandescent bulb) has a power factor of 1.0. Switching power supplies in servers and NAS units have power factors between 0.6 and 0.99 depending on whether they include active power factor correction (PFC). Per the 80 Plus certification program, virtually all PC and server PSUs sold for the homelab market after 2012 include active PFC and run 0.90–0.99. Older PSUs or cheap unbranded gear can pull the number to 0.6.

What this means for sizing: you cannot add up device wattages and buy a UPS rated to that wattage. You need to know the VA draw as well, and the UPS’s W rating must exceed your total watt draw.

Required VA = Total W load ÷ power factor

If you have 450 W of gear at a power factor of 0.9, you need at least 500VA of UPS capacity. If your load has mixed power factors — one good server PSU and a few uncorrected wall-warts — average conservatively.

Reference power draw for typical homelab gear

The figures below are published manufacturer specs and third-party measurements. Use them as starting points for your own sizing; verify with a wall-meter on your specific gear before committing to a UPS purchase.

Device classTypical idle WTypical peak WSource
Mid-tier AM4/AM5 Proxmox node (64 GB, 4×NVMe)38–48 W110–135 WServeTheHome desktop/homelab power testing
Synology DS923+ (4 spinning disks, idle)35–42 WSynology DS923+ data sheet
Synology DS923+ (4 disks, spin-up/resync)70–80 WSynology DS923+ data sheet
UniFi USW-24 (24-port managed switch)17 W typical30 W maxUbiquiti USW-24 datasheet
UDM-Pro22 W typical50 W maxUbiquiti UDM-Pro datasheet
Reference stack — idle~120 WSum of above
Reference stack — peak~260–295 WSum of above

A typical mid-tier homelab stack — single Proxmox node + 4-bay NAS + small managed switch + router — draws roughly 120 W idle and 260–295 W peak at the wall per the above source aggregate. Applied to the CP1500PFCLCD’s 900W / 1500VA rating, this stack uses 29–33% of the watt rating and 19–22% of the VA rating at peak draw (load VA = W / 0.9). Headroom on this order is intentional — it lets the stack grow without re-sizing the UPS and gives long runtime at real loads.

The common failure mode is sizing a UPS to the wattage label on each device’s nameplate. Nameplate power is the rated maximum, not typical draw. A server that nameplate-says 300 W might idle at 45 W and peak at 150 W under real workloads. Size to measured draw or to expected peak, not to nameplate.

Line-interactive vs online double-conversion

The UPS market splits into three topologies. The two that matter for homelabs are line-interactive and online double-conversion.

Standby (offline) UPS — utility power passes straight through; battery kicks in on outage. Switchover time is 4–8 ms. Adequate for desktops; not appropriate for homelab servers and NAS where mid-write power loss is a real risk.

Line-interactive UPS — adds an autotransformer or buck-boost circuit so the UPS can correct voltage sags and surges without switching to battery. Switchover time is 2–4 ms on most models. This is the right pick for 80% of homelabs. The CP1500PFCLCD is line-interactive.

Online double-conversion UPS — input power is rectified to DC, then reinverted to AC. The load always runs on the inverter; the battery is always in the loop. Switchover time is effectively zero because there is no switchover — the load never touches utility AC directly. Double-conversion units also have a power factor of ~1.0 on the output side. They are heavier, louder, run hotter, and consume 5–10% more electricity than line-interactive at the same load. The APC Smart-UPS series (SMT and SRT lines) and Eaton 9-series are the most common double-conversion units in home racks.

For most homelabs, line-interactive is the right answer. The 2–4 ms switchover time is well within the holdup time of any modern server PSU (typically 16–20 ms per the Intel ATX power supply design guide). Double-conversion is worth the premium if you have equipment that does not tolerate a brief switchover glitch — some Ethernet switches reset during the transition per ServeTheHome’s UPS coverage — or if you need zero-transfer protection for a data acquisition setup.

FeatureStandbyLine-interactiveOnline double-conversion
Transfer time4–8 ms2–4 ms0 ms
Voltage regulation without batteryNoYesYes
Output power factorUtility (varies)Utility (varies)~1.0
Efficiency at 50% load~98–99%~95–98%~88–92%
Heat / noiseLowLow–mediumMedium–high
Cost per VA$$$$$$
Right for homelab?NoYesOnly if zero-transfer required

Reading the runtime curve

Every UPS ships with a runtime curve — a chart or table that maps load to runtime in minutes. Runtime curves are one of the most misread specs in homelab buying discussions.

The runtime curve for the CP1500PFCLCD (CyberPower product page):

LoadRuntime
900 W (100%)~3 min
450 W (50%)~8 min
270 W (30%)~16 min
135 W (15%)~36 min
90 W (10%)~55 min

At a typical homelab idle load of around 120 W (roughly 13% of rated capacity), the curve interpolates to roughly 40–45 minutes — 120 W sits between the 135 W (~36 min) and 90 W (~55 min) points, much nearer the 135 W end. This site’s UPS Runtime Calculator, whose model is fitted to this same curve, returns ~41 minutes at 120 W. Do not read the 10%-load figure as if it applied at 13%. ServeTheHome’s UPS reviews report comparable runtimes at similar loads, with the usual caveat that runtime declines as the battery ages over its first year.

What runtime you actually need. Most homelabs do not need 60 minutes of runtime. They need enough time for:

  1. NUT to detect the outage and signal Proxmox to begin VM shutdown (configurable; 5 minutes on battery is a common threshold).
  2. All VMs to complete a clean checkpoint and power off (1–4 minutes depending on how many are running and whether any are pinned to high-memory workloads).
  3. The host OS to power off cleanly.

A total of 5–10 minutes of runtime covers clean shutdown on almost any homelab. You only need 30+ minutes if you have a ride-through workload — something that must stay online during a typical brief outage and only shut down on a long event.

Size for your shutdown window, not for “how long could I theoretically run.” This lets you buy a smaller or less expensive UPS and still protect data integrity.

How much does a homelab actually draw?

Practical breakdown by common configuration, drawn from manufacturer specs and community measurement data aggregated in ServeTheHome’s UPS coverage and desktop/homelab power testing:

ConfigurationTypical idle WTypical peak WMinimum UPS W
Single mini-PC (N100/N305) + NAS18–35 W55–80 W200 W
Single Ryzen/Intel desktop node + NAS + switch80–130 W160–220 W300 W
Two-node Proxmox cluster + NAS + switch + router140–250 W280–450 W600 W
Full three-node Proxmox HA cluster + NAS + networking300–500 W600–900 W1200 W
GPU node added (RTX 5060 Ti under inference load)+130 W idle+350 W peak+600 W

If you run a GPU node like the RTX 5060 Ti build as part of your homelab, factor in the GPU’s TDP (the 5060 Ti is rated 180 W, measuring around 160 W under typical inference loads). Whether to put the GPU node on the UPS depends on whether it is running a service that needs clean shutdown — like a local inference server — or whether it is primarily a desktop workstation.

NUT integration with Proxmox

Network UPS Tools (NUT) is the open-source daemon suite that reads UPS status from USB or serial and signals connected nodes to shut down on low battery. Proxmox VE has native NUT support through its node settings panel, but configuring NUT directly in /etc/nut/ gives you more control over thresholds and VM-aware shutdown sequencing.

Installation and basic configuration

apt install nut nut-client

Check the USB device:

lsusb | grep -i cyber
# or
nut-scanner -U

/etc/nut/ups.conf for a CyberPower USB-connected UPS:

[myups]
    driver = usbhid-ups
    port = auto
    desc = "CyberPower CP1500PFCLCD"
    override.battery.charge.low = 20
    override.battery.runtime.low = 300

The battery.runtime.low = 300 override tells NUT to trigger a low-battery event when estimated runtime remaining drops to 300 seconds (5 minutes) — enough headroom to complete a clean shutdown regardless of VM activity when the event fires.

/etc/nut/upsd.conf:

LISTEN 0.0.0.0 3493

/etc/nut/upsd.users:

[upsmon]
    password = changeme
    upsmon master

/etc/nut/upsmon.conf on the Proxmox master node:

MONITOR myups@localhost 1 upsmon changeme master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h now"
NOTIFYCMD /usr/sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG ONLINE SYSLOG+WALL

Start and enable services, then verify the UPS is responding:

systemctl enable --now nut-server nut-client
upsc myups@localhost

upsc should immediately return battery charge, runtime estimate, and load percentage. If the driver fails to connect, check dmesg for the USB HID device and confirm port = auto is resolving correctly.

VM-aware shutdown via upssched

By default, NUT’s SHUTDOWNCMD fires a hard OS shutdown without pausing running VMs first. The cleaner path calls qm shutdown on each running Proxmox VM before the OS shutdown command executes.

The Proxmox community NUT wiki page covers the full upssched.conf pattern. The relevant script skeleton:

#!/bin/bash
# /usr/local/bin/ups-on-battery.sh
qm list | awk 'NR>1 && $3=="running" {print $1}' | \
    xargs -I{} qm shutdown {} --timeout 120
sleep 30
/sbin/shutdown -h now

Chain this from upssched.conf with a timer event on ONBATT. A common configuration is 5 minutes from the ONBATT signal before the script fires, plus 30 seconds for all VMs to complete shutdown before the host powers off.

For a Proxmox cluster with NFS-mounted storage from a TrueNAS node (see Proxmox vs TrueNAS vs Unraid storage backends 2026), shutdown order matters: VMs must complete shutdown before the NFS server goes offline. If compute and storage share one UPS, configure the NFS host as a NUT slave with a longer shutdown delay. If they are on separate UPS units, size the storage UPS slightly larger so it outlasts the compute UPS by at least the VM shutdown window.

Surge protection and UPS placement

A UPS is not just a battery. Its front-end surge suppression absorbs impulse events that would otherwise reach connected equipment. Most line-interactive UPS units include MOV surge suppression on all outlet banks, rated in joules.

The CP1500PFCLCD is rated for 900 joules of surge suppression. A direct lightning strike on a residential power line can release tens of thousands of joules — no UPS absorbs that. A typical line surge from a nearby strike or utility switching event is 25–300 joules, which is within spec.

Do not daisy-chain a UPS through a surge suppressor or extension cord. Either can introduce impedance that affects UPS load calculations, and some units will refuse to operate correctly if input ground continuity is not clean. Plug the UPS directly into a wall outlet, on a dedicated 20A circuit if possible.

Battery replacement TCO

Every sealed lead-acid (SLA) battery has a service life of approximately 3–5 years under ideal conditions (float temperature 20–25°C, moderate discharge cycles). Homelab environments are rarely ideal — high ambient temperature from a server closet accelerates cell degradation significantly.

CyberPower and APC both publish cycle-life curves showing how many charge-discharge cycles a battery sustains at different discharge depths. Shallow cycles (10–20% per event) extend life; deep cycles (80–100%) compress it.

Replacement batteries for the CP1500PFCLCD use two 12V 9Ah SLA cells (CyberPower part RB1290X2, ~$38 retail; third-party equivalents run $25–35 a pair). Replacement takes about 5 minutes with a screwdriver.

Recommended battery replacement schedule:

  • Year 3: Run a 50% load test and check runtime against the vendor curve. If runtime has degraded below 60% of rated at that load, replace.
  • Year 4: Replace regardless of test result.
  • Year 5: If not yet replaced, do it now. A failed UPS battery does not fail gracefully — it may fail to carry any load on the next outage without warning.

Battery replacement cost per year:

UPS modelBattery costReplacement intervalAnnual cost
CyberPower CP1500PFCLCD~$38 OEM / ~$28 3rd-party3–4 years$7–13/yr
APC BR1500MS2~$45 OEM / ~$30 3rd-party3–4 years$8–15/yr
APC Smart-UPS SMT1500RM2UC~$65 OEM hot-swap4–5 years$13–16/yr
Eaton 5PX1500RT~$70 OEM4–5 years$14–18/yr

The total ownership cost of a line-interactive UPS over five years — unit cost, battery replacements, and the ~5% efficiency penalty at load — is lower than the cost of a single data recovery engagement on a corrupted NAS pool.

UPS picks for 2026

BudgetModelVA / WTopologyPure sine waveNotes
~$150CyberPower CP1500PFCLCD1500VA / 900WLine-interactiveYesBest value for most homelabs; USB HID, NUT-compatible
~$180APC BR1500MS21500VA / 900WLine-interactiveYesAPC warranty support; USB + SmartSlot
~$250CyberPower CP2000PFCLCD2000VA / 1200WLine-interactiveYesRight for two-node clusters or if a GPU node is on the UPS
~$400–550APC Smart-UPS SMT1500RM2UC1500VA / 1000WOnlineYesRack-mount; zero transfer; preferred for Proxmox HA clusters
~$700+Eaton 5PX1500RT1500VA / 1350WOnlineYesHot-swap battery; Gigabit card slot; rack-mount

The “pure sine wave” column matters for active-PFC server PSUs. A UPS that outputs a simulated (stepped) sine wave can cause PSUs with active PFC to produce audible noise or fail to start cleanly when switching to battery. All models in the table output a true sine wave on battery.

How I would size this stack today

For a representative single-node homelab on a CP1500PFCLCD, the reference stack above (~120 W idle) maps to roughly 40–45 minutes of vendor-rated runtime — far more than NUT needs to complete a VM-aware shutdown sequence before the battery reaches its critical threshold. A sensible configuration is a 5-minute ONBATT grace period and a low-battery threshold of 300 seconds of remaining runtime. Annual operating cost is modest: a few dollars in inverter-heat electricity loss plus roughly $10/year in battery amortization on the schedule below.

Keeping compute and networking on separate UPS units — for example, a larger unit for the Proxmox node and NAS and a smaller CyberPower CP900EPFCLCD for the UDM-Pro, switch, and patch panel — means the network stays up after compute shuts down, which is useful for remote access after a power event.

Sizing fresh today for a two-node Proxmox cluster with the NFS storage described in Proxmox vs TrueNAS vs Unraid storage backends 2026, a CP2000PFCLCD (1200 W) covers compute and NAS together, with networking on its own sub-500 W unit. At three nodes or with a GPU inference node, the APC SMT1500RM2UC in a 2U rack slot is the better fit.

The firewall decisions from Homelab Firewall and Router Stack 2026 are the other half of this equation. A pfSense or OPNsense box on its own UPS turns a “network flicker” into a “compute rebooted gracefully while the network stayed up” — which is the target outcome for a homelab with managed infrastructure depending on it. The 10GbE switching layer is worth protecting on the networking UPS too, since 10GbE NICs can reset on switchover glitches from lower-quality standby units.

Sources

Frequently asked questions

What size UPS do I need for a homelab?
Size to measured draw, not nameplate labels. A typical single-node homelab – one Proxmox or desktop node, a 4-bay NAS, a managed switch, and a router – draws roughly 120 W idle and 260-295 W peak at the wall, so a 1500 VA / 900 W line-interactive unit like the CyberPower CP1500PFCLCD runs it at about 29-33% of its watt rating at peak with long runtime and room to grow. Rough minimums by build: a mini-PC (N100/N305) plus NAS needs about 200-300 W of UPS capacity; a two-node Proxmox cluster with NAS and switch about 600 W; a full three-node HA cluster with networking about 1200 W. Add 20-30% headroom over your expected peak draw.
How do you calculate the UPS size for a server?
Add up the real (watt) draw of everything you will protect – measured at the wall, not the nameplate maximum – then convert to VA with Required VA = total watts / power factor. Modern active-PFC server and NAS power supplies run a power factor of about 0.90-0.99, so 450 W of gear needs roughly 500 VA of UPS capacity. Pick a UPS whose watt rating comfortably exceeds your total watt draw, with 20-30% headroom for peaks and growth. Nameplate wattage overstates real draw: a server labeled 300 W often idles near 45 W and peaks around 150 W.
How long will a 1500 VA UPS run a homelab?
Runtime depends on load, not just the VA rating. On the CyberPower CP1500PFCLCD (1500 VA / 900 W), the vendor runtime curve is about 3 minutes at a full 900 W load, ~8 minutes at 450 W (50%), ~16 minutes at 270 W, and ~55 minutes at 90 W. A typical ~120 W idle homelab – about 13% of rated capacity – sits between the 135 W and 90 W points on that curve, so expect roughly 40-45 minutes, not the ~55 minutes the 10% figure suggests. Most homelabs do not need that: 5-10 minutes is enough for NUT to detect the outage and shut down the VMs and host cleanly. Size for your shutdown window, not maximum theoretical runtime.
What is the difference between VA and watts on a UPS?
VA (volt-amperes) is apparent power – RMS voltage times RMS current. Watts is real power, the power that actually does work. Their ratio is the power factor, which is why a UPS carries both ratings: the CP1500PFCLCD is 1500 VA / 900 W, a 0.6 rated power factor. You cannot just add device wattages and buy a UPS with that watt rating – the UPS watt rating must exceed your total watt draw, and its VA rating must exceed your load VA (watts / power factor). Active-PFC PC and server PSUs run a power factor near 0.9-0.99, so watts and VA are close for that gear.
Do I need a UPS for a homelab?
If your homelab writes data – any server, NAS, or Proxmox node – yes. The risk is not losing a few minutes of uptime; it is an unclean power-off hitting a filesystem mid-write. ZFS journals, VM checkpoints, and TrueNAS datasets can survive a sudden power loss, but they do not have to, and the margin between ‘survived’ and ‘corrupted pool’ is thinner than most people expect until a brief flicker costs them a pool. A UPS plus a NUT-triggered clean shutdown removes that failure mode, and even a small line-interactive unit is enough because you only need a few minutes to shut down safely.
How often do homelab UPS batteries need to be replaced?
Sealed lead-acid UPS batteries last about 3-5 years, and less in a warm server closet, since heat accelerates cell degradation. A practical schedule: at year 3, run a 50% load test and replace if runtime has dropped below 60% of the vendor-rated figure; replace by year 4 regardless. Replacement cells are cheap – the CP1500PFCLCD uses two 12 V 9 Ah cells at about $28-38 a pair and swaps in around 5 minutes – which works out to roughly $7-13 a year. A failed UPS battery does not fail gracefully, so do not wait for an outage to find out.

Evidence ledger

Last updated
Methodology
This homelab guide was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs and prices verified against vendor and project documentation current on the date above. Full editorial standard: methodology.
Update log
  • 2026-08-14 — Corrected two numbers that contradicted this page’s own tables. (1) Runtime at a 120 W load was stated as 45-55 minutes in both the FAQ and the runtime-curve section. The CP1500PFCLCD curve reproduced immediately above gives ~36 min at 135 W and ~55 min at 90 W, so 120 W cannot reach 45-55 min; interpolation gives ~42 min and this site’s UPS Runtime Calculator (model fitted to the same curve: 0.14 Wh/VA, 0.88 inverter efficiency, derate = 0.469 - 0.225 x load fraction) returns 40.6 min. The 45-55 figure had carried the 10%-load runtime across to a 13% load. Corrected to 40-45 minutes. (2) The reference-stack peak row was labelled ‘Sum of above’ but read ~245 W, below the minimum sum of its own peak column (Proxmox node 110-135 W + DS923+ spin-up 70-80 W + USW-24 30 W max + UDM-Pro 50 W max = 260-295 W). Corrected to 260-295 W, and the derived 27% / 17% UPS utilisation figures recomputed to 29-33% / 19-22%.
  • 2026-08-15 — Meta-audit follow-up to the 2026-08-14 runtime correction: a third instance of the same wrong figure survived on this page. The “How I would size this stack today” section still mapped the ~120 W reference stack to “roughly 45-55 minutes of vendor-rated runtime” after the FAQ and the runtime-curve section had been corrected. Re-derived from the same CP1500PFCLCD curve reproduced above: 135 W gives ~36 min (81 Wh delivered) and 90 W gives ~55 min (82.5 Wh), so a 120 W load delivers ~81.5 Wh and runs ~41 min. Corrected to 40-45 minutes, matching the other two statements on this page.
Corrections
Spotted an error or a stale number? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.

About the author

Written by Lowell K. Wood IV, who builds and runs TechFuelHQ from St. Louis, Missouri.