You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Upgrade Behavior:** Smart detection ensures running service restarts on upgrade, stopped service stays stopped
25
29
-**Service File Location:** Moved from `/etc/systemd/system/` to `/lib/systemd/system/` for proper package management
26
-
-**`__version__` Variable:** Version now embedded in source code and updated at build time from git tags
27
30
28
31
### Fixed
29
32
-**Discord Mention Prevention:** Added zero-width space after `@` symbols in notification messages to prevent Discord from interpreting UPS names (e.g., `[email protected]`) as user mentions
33
+
-**APT Repository Structure:** Proper `dists/stable/main/binary-all/` hierarchy for Debian/Ubuntu compatibility
34
+
-**RPM Repository GPG:** Fixed gpgcheck configuration (repo metadata signed, individual packages served over HTTPS)
35
+
36
+
### Migration from v4.2
37
+
38
+
If you installed manually, update your systemd service reference:
39
+
```bash
40
+
# Stop old service
41
+
sudo systemctl stop ups-monitor.service
42
+
sudo systemctl disable ups-monitor.service
43
+
44
+
# Remove old service file
45
+
sudo rm /etc/systemd/system/ups-monitor.service
46
+
47
+
# Install new package (recommended) or copy new service file
Copy file name to clipboardExpand all lines: README.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,22 @@ Most UPS shutdown solutions are **single-system focused**. Eneru is designed for
62
62
63
63
---
64
64
65
+
## 🤔 Why an Old-Fashioned Systemd Daemon? (No Docker)
66
+
67
+
You might wonder why Eneru runs as a traditional systemd service instead of a container. This is intentional:
68
+
69
+
**The Chicken-and-Egg Problem:** Eneru's job is to gracefully shut down Docker/Podman containers during power events. If Eneru itself ran inside a container, it would be stopped during its own shutdown sequence—potentially stalling the entire process and leaving the host in an undefined state.
70
+
71
+
Running as a systemd daemon ensures:
72
+
-**Eneru survives container shutdown** - It can orchestrate the full sequence without being killed
73
+
-**Direct host access** - Native access to systemd, virsh, SSH, and filesystem operations
74
+
-**Reliability** - No container runtime dependency that could fail during a power event
75
+
-**Simplicity** - While it's technically possible to code Eneru to run inside a container (with careful self-exclusion logic during shutdown), this would significantly increase codebase complexity and still introduce the possibility that something goes wrong—leaving Eneru unable to complete its job
76
+
77
+
This is the same reason critical infrastructure services like NUT itself run as system daemons, not containers.
0 commit comments