Light weight web interface for Network UPS Tools.
docker run -e UPSD_ADDR=10.0.0.1 -e UPSD_USER=test -e UPSD_PASS=strongpass -p 9000:9000 ghcr.io/superioone/nut_webgui:latest
- Monitors UPS variables with auto refresh.
- Supports INSTCMD calls from GUI.
- 🥔 Potato PC friendly. Small footprint on both resource usage and disk size.
- Basic JSON API.
- Supports RISC-V and older ARM devices.
In order to run
INSTCMD
, make sure the configured user has proper instcmds granted atupsd.users
. See man(upsd.users).
Arch | Test Hardware | Notes |
---|---|---|
amd64 | AM4 CPU | Works across all amd64 platforms. |
amd64-v3 | AM4 CPU | Snake oil level optimizations with AVX. It mostly reduces response compression overhead. |
amd64-v4 | Intel® SDE | Snake oil level optimizations with AVX-512. |
arm64 | Raspberry Pi 4 Model B | |
armv7 | Qemu emulation | |
armv6 | Qemu emulation | |
riscv64 | Qemu emulation |
amd64 v3 and v4 variants require certain CPU feature flags to run. If you are a crackhead min-max enjoyer (like me), you can use
nut_webgui:latest-amd64-v3
andnut_webgui:latest-amd64-v4
images. See x86-64 Microarchitecture levels for more details.
--poll-freq
: UPSpollfreq in seconds. Default is30
.--poll-interval
: UPS pollinterval in seconds. Default is2
.--upsd-addr
: UPS daemon address. Default islocalhost
.--upsd-port
: UPS daemon port. Default is3493
.--upsd-user
: UPS daemon username.--upsd-pass
: UPS daemon password.--listen
: Listen address for the HTTP server. Default is0.0.0.0
.--port
: Port used by the HTTP server. Default is9000
.--log-level
: Log level for the HTTP server. Default isinfo
.--static-dir
: Directory path for static files. Default is./static
.
POLL_FREQ
: UPS pollfreq in seconds. Default is30
.POLL_INTERVAL
: UPS pollinterval in seconds. Default is2
.UPSD_ADDR
: UPS daemon address. Default islocalhost
.UPSD_PORT
: UPS daemon port. Default is3493
.UPSD_USER
: UPS daemon username.UPSD_PASS
: UPS daemon password.LISTEN
: Listen address for the HTTP server. Default is0.0.0.0
.PORT
: Port used by the HTTP server. Default is9000
.LOG_LEVEL
: Log level. Default isinfo
.
A simple JSON-based API is available for integration and automation purposes.
OpenAPI 3.1.0 specification files: json minimized | yaml
nut_webgui has basic probe endpoints to check server health and readiness:
/probes/health
/probes/readiness