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.

Install HW-Monitor on Unraid in a few clicks.

Find HW-Monitor in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for HW-Monitor Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/antond645-cpu/hw-monitor:latest
Last Updated2026-07-15
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