All apps · 0 apps
HW-Monitor
Docker app from antond645-cpu's Repository
Overview
Readme
View on GitHubHW Monitor

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=autowalks block devices (/dev/sda,/dev/nvme0n1, …). - NVIDIA:
ENABLE_NVIDIA=autoturns on whennvidia-smiexists. - 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.xmlca_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.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/antond645-cpu/hw-monitor:latestRuntime 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
Container Port: 8181
- Target
- 8181
- Default
- 8181
- Value
- 8181
Persistent history database
- Target
- /var/lib/hw_monitor
- Default
- /mnt/user/appdata/hw_monitor/data
- Value
- /mnt/user/appdata/hw_monitor/data
Device nodes for SMART/sensors access
- Target
- /dev
- Default
- /dev
- Value
- /dev
Kernel hardware information
- Target
- /sys
- Default
- /sys
- Value
- /sys
Web UI login password
- Target
- AUTH_PASS
- Default
- change-me
- Value
- change-me
Session signing key (set to a long random value)
- Target
- SECRET_KEY
- Default
- replace-with-long-random-string
- Value
- replace-with-long-random-string
Title displayed in the web interface
- Target
- APP_TITLE
- Default
- HW Monitor
- Value
- HW Monitor
auto or comma-separated devices, e.g. /dev/sda,/dev/nvme0n1
- Target
- SMART_DEVICES
- Default
- auto
- Value
- auto
auto / true / false
- Target
- ENABLE_NVIDIA
- Default
- auto
- Value
- auto
auto / true / false
- Target
- ENABLE_AMD
- Default
- auto
- Value
- auto
auto / true / false
- Target
- ENABLE_INTEL
- Default
- auto
- Value
- auto
DEBUG, INFO, WARNING, ERROR
- Target
- LOG_LEVEL
- Default
- INFO
- Value
- INFO