This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
UPS
Battery backup for the cabinet in the upstairs office — a CyberPower CP1500PFCRM2U feeding the TrueNAS NAS, two mini-server PCs, the local network switch, and the TV setup, with the NAS doing graceful shutdown over USB via NUT.
Hardware
- Model: CyberPower CP1500PFCRM2U
- Form factor: 2U rack-mount (sitting on a cabinet shelf, not racked)
- Capacity: 1500VA / 1000W
- Topology: Line-interactive, pure sine wave output (PFC-friendly — important for modern PSUs)
- Communication: USB HID (also has serial / SmartSlot for a network card, unused here)
- Outlets: 8× 5-15R on the back
Replaced an older unit that was at the end of its battery life.
What's on it
The UPS lives in the cabinet in the upstairs office and powers a mix of homelab and TV gear. All 8 outlets on the CP1500PFCRM2U are battery + surge (no surge-only bank on this model), so everything plugged into the unit gets battery backup.
Homelab gear
| Load | Role |
|---|---|
| TrueNAS tower (Silverstone CS382) | The NAS — see My Setup for the full hardware list |
| Discourse mini-PC (left, under the UPS) | Debian box running Discourse, Forgejo, Filedrop, Filebrowser, Cloudflare tunnels, landing sites — see Host |
| bellagio mini-PC (right, under the UPS) | Plex server with 2× 5TB external drives — see Plex |
| TP-Link TL-SG1016DE (on top of the UPS) | 16-port managed gigabit switch — local LAN backbone for the cabinet |
Only the TrueNAS tower is monitoring the UPS over USB. The two mini-servers are dumb loads — they get ride-through power during a blip, but on a long outage they'll lose power when the battery dies. No NUT client running on either yet.
TV gear
| Load | Role |
|---|---|
| TV | Office display |
| Apple TV | Streaming box |
| HDHomeRun FLEX 4K | Network OTA tuner — feeds live TV / DVR to Plex on bellagio |
That's 7 of 8 outlets used; one spare.
Not on the UPS
- The other TP-Link switch on the lower cabinet shelf.
- The UniFi router in the laundry room — this is the upstream gateway for the whole house, and it's on raw wall power. Relevant for outage behavior: see follow-ups.
Wiring
Wall outlet ──> UPS ──> TrueNAS tower
├──> Discourse mini-PC
├──> bellagio (Plex)
├──> TL-SG1016DE switch
├──> TV
├──> Apple TV
└──> HDHomeRun FLEX 4K
UPS USB ───────> TrueNAS USB port (for NUT monitoring)
The USB cable runs from the UPS up to a USB-A port on the TrueNAS tower. That single cable is what lets TrueNAS read battery state, input voltage, load, and temperature.
TrueNAS UPS service
TrueNAS SCALE ships with NUT (Network UPS Tools) built in. Configure it from the GUI rather than editing /etc/nut/* directly — TrueNAS regenerates those files from the database on every boot.
Configure
- System Settings → Services → UPS → click the pencil icon to edit.
- Fill in:
- Identifier:
ups(any short name; this becomes the device name inupsc) - UPS Mode:
Master(this host owns the USB connection) - Driver:
CyberPower CP1500PFCRM2U USB (usbhid-ups) - Port or Hostname:
auto - Monitor User / Password: set anything — they're only used by NUT clients
- Shutdown Mode:
UPS reaches low battery - Shutdown Timer: leave default (or set a seconds value if you want it to shut down before low-battery is reached)
- Identifier:
- Tick Send Email Status Updates if you want notifications, and set the recipient.
- Save, then toggle the service Running and tick Start Automatically.
Verify from the shell
upsc ups@localhost
Should print a block of battery.charge, input.voltage, ups.load, ups.status: OL (online), etc. If you see OB instead of OL, the UPS is reporting it's on battery — check that mains is actually present.
upsc ups@localhost ups.status
upsc ups@localhost battery.charge
upsc ups@localhost input.voltage
Monitoring
The TrueNAS Reporting → UPS page graphs everything NUT exposes — input frequency, input voltage, load percentage, battery charge, and UPS internal temperature — over a configurable time window.
The system dashboard shows pool health and CPU/memory at a glance, but the UPS panel itself lives under Reporting:
Behavior on outage
- Short blip (< a few seconds): UPS rides through on battery; nothing notices.
- Sustained outage: UPS runs on battery until the configured shutdown condition (
low batteryby default). TrueNAS then runs its shutdown sequence: stop services, export pools, power off cleanly. - Local LAN stays up: since the TL-SG1016DE is on the UPS, the NAS and the two mini-servers can still talk to each other on the cabinet segment. But the UniFi router upstream is on wall power, so internet and cross-house routing drop immediately — no remote access, no traffic between the cabinet and any other room.
- Discourse mini-PC and bellagio: keep running on battery alongside the NAS, but will not shut down gracefully when the battery hits low — they just lose power. Acceptable because the services on them tolerate hard-stops (Discourse / Forgejo / Filedrop are containerized; Plex's sqlite library db replays on next boot). Still, a future improvement.
- TV / Apple TV / HDHomeRun: ride through blips, hard-stop at low battery. Consumer devices, no shutdown coordination needed — they just power back on with the next outlet cycle.
Follow-ups
- NUT slaves on the discourse box and bellagio. Install
nut-clienton Debian, pointupsmon.confat the TrueNAS host asMONITOR ups@<truenas-ip> 1 <user> <pass> slave, and let them shut down cleanly on low battery. The user/password are whatever was set in the TrueNAS UPS service. - Networking isn't worth adding here. Putting the cabinet modem on the UPS doesn't help on its own — the UniFi router in the laundry room is on raw wall power, so the LAN can't route during an outage anyway. To preserve remote access you'd need a second small UPS in the laundry room for the UniFi. Otherwise accept that outage = no external reachability and lean on the NAS's graceful shutdown.
- Self-test schedule. CyberPower units support a periodic battery self-test — worth enabling once a month so a dead battery surfaces before an actual outage.
Navigation
Quick Links
Projects
Server (discourse)
- Host
- Cloudflare Tunnel
- Tailscale
- SFTP
- Discourse
- Forgejo
- Filedrop
- Filebrowser
- Landing Sites
- Onboarding
- Backups
- Recovery
Window Managers
Homelab
Docker
Software
Thoughts
Archived
Connect
Butterbian — my Debian 13 distro · butterrepo — community APT repo · butterknife — TUI installer
justaguylinux.com · Butterforge · Butter Lab · The Churn · YouTube · Mastodon · Links · Contact · Support on Buy Me a Coffee
"Not an expert. Just A Guy." — Licensed CC BY-SA 4.0 · © 2026 JustAGuy Linux



