Thanks to visit codestin.com
Credit goes to github.com

Skip to content

rmfatemi/nutalert

Repository files navigation

UPS Monitoring and Alert System

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


Features

  • Seemless connection to NUT servers to monitor UPS devices
  • Multi-UPS support: monitor multiple UPS devices with individual settings
  • Multi-architecture support: runs on amd64, arm64
  • 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)

Web Interface

Access the web interface at http://{server_ip}:8087 to:

  • Configure notification destinations
  • Adjust rules and UPS limits
  • View system logs
Screenshot From 2026-01-24 03-44-34 Screenshot From 2026-01-24 03-46-21

Setup Guide

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-upsd at the same time using this guide.

Verify NUT Server Connectivity

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.

Docker Deployment Scenarios

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

Using an External NUT Server

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 file is ready, start the service with:

docker-compose up -d

On first start, nutalert will auto-detect all UPS devices on your NUT server and generate a default config file. You can then customize settings through the web UI or by editing the config file directly.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Customizable UPS monitoring and alert system designed to integrate with NUT

Resources

License

Stars

146 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors