Lightweight self-hosted server monitoring with a web dashboard, Docker container stats, historical data and alerts.
AnalogJ/scrutiny
A web dashboard for hard drive S.M.A.R.T health that wraps smartd/smartctl data, tracks history, and sends failure alerts.
- Stars
- 8,407
- Forks
- 311
- Open issues
- 42
- Last commit
- 2 days ago
What is it?
Scrutiny is a hard drive health dashboard built on top of smartctl. It collects S.M.A.R.T attributes from every detected drive, stores them over time so slow degradation becomes visible, and presents the critical metrics in a web UI, which suits headless servers that otherwise only offer command-line output.
Beyond showing manufacturer-provided values, Scrutiny applies its own thresholds based on real-world failure rates, so a drive can be flagged before the manufacturer's limits are reached. It also tracks temperature and can send notifications through a long list of services, including email, Slack, Telegram, Discord, ntfy and webhooks, when a SMART failure, collector error or missed upload occurs.
Scrutiny ships as an all-in-one Docker image, or as separate collector, web and InfluxDB containers in a hub/spoke layout. It can also be installed manually. Supported platforms include Linux on amd64 and arm64, macOS, and FreeBSD binaries.
Key features
- 01Web dashboard focused on critical S.M.A.R.T metrics
- 02Automatic detection of connected drives via smartctl --scan
- 03Historical tracking of S.M.A.R.T attributes and temperature
- 04Thresholds informed by real-world failure rates, not only manufacturer values
- 05Notifications for failures, collector errors and missed uploads
Use cases
- Monitoring drives in a home or small-business NAS or server
- Spotting slowly degrading drives before data loss
- Watching multiple servers from one dashboard in hub/spoke mode
Quick start
- 1
Run the omnibus Docker image with device and capability flags
docker run -p 8080:8080 -p 8086:8086 --restart unless-stopped -v `pwd`/scrutiny:/opt/scrutiny/config -v `pwd`/influxdb2:/opt/scrutiny/influxdb -v /run/udev:/run/udev:ro --cap-add SYS_RAWIO --device=/dev/sda --device=/dev/sdb --name scrutiny ghcr.io/analogj/scrutiny:latest-omnibus - 2
Open the dashboard in your browser at localhost:8080
- 3
Trigger a collector run manually if the dashboard is empty
docker exec scrutiny /opt/scrutiny/bin/scrutiny-collector-metrics run
Things to know
- Requires smartctl access to drives, so it needs elevated capabilities or device passthrough in Docker.
- Project describes itself as a work-in-progress with rough edges.
- Windows Docker support is still work-in-progress.
In collections
Topics
FAQ
- What is scrutiny?
- A web dashboard for hard drive S.M.A.R.T health that wraps smartd/smartctl data, tracks history, and sends failure alerts. Scrutiny is a hard drive health dashboard built on top of smartctl. It collects S.M.A.R.T attributes from every detected drive, stores them over time so slow degradation becomes visible, and presents the critical metrics in a web UI, which suits headless servers that otherwise only offer command-line output.
- Is scrutiny free to use? What license does it have?
- scrutiny is open source under the MIT license. Check the license terms before using it in commercial products.
- Is scrutiny still maintained?
- Actively maintained. The last commit to scrutiny was on Nov 4, 2026.
- What can I use scrutiny for?
- Monitoring drives in a home or small-business NAS or server Spotting slowly degrading drives before data loss Watching multiple servers from one dashboard in hub/spoke mode
- How do I install scrutiny?
- Run the omnibus Docker image with device and capability flags: docker run -p 8080:8080 -p 8086:8086 --restart unless-stopped -v `pwd`/scrutiny:/opt/scrutiny/config -v `pwd`/influxdb2:/opt/scrutiny/influxdb -v /run/udev:/run/udev:ro --cap-add SYS_RAWIO --device=/dev/sda --device=/dev/sdb --name scrutiny ghcr.io/analogj/scrutiny:latest-omnibus Open the dashboard in your browser at localhost:8080 Trigger a collector run manually if the dashboard is empty: docker exec scrutiny /opt/scrutiny/bin/scrutiny-collector-metrics run
- Where can I get scrutiny?
- The source code and installation instructions are on GitHub: https://github.com/AnalogJ/scrutiny
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A native macOS app that shows which application, files, and disk are behind sustained disk activity, with bounded file tracing on demand.
Self-hosted health dashboard that monitors services over HTTP, ICMP, TCP, DNS and more, evaluates response conditions, and sends alerts.
Self-hosted uptime monitoring system written in Go and React, with status pages and alert notifications, positioned as an alternative to Uptime Kuma.
Self-hosted monitoring for Docker, Kubernetes, uptime, TLS and cron jobs in a single Go binary, with alerts and a built-in MCP server.
Self-hosted Docker dashboard for container logs, metrics, events, alert rules, notifications and guarded auto-remediation.