SkillAgentSearch skills...

Eneru

⚡ Eneru—Intelligent UPS monitoring daemon for NUT (Network UPS Tools) with configurable multi-system shutdown orchestration, Discord notifications, and enterprise-grade power event handling.

Install / Use

/learn @m4r1k/Eneru

README

<div align="center">

⚡ Eneru

UPS monitoring and shutdown orchestration for NUT

License: MIT Python 3.9+ NUT Compatible codecov Documentation PyPI

<p align="center"> <img src="https://raw.githubusercontent.com/m4r1k/Eneru/main/docs/images/eneru-diagram.svg" alt="Eneru Architecture" width="600"> </p>

A Python-based UPS monitoring daemon that watches UPS status via Network UPS Tools (NUT) and executes configurable shutdown sequences to protect your entire infrastructure during power events.

DocumentationGetting StartedConfigurationChangelog

</div>

Why Eneru?

Most UPS shutdown solutions handle a single system. Eneru handles multi-system environments:

| Challenge | Eneru Solution | |-----------|----------------| | Multiple servers need coordinated shutdown | ✅ Orchestrated multi-server shutdown via SSH | | VMs and containers need graceful stop | ✅ Libvirt VM and Docker/Podman container handling | | Network mounts hang during power loss | ✅ Timeout-protected unmounting | | No visibility during power events | ✅ Real-time notifications via 100+ services | | Different systems need different commands | ✅ Per-server custom shutdown commands | | Hypervisors need graceful VM shutdown | ✅ Pre-shutdown actions (Proxmox, ESXi, XCP-ng, libvirt) | | Battery estimates are unreliable | ✅ Multi-vector shutdown triggers | | Network down during outage | ✅ Non-blocking notifications with persistent retry |


Built for

  • Homelabs - Protect your self-hosted infrastructure
  • Virtualization hosts - Graceful VM shutdown before power loss
  • Container hosts - Stop Docker/Podman containers safely
  • NAS systems - Coordinate shutdown of Synology, QNAP, TrueNAS
  • Small business - Multi-server environments with single UPS
  • Hybrid setups - Mix of physical and virtual infrastructure

Quick start

Installation

PyPI:

pip install eneru[notifications]

Debian/Ubuntu:

curl -fsSL https://m4r1k.github.io/Eneru/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/eneru.gpg
echo "deb [arch=all signed-by=/usr/share/keyrings/eneru.gpg] https://m4r1k.github.io/Eneru/deb stable main" | sudo tee /etc/apt/sources.list.d/eneru.list
sudo apt update && sudo apt install eneru

RHEL/Fedora:

sudo dnf install -y epel-release
sudo curl -o /etc/yum.repos.d/eneru.repo https://m4r1k.github.io/Eneru/rpm/eneru.repo
sudo dnf install eneru

Configuration

# Edit configuration
sudo nano /etc/ups-monitor/config.yaml

# Validate and start
sudo python3 /opt/ups-monitor/eneru.py --validate-config
sudo systemctl enable --now eneru.service

Minimal Config

ups:
  name: "UPS@192.168.1.100"

triggers:
  low_battery_threshold: 20
  critical_runtime_threshold: 600

local_shutdown:
  enabled: true

See the full documentation for complete configuration options.


Features

  • Multi-vector shutdown triggers - Battery %, runtime, depletion rate, time on battery, FSD flag
  • Orchestrated shutdown - VMs, containers, remote servers, filesystems, local system
  • 100+ notification services - Discord, Slack, Telegram, ntfy, email via Apprise
  • Non-blocking notifications - Persistent retry without delaying shutdown
  • Power quality monitoring - Voltage, AVR, bypass, and overload detection
  • Dry-run mode - Test your configuration safely
  • Tested on every commit - Unit tests, integration tests across 7 Linux distros, and E2E tests with real NUT/SSH/Docker services

Why a systemd daemon? (No Docker)

Eneru runs as a systemd daemon, not a container. Its job is to shut down Docker/Podman containers during power events, so running inside a container would mean getting killed during its own shutdown sequence.

See the documentation for the full explanation.


The name

<img src="https://raw.githubusercontent.com/m4r1k/Eneru/main/docs/images/eneru.jpg" alt="Eneru from One Piece" width="120" align="right">

Named after Eneru (エネル) from One Piece, the self-proclaimed God of Skypiea who ate the Goro Goro no Mi (Rumble-Rumble Fruit) and can control electricity. When the power from the grid fails, this tool takes over and shuts everything down safely. Unlimited power... management!


Documentation

Full documentation at eneru.readthedocs.io:


License

MIT License - See LICENSE file for details.

View on GitHub
GitHub Stars63
CategoryDevelopment
Updated15d ago
Forks3

Languages

Python

Security Score

100/100

Audited on Mar 11, 2026

No findings