HW-Monitor

HW-Monitor

Docker app from antond645-cpu's Repository

Overview

Web dashboard for CPU, GPUs, disks, motherboard voltages, and SMART temps on Linux/Unraid—live charts plus SQLite-backed history. You need host /dev and /sys (read-only) so sensors and drives are visible. SMART reads rely on SYS_ADMIN and SYS_RAWIO (template adds these caps). NVIDIA expects nvidia-smi in the image/runtime; AMD/Intel come from sysfs and depend on your kernel/driver stack.

HW Monitor

HW Monitor icon

Small web dashboard for watching how hard your Linux box is working: temps, voltages, disk SMART, GPU load. Built for home servers and Unraid; runs in Docker or straight on the host.

Metrics are collected in a background thread so the UI stays snappy. Short history lives in memory, longer ranges in SQLite.

What it shows

Live and historical graphs for CPU and GPU utilization, motherboard-style voltages from lm-sensors, disk temperatures via smartctl, plus SMART details when you need them.

Auto-detection

  • Disks: SMART_DEVICES=auto walks block devices (/dev/sda, /dev/nvme0n1, …).
  • NVIDIA: ENABLE_NVIDIA=auto turns on when nvidia-smi exists.
  • AMD / Intel GPUs: sysfs + hwmon when the stack exposes them (ENABLE_AMD, ENABLE_INTEL).

Pinned drives look like:

SMART_DEVICES=/dev/sda,/dev/nvme0n1

Docker Compose

cp .env.example .env

Set at least AUTH_PASS and SECRET_KEY, tweak SMART_DEVICES if you want. Then:

docker compose up -d --build

Open http://<host>:<PORT> (default port 8181). History goes under ./data.

Running without Docker

You need Linux, Python 3.11+, lm-sensors and smartmontools. NVIDIA metrics need nvidia-smi on the PATH.

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python server.py

Then browse to http://127.0.0.1:8181.

Environment

See .env.example for everything. Most people touch AUTH_PASS, SECRET_KEY, disk list, and the ENABLE_* toggles (auto, true, or false).

Image

Prebuilt containers live on GHCR (ghcr.io/antond645-cpu/hw-monitor). Each git tag publishes matching semver tags; latest follows the newest release.

Unraid Community Applications

Included templates:

  • unraid/hw-monitor.xml
  • ca_profile.xml

Own Apps feed: Apps → Settings → add a custom repository with this XML:

https://raw.githubusercontent.com/antond645-cpu/hw_monitor/main/unraid/hw-monitor.xml

Refresh, search “HW Monitor”, install.

Global CA listing: submit the repo at ca.unraid.net/submit so it appears for everyone after review.

Caveats

Apple and Windows hosts won’t expose the same sysfs/sensor surface—this targets Linux.

In Docker, SMART needs /dev (and usually SYS_ADMIN + SYS_RAWIO caps) mounted so smartctl can talk to drives. AMD and Intel GPU numbers depend heavily on kernel and Mesa/i915 versions.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/antond645-cpu/hw-monitor:latest
Last Updated2026-10-16
First Seen2026-05-13

Runtime arguments

Web UI
http://[IP]:[PORT:8181]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--cap-add=SYS_ADMIN --cap-add=SYS_RAWIO

Template configuration

WebUI PortPorttcp

Container Port: 8181

Target
8181
Default
8181
Value
8181
AppdataPathrw

Persistent history database

Target
/var/lib/hw_monitor
Default
/mnt/user/appdata/hw_monitor/data
Value
/mnt/user/appdata/hw_monitor/data
Host /dev (read-only)Pathro

Device nodes for SMART/sensors access

Target
/dev
Default
/dev
Value
/dev
Host /sys (read-only)Pathro

Kernel hardware information

Target
/sys
Default
/sys
Value
/sys
Login PasswordVariable

Web UI login password

Target
AUTH_PASS
Default
change-me
Value
change-me
Flask Secret KeyVariable

Session signing key (set to a long random value)

Target
SECRET_KEY
Default
replace-with-long-random-string
Value
replace-with-long-random-string
App TitleVariable

Title displayed in the web interface

Target
APP_TITLE
Default
HW Monitor
Value
HW Monitor
Disk DiscoveryVariable

auto or comma-separated devices, e.g. /dev/sda,/dev/nvme0n1

Target
SMART_DEVICES
Default
auto
Value
auto
NVIDIA ModeVariable

auto / true / false

Target
ENABLE_NVIDIA
Default
auto
Value
auto
AMD ModeVariable

auto / true / false

Target
ENABLE_AMD
Default
auto
Value
auto
Intel ModeVariable

auto / true / false

Target
ENABLE_INTEL
Default
auto
Value
auto
Log LevelVariable

DEBUG, INFO, WARNING, ERROR

Target
LOG_LEVEL
Default
INFO
Value
INFO