zapstoreに ついての メモ
PinosuをZapstoreにuploadしたいので調べたメモ。
開発者向けのドキュメントは以下。
zspというコマンドでCLIから公開できるらしい。
zapstore/zsp: Publish apps to relays
初回はwizard modeが推奨されているみたい。
zsp publish --wizard Interactive wizard (recommended for first-time setup)
鍵とか設定しないでこれをたたいてみる。
zsp publish --wizard
_____ _
/ _ / __ _ _ __ ___| |_ ___ _ __ ___
\// / / _` | '_ \/ __| __/ _ \| '__/ _ \
/ //\ (_| | |_) \__ \ || (_) | | | __/
/____/\__,_| .__/|___/\__\___/|_| \___|
|_|
═══════════════════════════════
P U B L I S H E R
v0.4.10
Welcome to the Wizard of Publishing 🧙
Let's get your app published in no time.
Press Enter to skip if this is a closed-source app.
Repository URL (optional): https://github.com/Omochice/Pinosu
ℹ Detected: github
⋯ Checking for releases...
✓ Found APK: app-release.apk
✓ Found app: io.github.omochice.pinosu
✓ Not found on F-Droid or Play Store
Metadata available in the following sources
Optionally pull app metadata (description, screenshots) from these.
↑/↓ navigate • space toggle • a all • enter confirm
› ● GitHub
Fetching metadata from GitHub.
Would you like to provide a name, description, and more now? [y/N]: n
Signing setup
↑/↓ navigate • enter select • q quit
› Private key (nsec)
Public key (npub) - outputs unsigned events
Bunker connection (bunker://)
Browser extension (NIP-07)
Enter your nsec:
Error: invalid nsec format
設定だけ作りたいのだが。
CIからリリースする場合、どこで鍵を管理するかの問題がある。
- nsec
- CI変数などで秘密鍵を管理しないといけないのでうれしくない
- jksとかも管理しないといけないというのはあるが
- npub
- そもそも署名してないので…
- bunker
- bunkerをどこで動かすかという問題がある
- nip07
- CIからだとそもそもブラウザ開かない
CIからやるならnsecかbunkerしか実質的に選択肢がなさそう。
ただ、nsecは推奨されていなさそう。
For CI/CD, use a bunker URL stored as a secret. Avoid putting nsec directly in environment variables on shared systems — it can be exposed via /proc/*/environ or shell history.
bunkerにするとして、どこで起動するか。
Amberでいけるらしい。
よくみたらdry-run的なものもあった。
# Offline mode - sign events, output to stdout, defer upload/publish
zsp publish zapstore.yaml --offline > events.json
そもそもbunkerちゃんとわかってないのでNIPを読む。
結局はリモート署名である。
ぬるぬるはzapstoreにあるのでみてみる。
null—nostr/zapstore.yaml at main · tami1A84/null—nostr
pubkeyのfieldはbunkerからもらったものの検証用でなくてもよいらしい。