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

@@ -0,0 +1,31 @@
[[Yellow:Remediation]]
# Device Storage Remediation
USMT needs free space on the source device for its working files. Devices under about **15 GB free** often fail the backup. USMT Dash shows free space in the **USMT Status** table.
## 1. Remove stale profiles
1. Press **Win**, type *About your PC*, open **Advanced system settings**.
2. Under **User Profiles** click **Settings**.
3. Delete profiles named *Account Unknown* and profiles of users who no longer use the device. **Never** delete the current user's profile.
## 2. Clear temp folders
```powershell
Remove-Item "$env:WinDir\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "C:\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
```
## 3. Clear the ConfigMgr cache
Control Panel > **Configuration Manager** > *Cache* tab > **Configure Settings** > **Delete Files** > *Delete persisted content*.
## 4. Rebuild the search index (if Windows.edb is huge)
```powershell
Stop-Service WSearch -Force
Remove-Item "C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.edb" -Force
Start-Service WSearch
```
## 5. Disk Cleanup
Run `cleanmgr /sageset:1` once to tick every category, then `cleanmgr /sagerun:1`.
After cleanup, use **Force Update** in USMT Dash (click the status button in the top bar) to refresh the free-space reading.