574a16d9fa
Snapshot of the working tree before cleanup. Captures: - Keysat licensing: server/license.js, /api/license/* endpoints in server/index.js, activation modal in public/index.html, embedded Ed25519 issuer key (assets/issuer.pub). - StartOS 0.4 expansion: setApiKey action, version files v0.1.1 through v0.1.15, file-models/config.json.ts, manifest updates. - Self-hosted registry server (startos-registry/). - Build/deploy scripts (bin/bump-version.sh, bin/deploy.sh, vendored yt-dlp binary), .gitignore, .deploy.env.example. - Recent design docs (KEYSAT_INTEGRATION.md, UPGRADE-DESIGN.md) — retained here so they remain recoverable when removed in the follow-up cleanup commit.
StartOS Package Registry
A minimal, self-hosted StartOS package registry implementing the Start9 Marketplace Protocol.
Registry URL: https://registry.satsflows.com
Directory Layout
startos-registry/
server.js # The registry server (~250 lines of Node.js)
registry.json # Registry name and categories
package.json # Node.js dependencies
nginx.conf # nginx reverse proxy config
startos-registry.service # systemd unit file
packages/
youtube-summarizer/ # One directory per package
package.json # Package metadata (version, description, etc.)
icon.png # Package icon (PNG)
LICENSE # License text
INSTRUCTIONS.md # User-facing instructions
*.s9pk # The actual package binary
another-package/ # Add more packages the same way
package.json
icon.png
...
scripts/
setup-vps.sh # One-time VPS setup (nginx, TLS, systemd)
publish.sh # Upload new versions from your dev machine
Adding a New Package
- Create a directory under
packages/with your package ID as the name - Create a
package.jsoninside it (copy from an existing one as a template) - Add
icon.png,LICENSE, andINSTRUCTIONS.md - Place the
.s9pkfile in the same directory - Reload:
systemctl reload startos-registry
Updating a Package
- Build a new
.s9pkwith the updated version - Update
packages/<id>/package.json: bump theversionfield and add release notes - Replace the
.s9pkfile - Reload:
systemctl reload startos-registry
Or use the publish script from your dev machine:
./scripts/publish.sh youtube-summarizer ./youtube-summarizer_x86_64.s9pk
Version Format (Exver)
StartOS 0.4.0 uses Extended Versioning: <upstream>:<downstream>
0.1.0:0= upstream v0.1.0, wrapper revision 00.2.0:0= new upstream version0.2.0:1= same upstream, updated wrapper/metadata
How Users Add Your Registry
On their StartOS device:
- Go to Marketplace
- Tap Change (or the registry selector)
- Tap Add custom registry
- Enter:
https://registry.satsflows.com - Your packages appear in their marketplace