Add app
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# Fleet Kiosk App
|
||||
|
||||
A cyber sci-fi **spaceship monitoring & control terminal** — the page the
|
||||
diskless kiosk (weston + Chromium) loads at boot. Replaces the old single static
|
||||
`serving/http/kiosk/index.html` test page.
|
||||
|
||||
Built with **Svelte 5** + **Tailwind CSS v4** + **Vite**, served as a static
|
||||
bundle from its own nginx, and reverse-proxied at `/kiosk/` by the main serving
|
||||
nginx (`../http/default.conf`). Fully self-contained — no CDNs or web fonts — so
|
||||
it renders on the air-gapped boot LAN (the stack's dnsmasq sinkholes external
|
||||
call-home).
|
||||
|
||||
## Pages
|
||||
|
||||
Top navbar with five views, each with dummy telemetry:
|
||||
|
||||
- **BRIDGE** — overview tiles, systems status, subsystem load, event log
|
||||
- **REACTOR** — core output/temp/containment, power distribution, fuel cells
|
||||
- **NAVIGATION** — heading/velocity, tactical radar plot, flight plan, FTL drive
|
||||
- **LIFE SUPPORT** — atmosphere mix, per-deck environment, recyclers
|
||||
- **COMMS** — channels, signal bars, message traffic
|
||||
|
||||
Routing is hash-based (`#/power`, `#/nav`, …) so deep links stay client-side and
|
||||
the proxy needs no SPA-fallback rewrite. A shared 1 Hz clock and small
|
||||
random-walk "jitter" helpers make the static data feel live.
|
||||
|
||||
## Develop
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev # http://localhost:5173/kiosk/
|
||||
```
|
||||
|
||||
## Build the container
|
||||
|
||||
It builds as part of the serving stack:
|
||||
|
||||
```bash
|
||||
cd .. # serving/
|
||||
docker compose build kiosk
|
||||
docker compose up -d
|
||||
# main nginx serves it at http://${SERVER_IP}/kiosk/ (kiosk_url default)
|
||||
```
|
||||
|
||||
The container publishes on `127.0.0.1:${KIOSK_APP_PORT:-8088}`; the host-network
|
||||
main nginx proxies `/kiosk/` to it. To point the diskless kiosk here, keep the
|
||||
Packer `kiosk_url=http://boot.fleet.lab/kiosk/` default (resolved to the serving
|
||||
host by the stack's dnsmasq).
|
||||
|
||||
## Replacing the dummy data
|
||||
|
||||
All fictional telemetry lives in [src/lib/data.js](src/lib/data.js). A future
|
||||
runtime agent could swap these constants for a `fetch()` to a fleet API; the
|
||||
components only read from that module.
|
||||
Reference in New Issue
Block a user