Skip to content

(v0.3.0) Dashboard initial release

Choose a tag to compare

@mitulgarg mitulgarg released this 09 Apr 17:53
· 12 commits to main since this release
7d99bfb

Monitor multiple GPU machines from a single web UI, without SSH-ing into each one.


What's New

Fleet Dashboard (new optional extra)

pip install env-doctor[dashboard]
env-doctor dashboard
# → Serving at http://0.0.0.0:8765

A FastAPI + SQLite backend with a React frontend, bundled inside the pip package — no Node.js, no Docker, no external database required.

Fleet overview — sortable table of all machines with hostname, status (pass/warning/fail), GPU, driver version, CUDA version, PyTorch version, and last seen time.

Machine detail — click any row to see the full diagnostic breakdown for that machine, identical to what env-doctor check prints locally. Includes click-to-copy fix commands and a snapshot history timeline.


Reporting from GPU Machines

GPU machines only need the core pip install env-doctor — no [dashboard] extra required.

One-time report:

env-doctor check --report-to http://<dashboard-host>:8765

Automatic reporting via cron (Linux/macOS) or Task Scheduler (Windows):

env-doctor report install --url http://<dashboard-host>:8765 --interval 2m
env-doctor report status
env-doctor report uninstall

Smart change detection — the scheduled task fires every 2 minutes but only POSTs when something actually changes (driver update, new library, new issue). If nothing changes, a lightweight heartbeat is sent every 30 minutes to confirm the machine is alive. On a stable machine: ~1 POST per 30 minutes instead of 720 per day.


New CLI Commands

Command Description
env-doctor dashboard [--host HOST] [--port PORT] Start the web UI (dashboard host)
env-doctor check --report-to URL [--force] Send a one-time report to the dashboard
env-doctor report install --url URL [--interval 2m] Set up automatic reporting on this machine
env-doctor report status Show last report time and scheduler status
env-doctor report uninstall Remove the scheduled task and clean up

REST API

Endpoint Method Description
/api/report POST Receive a check report from a machine
/api/machines GET List all machines with latest status
/api/machines/{id} GET Machine detail with full latest report
/api/machines/{id}/history GET Snapshot history timeline

Other Changes

  • env-doctor check --json now includes a machine envelope (machine_id, hostname, platform, python_version, reported_at) in the JSON output
  • Machine UUID is generated once and persisted in ~/.env-doctor/machine-id. Override via ENV_DOCTOR_MACHINE_ID env var (useful for shared NFS home directories)
  • CI now runs the full test suite including dashboard server tests and a frontend build check on every PR

Installation

# Core CLI (unchanged)
pip install env-doctor

# With fleet dashboard
pip install env-doctor[dashboard]

Documentation