nutalert is a self-hosted UPS monitoring system for NUT (Network UPS Tools) servers. It features a modern web interface to visualize live data and manage settings, sends customizable alerts when specific conditions are met, and supports dozens of notification destinations
- Seemless connection to NUT servers to monitor UPS devices
- Multi-platform support: nutalert supports notifications for
and many more Thanks to Apprise integration.
- Modern Web UI monitor UPS device data and adjust settings
- Configurable Alerts based-on:
- ⏳ Runtime
- 🔋 Battery charge
- ⚡ Input voltage
- 📈 UPS Load
- 🔄 UPS status
- Dual Configuration Modes:
- 🔤 Basic (individual condition checks)
- 🧮 Formula (custom expressions)
Access the web interface at http://{server_ip}:8087
to:
- Configure notification destinations
- Adjust rules and UPS limits
- View system logs
Before beginning your deployment, make sure your NUT server is operational. The instructions below cover two deployment scenarios: running both the NUT server and nutalert in a single Docker environment, or hosting nutalert while your NUT server runs externally. You can skip this step if you are setting up nut-upds
at the same time using this guide.
If your NUT server is hosted externally, first verify connectivity from the nutalert host:
/bin/echo -e "list var ups\r" | /usr/bin/nc -w 1 <nut-server-ip> 3493
A successful response will display a list of available UPS variables from your NUT server confirming that nutalert can retrieve your monitoring data.
If you wish to run your NUT server using Docker alongside nutalert, create a docker-compose.yaml
file with the following content:
services:
nut-upsd:
image: instantlinux/nut-upsd
container_name: nut
environment:
- TZ=America/New_York # modify if different
- API_PASSWORD={PASSWORD} # required for nut, not nutalert
- DRIVER=usbhid-ups # modify based on your ups model
devices:
- /dev/bus/usb:/dev/bus/usb # your ups device
ports:
- 3493:3493 # nut port, modify if needed
restart: unless-stopped
nutalert:
image: ghcr.io/rmfatemi/nutalert:latest
container_name: nutalert
depends_on:
- nut-upsd
ports:
- 8087:8087 # web ui port, modify if needed
volumes:
- /path/to/config_dir:/config # set the correct config path
restart: unless-stopped
If your NUT server is hosted separately you can remove nut-upsd
from template above and add its port to nutalert
's ports section.
Once your docker-compose.yaml
and config.yaml
file are ready, start the service with:
docker-compose up -d
This project is licensed under the MIT License - see the LICENSE file for details.