HomeGuides › Running NUT on macOS

Running NUT on macOS

The simplest reliable Mac setup is usually a NUT client: keep the UPS driver and NUT server on the always-on controller, and let macOS read it over a trusted LAN or VPN. A full local USB controller is possible, but needs drivers, upsd and upsmon to be configured and supervised separately.

Written and technically reviewed by Enfour, Inc. · Updated 9 September 2026

Short answer: install the clients with brew install nut, then test upsc -l controller.local and upsc [email protected]. In FrontierStack, open Power Control, choose NUT server or OpenNMC, enter the private controller address, discover UPSes, and select the returned name.

1. Decide where the controller lives

A NUT installation has three jobs: a hardware driver talks to the UPS, upsd shares readings and authorised commands, and upsmon decides when a computer should shut down. They may run on one machine or be split. For a Mac client, only the command-line clients are required; FrontierStack handles status and its own orderly service/VM/host shutdown rules.

2. Install and test the macOS client

brew install nut
upsc -l 192.168.1.20
upsc [email protected]

NUT normally listens on TCP 3493. Restrict it to the controller, trusted LAN or VPN. Do not publish it to the internet. Status generally needs no API key. Commands need a dedicated least-privilege user in the controller's upsd.users.

3. Understand the Homebrew service

Important: Homebrew's current nut service runs upsmon; it does not by itself supervise a local UPS driver and upsd. The formula is also built without SNMP support, so its package cannot run NUT's snmp-ups driver. Use a Linux/BSD controller, OpenNMC, or another NUT build with SNMP enabled for a network management card.

Homebrew's NUT configuration directory is $(brew --prefix)/etc/nut. A full local USB server needs a matching driver in ups.conf, explicit LISTEN rules in upsd.conf, users in upsd.users, and supervised startup for the driver and upsd. Confirm USB permissions and driver support for the exact model.

4. Add it to FrontierStack

  1. Open Power Control and pin the UPS.
  2. Choose NUT server or OpenNMC as the controller; the physical maker is recorded separately.
  3. Discover the UPS name and check battery, runtime, load, voltage and warnings.
  4. Add a command account only if hardware control is needed. FrontierStack displays only commands both advertised now and present on its reviewed list; every command is confirmed.

5. Build and test the shutdown ladder

Create a Battery shutdown rule: trigger after a chosen time on battery, below a charge threshold, or both; stop named services and VM services in order; then shut down the host. FrontierStack verifies each stop and cancels unfinished work when utility power returns. If PowerChute should also run, enable its watchdog and choose whether its failure stops the ladder or permits the fallback.

Test under controlled conditions. Simulate loss of utility power with someone present, use non-production services first, confirm alerts and cancellation, and verify the machine can start again after power returns. Never make the first full test during a real outage.

Primary references

NUT upsd.conf · NUT ups.conf · Homebrew NUT formula · OpenNMC documentation

Run it from your Mac.

FrontierStack installs, monitors and secures services on this Mac and on linked servers.

Download FrontierStack