Files
recap/startos-registry
Keysat 574a16d9fa Save in-progress keysat integration and StartOS 0.4 work
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.
2026-05-08 09:39:17 -05:00
..

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

  1. Create a directory under packages/ with your package ID as the name
  2. Create a package.json inside it (copy from an existing one as a template)
  3. Add icon.png, LICENSE, and INSTRUCTIONS.md
  4. Place the .s9pk file in the same directory
  5. Reload: systemctl reload startos-registry

Updating a Package

  1. Build a new .s9pk with the updated version
  2. Update packages/<id>/package.json: bump the version field and add release notes
  3. Replace the .s9pk file
  4. 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 0
  • 0.2.0:0 = new upstream version
  • 0.2.0:1 = same upstream, updated wrapper/metadata

How Users Add Your Registry

On their StartOS device:

  1. Go to Marketplace
  2. Tap Change (or the registry selector)
  3. Tap Add custom registry
  4. Enter: https://registry.satsflows.com
  5. Your packages appear in their marketplace