Home Server Battery Backup Guide

Quick Recommendation

For a mini PC server (50-100W load): CyberPower CP685AVRG (~$75, 685VA/390W, 15 min runtime). For a NAS + switch + server (200-400W load): APC Back-UPS Pro 1500S ($200, 1500VA/900W, ~10 min runtime). Pair either with NUT (Network UPS Tools) for automatic shutdown when battery gets low.

Why Your Server Needs a UPS

A power outage without a UPS means:

  • Data corruption — file writes interrupted mid-operation corrupt filesystems, databases, and Docker volumes
  • ZFS/Btrfs risk — copy-on-write filesystems are resilient but not immune to dirty shutdowns
  • Hardware damage — power surges when electricity returns can fry PSUs and drives
  • Downtime — server won’t restart automatically if BIOS isn’t configured for it

A UPS gives you 5-30 minutes of battery power — enough for an orderly shutdown that closes databases, stops containers, and unmounts filesystems cleanly.

UPS Types

TypeHow It WorksSwitchover TimeBest For
StandbyBattery kicks in when power drops5-12msBasic protection, low loads
Line-InteractiveAVR regulates voltage; battery for outages2-4msHome servers (recommended)
Online (Double Conversion)Battery always inline0msCritical infrastructure

Line-interactive is the sweet spot. The Automatic Voltage Regulation (AVR) handles brown-outs and voltage sags without switching to battery — extending battery life. Standby UPS units drain battery on every minor fluctuation. Online UPS is overkill and expensive for home use.

Sizing Your UPS

Step 1: Calculate Your Load

Measure or estimate the total power draw of everything on the UPS:

DeviceTypical Draw
Mini PC (N100)8-25W
Desktop server (Ryzen/Intel)50-120W
Enterprise rack server150-350W
4-bay NAS (Synology/QNAP)30-50W
Managed switch10-20W
Router10-15W
PoE switch (with APs powered)30-80W

Step 2: Size the UPS

Rule of thumb: UPS VA rating should be 1.5-2x your total load in watts. This ensures adequate runtime and doesn’t stress the battery.

Total LoadMinimum UPSRecommended UPS
50-100W500VA750-1000VA
100-200W750VA1000-1500VA
200-400W1000VA1500-2200VA
400-600W1500VA2200-3000VA

VA vs Watts: UPS capacity is rated in VA (volt-amperes). Watts = VA × power factor. Most UPS units have a 0.6 power factor, so a 1500VA UPS delivers 900W. Always check the watt rating, not just VA.

Step 3: Estimate Runtime

Runtime depends on load and battery capacity. Manufacturer specs are optimistic — expect 70-80% of advertised runtime.

UPSRated VA/WRuntime @ 100WRuntime @ 200WRuntime @ 400W
CyberPower CP685AVRG685/390W15 min6 min
APC Back-UPS Pro 10001000/600W25 min11 min4 min
APC Back-UPS Pro 1500S1500/900W40 min18 min8 min
CyberPower PR1500LCD1500/1050W35 min15 min7 min

You don’t need 30+ minutes of runtime. The purpose is to shut down cleanly, not ride out the outage. 5-10 minutes is enough for a graceful shutdown. Save money on a smaller UPS and invest in a proper shutdown script.

Top UPS Picks

CyberPower CP685AVRG — Best for Mini PC Servers

SpecValue
TypeLine-interactive
Capacity685VA / 390W
Battery outlets4
Surge-only outlets4
InterfaceUSB (HID-compatible)
Runtime @ 50W~30 min
Runtime @ 100W~15 min
Price~$75

Perfect for an Intel N100 mini PC + switch + router. The 50W load gives 30 minutes — more than enough.

APC Back-UPS Pro 1500S (BR1500MS2) — Best Overall

SpecValue
TypeLine-interactive (with AVR)
Capacity1500VA / 900W
Battery outlets6
Surge-only outlets4
InterfaceUSB (HID-compatible)
Runtime @ 100W~40 min
Runtime @ 200W~18 min
Runtime @ 400W~8 min
Price~$200

The homelab standard. Handles a server + NAS + networking gear comfortably. The pure sine wave output is safe for active PFC power supplies (which most modern PSUs use).

CyberPower PR1500LCD — Best for Rack Mount

SpecValue
TypeLine-interactive
Capacity1500VA / 1050W
Form factor2U rack-mountable
InterfaceUSB + serial
Runtime @ 200W~15 min
Price~$280

Fits in a server rack next to your enterprise hardware. 2U form factor, front LCD display.

Automatic Shutdown with NUT

