---
title: Scrutiny
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, monitoring, hdd, smart, nas, go, ssd]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/AnalogJ/scrutiny]
---
# 📊 Scrutiny

> **Le médecin de vos disques durs et SSD** : interface web moderne pour les données SMART, avec alerting avant panne. La référence pour surveiller la santé de votre NAS ou serveur de fichiers.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [github.com/AnalogJ/scrutiny](https://github.com/AnalogJ/scrutiny) |
| **GitHub** | [AnalogJ/scrutiny](https://github.com/AnalogJ/scrutiny) |
| **License** | MIT |
| **Langage** | Go + TypeScript (Svelte) |
| **Étoiles GitHub** | 7 858 ⭐ |
| **Dernière MAJ** | 2026-06-06 |
| **Catégorie** | [[cat-monitoring|Monitoring]] |

## 📝 Description

**Scrutiny** est un **dashboard de monitoring de disques durs et SSD** qui collecte, historise et alerte sur les **données SMART** de tous vos périphériques de stockage. C'est l'outil qu'il vous faut si vous gérez un **NAS, un serveur de fichiers, ou un homelab avec plusieurs disques**.

Les données SMART (Self-Monitoring, Analysis, and Reporting Technology) sont des métriques internes remontées par chaque disque : température, heures de fonctionnement, secteurs réalloués, erreurs CRC, etc. Ces infos sont cruciales pour **prédire une panne avant qu'elle ne survienne**. Le problème : les outils natifs (`smartctl`) ne sont qu'en CLI, et il n'existait pas de bonne UI moderne pour suivre l'évolution dans le temps. C'est précisément ce que Scrutiny résout.

Contrairement à [[app-netdata]] ou [[app-uptime-kuma]] qui surveillent l'uptime, Scrutiny est **verticalisé sur le stockage** : il ne monitore pas le CPU, mais il est imbattable pour la santé disque.

- ✅ **Collecte SMART** : température, heures de fonctionnement, reallocated sectors, pending sectors, UDMA CRC errors
- ✅ **Web UI moderne** : Svelte, responsive, dark mode natif
- ✅ **Historique** : InfluxDB en backend, graphs de tendances sur la durée de vie du disque
- ✅ **Alertes** : seuils dynamiques, notifications (Discord, Slack, Telegram, Email, Gotify, Pushover, ntfy, Pushbullet)
- ✅ **Multi-hôtes** : un seul dashboard peut monitorer N serveurs (via agents locaux)
- ✅ **Auto-détection** : trouve tous les disques (SATA, NVMe, SAS)
- ✅ **Vendor-specific attributes** : gère les attributs propriétaires (WD, Seagate, Samsung, etc.)
- ✅ **Collecteur en Go** : binaire statique, faible empreinte
- ✅ **Docker** : OCI + Docker Compose

**Public cible** : toute personne avec un **serveur à disques multiples** (NAS, médiaserver, infra Proxmox, TrueNAS bare-metal). Si vous avez juste un VPS avec 1 SSD, Scrutiny est overkill — partez sur [[app-uptime-kuma]].

## 🚀 Installation

### Option 1 : Docker Compose (stand-alone)

```yaml
# docker-compose.yml
version: '3.8'
services:
  scrutiny:
    image: ghcr.io/analogj/scrutiny:master-omnibus
    container_name: scrutiny
    restart: unless-stopped
    ports:
      - "8080:8080"   # Web UI
    volumes:
      - /run/udev:/run/udev:ro
      - /dev/disk:/dev/disk:ro
      - scrutiny-config:/opt/scrutiny/config
      - scrutiny-influxdb:/opt/scrutiny/influxdb
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.scrutiny.rule=Host(`scrutiny.example.com`)"
      - "traefik.http.routers.scrutiny.entrypoints=websecure"
      - "traefik.http.routers.scrutiny.tls.certresolver=letsencrypt"
      - "traefik.http.services.scrutiny.loadbalancer.server.port=8080"

volumes:
  scrutiny-config:
  scrutiny-influxdb:
```

> ⚠️ Sur **Synology, TrueNAS, Unraid**, le conteneur doit être lancé en **privileged** ou avec les bons device mappings. Voir la doc.

### Option 2 : Binaire natif (collector sur hôte distant)

```bash
# Sur la machine à monitorer (envoyée par SSH)
wget https://github.com/AnalogJ/scrutiny/releases/latest/download/scrutiny-collector-linux-amd64
chmod +x scrutiny-collector-linux-amd64
sudo ./scrutiny-collector-linux-amd64 run --api-endpoint http://scrutiny.example.com:8080
```

## ⚙️ Configuration Initiale

1. **Accéder à l'UI** : `https://scrutiny.example.com` (via [[app-traefik]])
2. **Vérifier la détection** : la page « Devices » liste tous les disques du serveur
3. **Lancer un scan manuel** : `docker compose exec scrutiny /opt/scrutiny/bin/scrutiny-collector-metrics run`
4. **Configurer les notifications** : Settings > Notifications (Discord/Slack/Email)
5. **Définir la fréquence** : par défaut 1h ; cron possible (`*/30 * * * *`)
6. **Pour monitorer d'autres hôtes** : installer le collector sur chaque machine, pointer vers l'API centrale

## 🔄 Alternatives

### Open Source
- **smartd** (smartmontools) — Le daemon SMART natif Linux, mais CLI et notifications mail basiques
- **Grafana + Telegraf + InfluxDB** — DIY possible mais lourd pour juste le SMART
- **NAS vendors built-in** (Synology, QNAP) — Limité au NAS lui-même
- **Zabbix** — Peut faire SMART via scripts, mais bien plus complexe

### Comparaison Scrutiny vs autres

| Critère | Scrutiny | smartd natif | Zabbix | Telegraf+Influx |
| :--- | :--- | :--- | :--- | :--- |
| Self-hosted | ✅ | ✅ | ✅ | ✅ |
| Web UI moderne | ✅ | ❌ | ✅ | ⚠️ (Grafana) |
| Historique long terme | ✅ InfluxDB | ⚠️ logs | ✅ | ✅ |
| Alertes | ✅ | ⚠️ mail | ✅✅ | ⚠️ (Alerta) |
| Setup | 5 min | 10 min | 1h+ | 1h+ |
| Multi-host | ✅ | ❌ | ✅ | ✅ |
| Cible | Disques | Disques | Tout infra | Tout infra |

**Verdict** : Scrutiny est **le seul outil qui fait JUSTE le SMART, BIEN, et avec une UI moderne**. Si vous voulez surveiller la santé disque en complément d'[[app-uptime-kuma]] ou [[app-netdata]], c'est l'addition parfaite.

### Propriétaires (ce que Scrutiny remplace)
- **CrystalDiskInfo** — Windows only, pas de remote
- **Hard Disk Sentinel** — Windows only, payant
- **Backblaze Personal Drive Stats** — Public, mais pas self-host
- **Datadog Disk Monitoring** — Inclus dans Datadog (cher)

## 🔐 Sécurité

- **Auth intégrée** depuis 2023 : login/password (bcrypt) en cookie de session
- **HTTPS obligatoire** via [[app-traefik]] (l'API expose l'historique disque)
- **Pas d'API publique** : le collector est l'unique client qui push les métriques
- **Permissions devices** : `/dev/disk` et `/run/udev` en lecture seule dans le conteneur

## 📚 Ressources

- [GitHub AnalogJ/scrutiny](https://github.com/AnalogJ/scrutiny)
- [Wiki / FAQ](https://github.com/AnalogJ/scrutiny/wiki)
- [Release notes](https://github.com/AnalogJ/scrutiny/releases)
- [Docker Hub](https://hub.docker.com/r/analogj/scrutiny)

## Pages Liées
- [[cat-monitoring]] — Catégorie Monitoring
- [[app-uptime-kuma]] — Monitoring uptime
- [[app-netdata]] — Métriques système
- [[app-traefik]] — Reverse proxy HTTPS
- [[observabilite]] — Concept d'observabilité
- [[checklist-monitoring-minimal]] — Checklist de démarrage
