feat(pwa): experimental — add my.dash.board virtual host for secure PWA install
CI / Build & Test (push) Successful in 2m51s

Serve the dashboard over a local HTTPS virtual host (my.dash.board) so
Chrome treats it as a secure origin and shows the PWA install prompt.

- Add native-host/dashboard-server.js: bare-http1 static file server
  backed by bare-bundle assets in distribution mode, disk fallback in dev
- Add setLocalVirtualHost() to virtual-hosts.js; type:local entries are
  protected from removal and filtered out of saveState persistence
- Export setLocalVirtualHost from holesail-manager/index.js
- Start dashboard server in startup.js after proxies are ready and
  register my.dash.board as a local virtual host
- Stop dashboard server in message-router.js cleanup()
- Update manifest.webmanifest: start_url, id, scope → https://my.dash.board/
- Embed all extension/dashboard/ files as bare-bundle assets in
  build-distributable.js patchBundle() — no installer copy step needed
- Hide checkbox, hs:// URL, Reconnect, and Remove controls for built-in
  my.dash.board row in the virtual hosts table UI
This commit is contained in:
Raven Scott
2026-03-01 02:58:52 -05:00
parent cbc663cacb
commit a838c3a345
8 changed files with 255 additions and 14 deletions
+4 -4
View File
@@ -1,10 +1,10 @@
{
"id": "/dashboard/dashboard.html",
"id": "https://my.dash.board/",
"name": "Holesail Browser",
"short_name": "Holesail",
"description": "P2P Holesail tunnels in the browser",
"start_url": "dashboard.html",
"scope": ".",
"start_url": "https://my.dash.board/",
"scope": "https://my.dash.board/",
"display": "standalone",
"display_override": ["window-controls-overlay", "standalone"],
"background_color": "#0f1117",
@@ -12,7 +12,7 @@
"protocol_handlers": [
{
"protocol": "web+holesail",
"url": "dashboard.html?lookup=%s"
"url": "https://my.dash.board/?lookup=%s"
}
],
"screenshots": [