NUT (Network UPS Tools) monitors your UPS via USB and triggers a clean shutdown when battery runs low. It’s the standard for Linux UPS management.

Install NUT

sudo apt install nut

Configure NUT

# /etc/nut/ups.conf
[myups]
    driver = usbhid-ups
    port = auto
    desc = "APC Back-UPS Pro 1500S"
# /etc/nut/upsd.conf
LISTEN 0.0.0.0 3493
# /etc/nut/upsd.users
[admin]
    password = changeme
    actions = SET
    instcmds = ALL

[upsmon]
    password = changeme
    upsmon master
# /etc/nut/upsmon.conf
MONITOR myups@localhost 1 upsmon changeme master
SHUTDOWNCMD "/sbin/shutdown -h now"
# /etc/nut/nut.conf
MODE=standalone
# Start NUT
sudo systemctl enable nut-server nut-monitor
sudo systemctl start nut-server nut-monitor

# Test
upsc myups

NUT as Docker Container

If you prefer running NUT in Docker alongside your other services:

services:
  nut-upsd:
    image: instantlinux/nut-upsd:2.8.2
    ports:
      - "3493:3493"
    devices:
      - /dev/bus/usb:/dev/bus/usb
    environment:
      - API_USER=admin
      - API_PASSWORD=changeme
      - DESCRIPTION=Home Server UPS
      - DRIVER=usbhid-ups
      - PORT=auto
    restart: unless-stopped
    privileged: true

Shutdown Script

Create a script that gracefully stops Docker containers before system shutdown:

#!/bin/bash
# /usr/local/bin/graceful-shutdown.sh

# Stop Docker containers gracefully
docker stop $(docker ps -q) --time 30

# Sync filesystems
sync

# Shutdown
shutdown -h now

Configure NUT to call this script:

# In /etc/nut/upsmon.conf
SHUTDOWNCMD "/usr/local/bin/graceful-shutdown.sh"

Multi-Server Shutdown

NUT supports a master/slave topology. The server connected to the UPS via USB is the master. Other servers on the same UPS monitor the master over the network:

On slave servers:

# /etc/nut/upsmon.conf
MONITOR myups@master-server-ip 1 upsmon changeme slave
SHUTDOWNCMD "/sbin/shutdown -h now"

The master waits for all slaves to shut down before shutting itself down.

Monitoring UPS in Your Dashboard

With Uptime Kuma

Uptime Kuma can monitor NUT status:

  • Add a TCP monitor for localhost:3493
  • Or use the NUT monitor type if your version supports it

With Grafana + Prometheus

Use the nut_exporter to expose UPS metrics to Prometheus:

services:
  nut-exporter:
    image: druggeri/nut_exporter:3.1.1
    ports:
      - "9199:9199"
    environment:
      - NUT_EXPORTER_SERVER=nut-upsd
    restart: unless-stopped

Track battery charge, load percentage, input voltage, and runtime remaining on your Grafana dashboard.

Battery Maintenance

TaskFrequencyWhy
Check battery health (self-test)MonthlyCatches failing batteries early
Replace batteryEvery 3-5 yearsLead-acid batteries degrade with age
Clean contactsAnnuallyCorrosion increases resistance
Test shutdown scriptQuarterlyConfirm the script still works

Self-test:

# Trigger UPS self-test via NUT
upscmd myups test.battery.start.quick
# Check results
upsc myups ups.test.result

Battery replacement: Most UPS batteries are standard sealed lead-acid (SLA). Replacement batteries cost $20-50 — much cheaper than a new UPS. APC uses RBC-numbered batteries; CyberPower uses standard 12V 7Ah or 9Ah SLA.

FAQ

Do I need a pure sine wave UPS?

If your server has an active PFC power supply (most modern ATX PSUs do), yes. Simulated sine wave can cause active PFC supplies to shut down or malfunction during battery operation. All APC Back-UPS Pro and CyberPower PFC-compatible models output pure sine wave on battery.

Can I put my UPS in a server rack?

Yes — buy a rack-mount UPS (2U form factor). The CyberPower PR1500LCD and APC SMT1500RM2U are popular rack-mount options. Tower UPS units can also sit on a rack shelf.

How do I know when to replace the battery?

NUT reports battery health. When battery.charge no longer reaches 100% or runtime drops significantly, replace the battery. Most UPS units also have a “replace battery” LED/alarm.

Should I put my modem/router on the UPS?

Yes. If the server stays up but your network goes down, remote management (SSH, iDRAC) won’t work, and network-dependent services fail. Put your modem, router, and primary switch on the UPS.