Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

wrkspc ships as a single binary per platform, plus a container image for the hub role. macOS and Linux are first-class today; Windows builds from a checkout the same way — there is no crates.io package in the pre-release tree, so cargo install wrkspc does not work anywhere yet.

Release tarballs

Each release publishes per-platform tarballs with a SHA256SUMS file and minisign signatures. Verify before you run:

$ curl -fsSLO https://github.com/<owner>/wrkspc/releases/download/vX.Y.Z/SHA256SUMS
$ curl -fsSLO https://github.com/<owner>/wrkspc/releases/download/vX.Y.Z/wrkspc-<target>.tar.gz
$ shasum -a 256 -c SHA256SUMS          # compares, do not just print
$ curl -fsSLO .../wrkspc-<target>.tar.gz.minisig
$ minisign -V -P <fingerprint> -p wrkspc.pub -m wrkspc-<target>.tar.gz

The release public key and its fingerprint are published WITH the first tagged release (in the release notes and the repository), and -P is the fingerprint from that announcement. Until that first release, artifacts ship WITHOUT signatures — the signing-key deferral is deliberate and documented — so verify the checksum against SHA256SUMS and treat the tarball as an unsigned pre-release artifact. The checksum alone proves integrity, not authorship.

macOS note: binaries fetched with curl or built locally carry no quarantine attribute, so Gatekeeper leaves them alone. A tarball downloaded through a browser gets quarantined; remove it per-artifact (xattr -d com.apple.quarantine wrkspc) or use “Open Anyway” in System Settings → Privacy & Security. Never disable Gatekeeper system-wide (spctl --master-disable) — that is a security downgrade, not a workaround.

Hub: container image

The hub role ships as a minimal, distroless container image built from source — non-root, no shell — and the example Compose file selects the runtime hardening (cap_drop: [ALL], no-new-privileges, read-only rootfs with only /data writable); the image itself does not enforce those, so bring them with you in any other runtime. See Hub container deployment for the build, mounts, ports, PKI, and path conventions.

Node: macOS

Nodes are supervised by launchd (or the optional app launcher) so they come back after a reboot and log to the system log:

$ launchctl print gui/$(id -u)/io.beardedeagle.wrkspc-node

just deploy-node [ssh-host] deploys the already-built release binary (run just quality first — the recipe deploys, it does not compile), signs it, stages it with a rollback copy, and restarts a supervised node — on this machine, or over ssh when a host is given. Readiness waits for the OLD process to exit and a NEW process to own the node’s UI listener, so an unrelated process on the port never certifies the deploy.

Nodes elsewhere

Any machine that can reach the hub over TLS can run a node: install the binary, enroll with hub-issued certificate material, and bind its harnesses. The node dials the hub; no inbound port on the node is required for conversation flow.