Add StartOS 0.4 package scaffold (manifest, main, interfaces, 2 actions)

- package/Makefile + s9pk.mk + package.json + tsconfig.json
- startos/manifest: dockerBuild source pointing at ../image/Dockerfile
- startos/main: reads /data/config.yaml reactively, passes env vars to container
- startos/interfaces: binds port 9999 as HTTP UI
- startos/actions: showPublicKey (read /data/ssh/id_ed25519.pub), configureSparks
- TS + JS bundle compile clean (tsc --noEmit, ncc build)
This commit is contained in:
Grant
2026-05-12 09:36:15 -05:00
parent ae8efa1754
commit dd9d53060b
28 changed files with 931 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# Spark Control
A browser-based control panel for a dual-DGX-Spark vLLM cluster on your LAN. See which LLM is loaded, swap to another with one click, and watch the streaming log until the new model is ready.
## What you get on StartOS
After install you have:
- **A web UI** at the package's LAN address (HTTPS, .local).
- **One-click model swaps** for any model in your `models.yaml` catalog.
- **Live status** of vLLM, Parakeet (STT), and Magpie (TTS).
## Getting set up
This package SSHes into your Spark server to run cluster commands, so it needs a one-time setup:
1. **Open Actions → Show Public Key.** Copy the ed25519 public key that the package generated.
2. **SSH into each Spark** and append the key to `~/.ssh/authorized_keys`:
```bash
echo "<paste-pubkey-here>" >> ~/.ssh/authorized_keys
```
3. **Open Actions → Configure Sparks.** Enter the LAN hostnames or IPs for Spark 1 and Spark 2, plus the SSH username (usually `<spark-user>`).
4. **Open the Web UI.** It will hit each Spark to confirm. If both indicators are green you're done.
## Using Spark Control
Once configured, open the web interface from your phone or laptop. The current model is shown in the top bar. Each available model has a card with a "Switch to this" button. Clicking it stops the current model and launches the new one — the log tails in real time until `Application startup complete.` appears (36 min depending on the model).
## Editing the model catalog
The bundled catalog covers the models in the starter `models.yaml`. To add a model, ssh into the StartOS server and edit `/embassy-data/package-data/volumes/spark-control/main/models.yaml`, then restart the service. (A proper "Edit Model Catalog" action is on the roadmap.)
## Source code
<https://github.com/Start9Labs/...> (TBD)