====== UPS - battery backup ======
An UPS is basically a big battery capable of powering your critical devices in case the main power goes out. This is very important for self-hosted services as an outage might result in a mess, specially if you are not home to restart / verify that things are back up running.
Running an UPS is not a set and forget task tough... Batteries usually last about 1 year, maximum 2 years for top products, and you need to replace them before they dies on you. Also, even new batteries do not have infinte capacity and you might need to poweroff your systems before they run out in case of a prolonged outage.
Using a good monitoring tool for UPS helps a lot.
====== Network UPS Tools ======
[[https://networkupstools.org/|Network UPS Tools (NUT)]] is a very cool project that is capable to manage your UPS, either ones connected via USB or via ethernet (and not only).
For a proper setup follow the great [[https://wiki.gentoo.org/wiki/NUT|Gentoo WIKI]] page on NUT.
===== Installation =====
It's pretty simple:
emerge --ask sys-power/nut
To detect your UPS devices, assuming it is connected locally or over the network:
/usr/bin/nut-scanner
the output from this command will go into the **/etc/nut/ups.conf** file.
If your UPS is USB, you need also the following:
usermod -a -G usb nut
===== Configuration =====
You need to populate the following files:
MODE=netserver
Here you put the output of the scan command above:
[nutdev1]
driver = "usbhid-ups"
port = "auto"
vendorid = "0463"
productid = "FFFF"
product = "Eaton 3S"
serial = "Blank"
vendor = "EATON"
bus = "001"
LISTEN 127.0.0.1 3493
LISTEN 10.0.0.1 3493
[monmaster]
password = monmaster
upsmon master
[monslave]
password = monslave
upsmon slave
MONITOR nutdev1@127.0.0.1 1 monmaster monmaster master
AT ONBATT * START-TIMER onbatt 300
AT ONLINE * CANCEL-TIMER onbatt online
AT LOWBATT * EXECUTE onbatt
AT COMMBAD * START-TIMER commbad 30
AT COMMOK * CANCEL-TIMER commbad commok
AT NOCOMM * EXECUTE commbad
AT SHUTDOWN * EXECUTE powerdown
AT REPLBATT * EXECUTE replacebatt
===== Autostart =====
Add the following services:
rc-update add upsdrv default
rc-update add upsd default
rc-update add upsmon default
# start now:
rc-service upsdrv start
rc-service upsd start
rc-service upsmon start