StartOS package for Keep — an always-on FROST threshold co-signer for Nostr and Bitcoin.
The server holds one share of a multi-device FROST key and coordinates with your other devices over Nostr relays to produce signatures, so no single device ever holds the whole key. It exposes a NIP-46 bunker for Nostr clients and a web admin UI for importing your share and watching signing activity.
Built on the keep-web daemon (Rust axum API + embedded FROST node + Svelte admin SPA).
This package targets StartOS 0.4.x and uses the StartOS TypeScript SDK.
git clone --recurse-submodules https://github.com/privkeyio/keep-startos
cd keep-startos
make # produces keep_x86_64.s9pk (x86_64 only)
make install # installs to the host in ~/.startos/config.yamlThe keep git submodule pins the upstream source built into the image (Dockerfile builds keep-web + the SPA).
startos/— package definition (manifest, main daemon, interfaces, config store, actions, i18n).Dockerfile— multi-stage build: Rust (keep-web, release, wss-only) + Node (SPA) → slim runtime image.keep/— upstream source as a git submodule.
- Build (
.github/workflows/build.yml): on PRs tomainand manual dispatch, builds the.s9pkvia Start9's shared workflow to verify it packs. Requires repo secretDEV_KEY(a StartOS developer key,start-cli init-key). - Release (
.github/workflows/release.yml): onv*.*tags, builds and publishes. RequiresDEV_KEYplus the registry/S3 vars (RELEASE_REGISTRY,S3_S9PKS_BASE_URL) and secrets (S3_ACCESS_KEY,S3_SECRET_KEY) when publishing to your own registry.
See instructions.md for setup and usage.