Pack spark-control_x86_64.s9pk (55 MB)
- Move models.yaml into image/ so the docker build context is self-contained - Fix manifest: dockerfile=../image/Dockerfile, workdir=../image - Add LICENSE (MIT) and assets/README.md (StartOS marketplace listing) - s9pk validates: id=spark-control, version=0.1.0:0, osVersion=0.4.0-beta.6, sdkVersion=1.3.3 - Image embeds python:3.12-slim + openssh-client + FastAPI app + models.yaml
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Alice
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -43,8 +43,7 @@ Open <http://localhost:9999>.
|
||||
|
||||
## Repo layout
|
||||
|
||||
- `models.yaml` — model catalog (also bundled into the image)
|
||||
- `image/` — Docker image source
|
||||
- `image/` — Docker image source (FastAPI app + `models.yaml`)
|
||||
- `package/` — StartOS 0.4 package source
|
||||
- `scripts/build-s9pk.sh` — convenience wrapper around the StartOS build
|
||||
- `runbook.md` — operating notes
|
||||
|
||||
@@ -10,8 +10,6 @@ COPY app /app/app
|
||||
COPY entrypoint.sh /app/entrypoint.sh
|
||||
RUN chmod +x /app/entrypoint.sh
|
||||
|
||||
# models.yaml is mounted in or copied at build via build-context root.
|
||||
# For Docker, build from the repo root: `docker build -f image/Dockerfile .`
|
||||
COPY models.yaml /app/models.yaml
|
||||
|
||||
RUN pip install --no-cache-dir -e .
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Alice
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -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 (3–6 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)
|
||||
@@ -17,7 +17,7 @@ export const manifest = setupManifest({
|
||||
source: {
|
||||
dockerBuild: {
|
||||
dockerfile: '../image/Dockerfile',
|
||||
workdir: '..',
|
||||
workdir: '../image',
|
||||
},
|
||||
},
|
||||
arch: ['x86_64', 'aarch64'],
|
||||
|
||||
Reference in New Issue
Block a user