Deploy static websites to Blossom/Nostr using nsyte.
-
Setup nsyte locally (one-time):
nsyte ci
-
Add GitHub Secret:
- Add the
nbunksec
string as a repository secret namedNBUNKSEC
- Add the
-
Add to workflow:
- name: Deploy to Nostr/Blossom uses: your-username/nsite-action@v1 with: nbunksec: ${{ secrets.NBUNKSEC }} directory: './dist' # Your built website directory relays: | wss://relay.damus.io wss://relay.snort.social servers: | wss://some.blossom.server.com
Input | Required | Default | Description |
---|---|---|---|
nbunksec |
Yes | - | Bunker auth string (store as GitHub Secret) |
directory |
Yes | - | Directory containing website files |
relays |
Yes | - | Newline separated relay URIs |
servers |
Yes | - | Newline separated server URIs |
nsyte_version |
No | latest | Version tag (e.g., "v0.5.0") |
force |
No | false | Re-upload all files |
purge |
No | false | Delete remote files not present locally |
verbose |
No | false | Show detailed output |
concurrency |
No | 4 | Number of parallel uploads |
fallback |
No | '' | Fallback HTML path (e.g., "/index.html") |
Output | Description |
---|---|
status |
Upload status (success or failure ) |
nsyte_version_used |
Version of nsyte used |
- Downloads nsyte binary automatically
- Supports Linux, macOS, and Windows
- Masks sensitive secrets in logs
- Authenticates via NIP-46 bunker
- Store
nbunksec
as a GitHub Secret - Configure bunker with minimal permissions
- Consider pinning to specific
nsyte_version
- Rotate
nbunksec
periodically
See test.yml for testing. Run make test-local
for local testing.