コンテンツにスキップ
Zenn Dev Snowcait Articles Ed618cf8514fce

Nostr のプロフィールを GitHub リポジトリで管理する

  • URL: https://zenn.dev/snowcait/articles/ed618cf8514fce
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: Nostr BOT のプロフィール(kind 0 イベント)を GitHub リポジトリで管理し、metadata.json の更新をトリガーに GitHub Actions で自動配信する方法を解説した記事。snow-actions/nostr アクションを使い、秘密鍵は GitHub Secrets で保管する構成で、リレーリストも JSON で Git 管理できる。kind 0 以外のイベントにも応用でき、Nostr クライアントを使わずに BOT をすべて GitHub Actions で管理する運用パターンとして有用。

詳細

Nostr プロフィールを GitHub Actions で自動管理するワークフロー設計

  • アプローチ: metadata.json(kind 0 content)をリポジトリにコミットし、main ブランチへの push でワークフローを自動起動
  • 使用アクション: snow-actions/nostr@v1.7.0(kind・content・relays・private-key を指定)
  • 秘密鍵の管理: GitHub Secrets に NOSTR_PRIVATE_KEY として保存
  • トリガー設定: paths: [metadata.json] で metadata.json 変更時のみ実行(ワークフローファイル自身は除外)。workflow_dispatch で手動起動も可能
  • リレーリストの Git 管理:
    • relays.json で管理 → jq -c -r ‘.[]’ で1行ずつ出力して relays に渡す
  • 送信イベントをリポジトリにコミットする方法:
    • permissions: contents: write が必要
    • snow-actions/nostr に id を付与し、outputs.event を jq で整形して docs/metadata.json へコミット
  • 応用範囲: kind 0 以外(投稿・リアクション等)にも使用可能。Nostr クライアント不要で BOT 全体を GitHub で管理できる