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.

nut_webgui logo

Self-host nut_webgui

v0.10.5

Lightweight UPS monitoring web UI for NUT

ReleaseOpen SourceApache-2.0
Updated9 hours ago
LanguageRust
Setup difficultyModerate
MobileResponsive
ThemeDark mode
Stars
436
CPU
Any supported architecture
RAM
32 MiB
Storage
10 MiB
Port
9000 (HTTP server listen port)
Requires
Network UPS Tools (NUT), NUT server (upsd)
Docker
ghcr.io/superioone/nut_webgui
Install with Docker
nut_webgui dashboard showing UPS device statistics

What is nut_webgui?

This tool provides a browser-based dashboard for Network UPS Tools, letting you watch UPS metrics from several servers at once. It refreshes data automatically and lets you run instant commands, change variables, or trigger a forced shutdown from the interface. A JSON API and WebSocket feed give programmatic access, while a /metrics endpoint serves Prometheus-compatible OpenMetrics output. Health and readiness probes help with container orchestration. The UI ships with over a dozen built-in themes, including several dark variants. Authentication uses a simple TOML file with per-user permissions for administrative actions, and API keys can be issued for scripted access. TLS can be enabled for the link to the NUT daemon. Deployment options cover Docker, Docker Compose, Kubernetes manifests, and a standalone binary installer for Linux and FreeBSD. The binary runs on x86-64, ARM64, 32-bit ARM, and RISC-V with a memory footprint around 32 MiB.

Should you self-host nut_webgui?

nut_webgui scores 50/100 on selfhost.directory (how scoring works) and ranks #61 of 104 in Monitoring & observability. It has 436 GitHub stars.

It shipped 13 stable releases in the past year. The latest, v0.10.5, came out on 23 October 2026. New versions land roughly every 3 weeks.

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

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

Features

  • API Keys
  • Basic authentication with permissions
  • Basic JSON API
  • Health and readiness probes
  • INSTCMD, SET VAR, FSD support
  • OpenMetrics/Prometheus Export
  • Path-based routing for reverse proxy
  • TLS support for NUT connections
  • UPS monitoring with auto-refresh
  • WebSocket Events API

nut_webgui README

How to install nut_webgui

Install nut_webgui with Docker

Docker or Podman
Environment variables
UPSD_ADDR, UPSD_USER, UPSD_PASS, POLL_FREQ, POLL_INTERVAL, LISTEN, PORT, LOG_LEVEL

docker run -p 9000:9000
-e UPSD_ADDR=10.0.0.1
-e UPSD_USER=test
-e UPSD_PASS=strongpass
ghcr.io/superioone/nut_webgui:latest

Also available from codeberg.org/superiorone/nut_webgui

How to configure nut_webgui

  • NUTWG__AUTH__ALLOW_ANONYMOUS_METRICSfalseAllow access to the /metrics endpoint without an API key

    Allow access to the /metrics endpoint without an API key

    values: true, 1, false, 0

  • NUTWG__AUTH__USERS_FILEEnable authentication with the provided users.toml file

    Enable authentication with the provided users.toml file

    values: File path

  • NUTWG__CONFIG_FILECustom config.toml file path

    Custom config.toml file path

    values: File path

  • NUTWG__DEFAULT_THEMEbrowser preferenceWeb UI default theme

    Web UI default theme

    values: light, dark, abyss, autumn, business, black, corporate, dim, dracula, forest, kanagawa-dragon, night, nord, sunset, synthwave, tokyo-night

  • NUTWG__HTTP_SERVER__BASE_PATH/Override HTTP server base path

    Override HTTP server base path

    values: URI path

  • NUTWG__HTTP_SERVER__LISTEN0.0.0.0HTTP server listen address

    HTTP server listen address

    values: IPv4, IPv6

  • NUTWG__HTTP_SERVER__PORT9000HTTP server listen port (default 9000)

    HTTP server listen port (default 9000)

    values: 1-65535

  • NUTWG__HTTP_SERVER__WORKER_COUNTall available coresHTTP server worker count

    HTTP server worker count

    values: 1-usize::MAX

  • NUTWG__LOG_LEVELinfoLog level

    Log level

    values: error, warn, info, debug, trace

  • NUTWG__SERVER_KEYauto-generatedServer signing key used for signing session tokens

    Server signing key used for signing session tokens

    values: Text

  • NUTWG__UPSD__ADDRESSUPSD address

    UPSD address

    values: IPv6, IPv4, hostname

  • NUTWG__UPSD__PASSWORDUPSD password

    UPSD password

    values: Text

  • NUTWG__UPSD__POLL_FREQNon-critical UPS variables update frequency in seconds

    Non-critical UPS variables update frequency in seconds

    values: 1-u64::MAX

  • NUTWG__UPSD__POLL_INTERVALCritical UPS variables (ups.status) update interval in seconds

    Critical UPS variables (ups.status) update interval in seconds

    values: 1-u64::MAX

  • NUTWG__UPSD__PORT3493UPSD connection port

    UPSD connection port

    values: 1-65535

  • NUTWG__UPSD__TLS_MODEConfigures TLS communication between UPSD and the client

    Configures TLS communication between UPSD and the client

    values: strict, disable, skip

  • NUTWG__UPSD__USERNAMEUPSD username

    UPSD username

    values: Text

nut_webgui releases & version history

More in Home Server

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…