====== 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