selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Eneru logo

Self-host Eneru

v6.2.2

UPS monitoring and coordinated shutdown for NUT

ReleaseOpen SourceMIT
Updated7 hours ago
LanguagePython
Setup difficultyModerate
ThemeDark mode
Stars
151
Port
9191 (API and web dashboard)
Requires
Network UPS Tools (NUT)
Docker
ghcr.io/m4r1k/eneru
Install with Docker
Eneru TUI monitor dashboard showing real-time UPS statusEneru browser dashboard with UPS status cards and history graphsEneru Grafana dashboard with UPS metrics and power quality panels

What is Eneru?

Eneru is a Python daemon for Network UPS Tools that watches one or more UPSes and coordinates orderly shutdown of virtual machines, containers, remote servers, mounted filesystems, and the local host when power fails. It ships a browser dashboard and a terminal UI, both served by an embedded API that also exposes Prometheus metrics, MQTT publishing, and a Grafana dashboard. Authentication uses local bcrypt-hashed accounts and API keys. Six trigger types drive shutdown decisions: battery percentage, remaining runtime, observed depletion rate, elapsed time on battery, the NUT forced-shutdown flag, and a connection-loss failsafe. Battery anomaly detection spots unexpected charge drops with vendor-specific filtering for major UPS brands. A guided terminal editor (eneru config) builds and validates the YAML configuration, while eneru config check runs live read-only probes against NUT, SSH, and sudo to preview the exact shutdown sequence. The project is MIT-licensed and runs via Docker/Podman, native deb/rpm packages with systemd, PyPI, or Kubernetes.

Should you self-host Eneru?

Eneru scores 51/100 on selfhost.directory (how scoring works) and ranks #58 of 104 in Monitoring & observability. It has 151 GitHub stars.

It shipped 23 stable releases in the past year. The latest, v6.2.2, came out on 8 October 2026. New versions land roughly every 2 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is grafana (90/100, 77 566 stars). It scores higher overall, so compare the two before you pick. See Eneru vs grafana side by side.

Features

  • Authenticated API
  • Battery anomaly detection
  • Battery health scoring
  • Browser dashboard
  • Energy and cost tracking
  • Grafana Dashboard
  • MQTT publishing
  • Multi-UPS monitoring
  • Orchestrated multi-resource shutdown
  • Periodic reports
  • Persistent notifications
  • Prometheus Metrics
  • Scheduled NUT self-tests
  • Six independent shutdown triggers
  • TUI dashboard

Eneru README

How to install Eneru

Install Eneru with Docker

Docker/Podman, Linux host, NUT server accessible

docker pull ghcr.io/m4r1k/eneru:latest

No config yet? Create one with the guided editor shipped in the image.

SELinux hosts: keep :Z here AND add :Z to the daemon's /srv/eneru mounts

below (see docs/install-docker.md); non-SELinux hosts can drop both.

sudo install -d -o 10001 -g 10001 /srv/eneru docker run --rm -it --network host -v /srv/eneru:/srv/eneru:Z
ghcr.io/m4r1k/eneru:latest config --config /srv/eneru/config.yaml

docker run -d --name eneru
--restart unless-stopped
-p 9191:9191
-v /srv/eneru/config.yaml:/etc/ups-monitor/config.yaml
-v /srv/eneru/state:/var/lib/eneru
-v /srv/eneru/run:/var/run/eneru
-v /srv/eneru/ssh:/var/lib/eneru/ssh
ghcr.io/m4r1k/eneru:latest
run --config /etc/ups-monitor/config.yaml
--api --api-bind 0.0.0.0 --api-port 9191

For full local-host ownership from a container, add --network host, -v /etc/machine-id:/etc/machine-id:ro, and a loopback SSH key. Hosts without systemd (Alpine, musl) need a marker file instead.

Eneru releases & version history

More in Infrastructure

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…