Deploys smesh frontend assets to a running orly server. Bundles the asset directory as tar.xz -9, signs the bundle hash with BIP-340, uploads in 512 KB chunks, and the server does an atomic symlink pivot to the new version.
xz installed on both client and serverORLY_DEPLOY_PUBKEYORLY_SMESH3_DIR set)go run ./cmd/sm3sh-deploy --url https://smesh.lol --dir app/smesh3
| Flag | Default | Description |
|---|---|---|
--url | (required) | smesh base URL |
--dir | app/smesh3 | directory to bundle |
--nsec | deploy nsec (bech32) |
| Variable | Description |
|---|---|
DEPLOY_NSEC | Fallback for --nsec flag. Store in ~/.config/smesh-deploy.env or equivalent. |
cmd/sm3sh-deploy/main.go)--dir, creates an in-memory tar archivexz -9 --stdout for compressionPOST /__deploy?action=begin — opens a session with hash and part countPOST /__deploy?action=part — uploads each 512 KB chunkPOST /__deploy?action=apply — sends signature in X-Sig header, triggers extractionapp/deploy.go)begin — creates a deploy session keyed by bundle hashpart — stores chunks (max 1 MB each, 50 MB total)apply — reassembles chunks, verifies SHA-256 matches, verifies BIP-340 signature against ORLY_DEPLOY_PUBKEY, then: - Decompresses with xz -d --stdout and extracts tar to a versioned directory ({dir}-{hash8})
- Creates a new symlink {dir}.new → versioned directory
- Atomic rename(2) swaps the symlink into place (first deploy: renames old dir out of the way, creates symlink)
- Deletes the previous version directory
- Bumps the internal version counter (triggers SSE reload to all connected clients)
Set ORLY_DEPLOY_PUBKEY to the 64-char hex x-only pubkey. The client prints its pubkey on startup.