# JBOD Monitor REST API for monitoring drive health in JBOD enclosures on Linux. Auto-discovers SES enclosures via sysfs, maps drives to physical slots, and exposes SMART health data. ## Prerequisites - Linux with SAS/SATA JBODs connected via HBA - `smartmontools` — for `smartctl` (SMART data) - `sg3-utils` — for `sg_ses` (SES enclosure data) - Python 3.11+ ```bash # Debian/Ubuntu apt install smartmontools sg3-utils # RHEL/Fedora dnf install smartmontools sg3_utils ``` ## Install ```bash pip install -r requirements.txt ``` ## Run The API needs root access for `smartctl` to query drives: ```bash sudo uvicorn main:app --host 0.0.0.0 --port 8000 ``` ## API Endpoints | Endpoint | Description | |---|---| | `GET /api/health` | Service health + tool availability | | `GET /api/enclosures` | List all discovered SES enclosures | | `GET /api/enclosures/{id}/drives` | List drive slots for an enclosure | | `GET /api/drives/{device}` | SMART detail for a block device | | `GET /api/overview` | Aggregate enclosure + drive health | | `GET /docs` | Interactive API docs (Swagger UI) |