Generalize USMT Dash and add a containerized demo mode

Remove all environment-specific data and make the dashboard adoptable
anywhere, then add a demo that runs the real PowerShell services.

- Strip cached device data, internal knowledge-base articles and
  screenshots, server/site names and the old project notes; replace the
  knowledge base with generic sample articles and diagrams
- Move every environment value into Config/usmt-dash.psd1
- Route all infrastructure access in the worker and Get-Software.ps1
  through a provider (Providers/SCCM.ps1), with a config-driven asset
  inventory view instead of a hard-coded custom class
- Add Providers/Demo.ps1: a deterministic simulated fleet whose
  migrations progress in real time, and Demo/New-DemoData.ps1 to seed it
- Server: -Demo makes the API read-only; add get-config and get-logs;
  serve static files only from web/, Documentation/ and an allowlist of
  Data/ files with a path-traversal guard; gzip large responses
- Mirror both services' console output to Data/Logs via a Write-Host
  proxy, and add a terminal panel to the dashboard that streams it
- Demo sandbox (web/demo/demo.js): visitor changes to tags, articles and
  images are kept in the visitor's browser and echoed in the terminals;
  nothing a visitor does reaches the server
- Vendor marked, highlight.js and html2pdf.js instead of loading CDNs
- Dockerfile and compose file for hosting the demo (Coolify-ready)
This commit is contained in:
Johan Sandoval committed 2026-10-06 15:20:43 +00:00
commit 1c531bc2ab
56 files changed
+10232

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
[[Blue:Start Here]]
# Using USMT Dash
USMT Dash tracks a Windows device-refresh project: which old (**source**) device is being replaced by which new (**destination**) device, and how far each migration has got.
![How USMT Dash works](images/USMT%20Dash%20Architecture.png)
## The Pages
| Page | What it's for |
|---|---|
| **Tracked Devices** | Register devices under a *tag* (your name, a date batch, a department...). The worker only watches tagged devices. |
| **My Workbench** | Personal stacks: paste the devices on your cart and see just those. Saved in your browser. |
| **USMT Status** | Every tracked migration, grouped by status, with ping, free space and USMT log lines. |
| **All Devices** | Compares source and destination software and lists *specialty* apps missing from the new device. |
| **Custom View** | Build your own table: add, remove, resize, drag and filter any column. |
| **Documentation** | This knowledge base. Articles named after an app are linked from that app in the software view. |
## Migration Status
![Migration lifecycle](images/Migration%20Lifecycle.png)
| Status | Meaning |
|---|---|
| Not Started | Association exists, no backup yet |
| Backup In Progress | Scanstate log on the source is actively being written |
| Backup Completed | Backup finished, waiting for the new device |
| Restore In Progress | Loadstate log on the destination is active |
| Completed | Restore finished successfully |
| Not Associated | No computer association in ConfigMgr |
| Skipped | The device's tag has **Skip USMT** ticked (inventory only) |
## Tips
- Pair devices manually with `SOURCE, DESTINATION` on one line when there's no ConfigMgr association.
- Click any device name for full details: location, users, hardware, AD groups.
- **Copy Location Info** builds a ready-to-paste table for facilities or asset tickets.
- In articles, `[[Copy:text]]` creates a click-to-copy link, and `[[Yellow:Label]]` adds a badge.