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)
24 lines
630 B
Bash
Executable File
24 lines
630 B
Bash
Executable File
#!/bin/sh
|
|
# Container entrypoint: seed the demo fleet, keep the worker running, run the server.
|
|
set -e
|
|
cd /app
|
|
|
|
MODE_FLAG=""
|
|
if [ "${USMT_MODE:-Demo}" = "Demo" ]; then
|
|
MODE_FLAG="-Demo"
|
|
# Fresh simulated fleet on every container start
|
|
pwsh -NoProfile -File Demo/New-DemoData.ps1 -Force
|
|
fi
|
|
|
|
# Worker: restart it if it ever exits
|
|
(
|
|
while true; do
|
|
pwsh -NoProfile -File USMT-Worker.ps1 $MODE_FLAG || true
|
|
echo "USMT-Worker.ps1 exited; restarting in 5s..." >&2
|
|
sleep 5
|
|
done
|
|
) &
|
|
|
|
# Server in the foreground (container stops if it stops)
|
|
exec pwsh -NoProfile -File USMT-Server.ps1 $MODE_FLAG
|