mcpField
C
cyrus-setup-endpoint

cyrus-setup-endpoint

github.com/cyrusagentsクラウド・DevOps8791.0k 回インストール今日更新
リポジトリ

cyrus-setup-endpoint について

Cyrus インスタンスの公開 Webhook URL を設定するスキルです。ngrok、Cloudflare Tunnel、既存 URL の選択と必要な設定を案内します。

主な機能

  1. 01Webhook エンドポイントの設定
  2. 02ngrok、Cloudflare Tunnel、独自 URL の選択
  3. 03サーバーポートと直接 Webhook の設定
  4. 04環境ファイル更新時のシークレット保護

活用シーン

  1. 01Linear Webhook を Cyrus インスタンスに接続
  2. 02Slack と GitHub の直接 Webhook 検証を設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cyrusagents/cyrus --skill cyrus-setup-endpoint

インストール後、Claude Code で/cyrus-setup-endpointを入力して読み込まれたか確認します。

詳細

重要:~/.cyrus/.env または ~/.cyrus/ 内のファイルに対して、Read、Edit、Write ツールを絶対に使用しないでください。環境ファイルの操作には、Bash コマンド(grep、printf >> など)のみを使用してください。シークレットを会話のコンテキストに読み込んではいけません。

エンドポイントの設定

Linear(およびその他の連携サービス)が Cyrus インスタンスに Webhook を送信できるように、公開 URL を設定します。

Step 1: 既存の設定を確認する

grep -E '^CYRUS_BASE_URL=' ~/.cyrus/.env 2>/dev/null

CYRUS_BASE_URL がすでに設定されている場合は、ユーザーに次のように伝えます。

Webhook エンドポイントはすでに設定されています:<value> 再設定するには、~/.cyrus/.env から CYRUS_BASE_URL を削除して、このスキルを再実行してください。

Step 4(ポート/Webhook が不足している場合は書き込む)に進みます。

Step 2: エンドポイントの方法を選択する

ユーザーに尋ねます。

Webhook 用に Cyrus をインターネットに公開する方法を選んでください。

  1. ngrok(推奨 — 無料アカウントには、再起動後も維持される静的ドメインが 1 つ含まれます)
  2. Cloudflare Tunnel(永続的に利用できます。Cloudflare アカウントが必要です)
  3. 独自の URL(すでに公開 URL/ドメインをお持ちの場合)

重要: ngrok の無料プランには永続的な静的ドメインが含まれています。これが有料機能だと伝えたり、再起動時に URL が変わると伝えたりしないでください。ngrok のすべての無料アカウントで、https://dashboard.ngrok.com/domains にある静的ドメインを 1 つ利用できます。

Step 3: エンドポイントを設定する

Option 1: ngrok
3a. ngrok がインストールされているか確認する
which ngrok

インストールされていない場合は、次のインストール手順を案内します。

macOS:

brew install ngrok

Linux:

curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok-v3-stable-linux-amd64.tgz | sudo tar xvz -C /usr/local/bin
3b. ngrok ドメインの設定を案内する

ユーザーに次のように伝えます。

ngrok では無料の静的ドメインを利用できるため、再起動しても URL は変わりません。

  1. https://dashboard.ngrok.com で登録するか、ログインしてください
  2. https://dashboard.ngrok.com/domains にアクセスしてください
  3. 無料の静的ドメインをコピーしてください(例:your-name-here.ngrok-free.app)
  4. https://dashboard.ngrok.com/get-started/your-authtoken にアクセスし、authtoken をコピーしてください

ユーザーに次の情報を提供するよう依頼します。

  • ngrok ドメイン
  • ngrok authtoken

重要:authtoken はシークレットです。クリップボードからファイルに書き込む方法を使用してください。

3c. ngrok の設定を書き込む

ngrok start cyrus で起動できるように、ngrok の設定を書き込みます。

mkdir -p ~/.config/ngrok

次に、既存の設定があればマージして、~/.config/ngrok/ngrok.yml に書き込みます。

version: 3
agent:
  authtoken: <token>
endpoints:
  - name: cyrus
    url: <domain>
    upstream:
      url: 3456

authtoken には、クリップボードからファイルに書き込む方法を使用します。

macOS:

# User copies authtoken, then runs:
NGROK_TOKEN=$(pbpaste) && cat > ~/.config/ngrok/ngrok.yml << EOF
version: 3
agent:
  authtoken: $NGROK_TOKEN
endpoints:
  - name: cyrus
    url: <domain>
    upstream:
      url: 3456
EOF

共通の代替方法:

read -s -p "Paste your ngrok authtoken: " NGROK_TOKEN && cat > ~/.config/ngrok/ngrok.yml << EOF
version: 3
agent:
  authtoken: $NGROK_TOKEN
endpoints:
  - name: cyrus
    url: <domain>
    upstream:
      url: 3456
EOF
echo " ✓ Saved"
3d. CYRUS_BASE_URL を書き込む
printf 'CYRUS_BASE_URL=https://%s\n' "<domain>" >> ~/.cyrus/.env

<domain> は、ユーザーから提供された ngrok ドメインです(例:your-name-here.ngrok-free.app)。

ユーザーに次のように伝えます。

ngrok を起動するには、ngrok start cyrus を実行してください。 Cyrus の起動前に、別のターミナルで実行してください。

Option 2: Cloudflare Tunnel

ユーザーに次の情報を尋ねます。

  • Cloudflare Tunnel トークン
  • トンネルのホスト名(例:cyrus.yourdomain.com)

トークンはシークレットです。クリップボードから環境変数に書き込んでください。

macOS:

printf 'CLOUDFLARE_TOKEN=%s\n' "$(pbpaste)" >> ~/.cyrus/.env

共通の代替方法:

read -s -p "Paste your Cloudflare token: " val && printf 'CLOUDFLARE_TOKEN=%s\n' "$val" >> ~/.cyrus/.env && echo " ✓ Saved"

次に、ベース URL を書き込みます(シークレットではないため、エージェントが直接書き込めます)。

printf 'CYRUS_BASE_URL=https://<hostname>\n' >> ~/.cyrus/.env
Option 3: 独自の URL

ユーザーに URL を尋ねます。https:// で始まることを確認してください。

printf 'CYRUS_BASE_URL=%s\n' "<url>" >> ~/.cyrus/.env

Step 4: 共通設定を書き込む

~/.cyrus/.env に以下の設定があることを確認します(不足している場合のみ追加します)。

grep -q '^CYRUS_SERVER_PORT=' ~/.cyrus/.env 2>/dev/null || printf 'CYRUS_SERVER_PORT=3456\n' >> ~/.cyrus/.env
grep -q '^LINEAR_DIRECT_WEBHOOKS=' ~/.cyrus/.env 2>/dev/null || printf 'LINEAR_DIRECT_WEBHOOKS=true\n' >> ~/.cyrus/.env
grep -q '^CYRUS_HOST_EXTERNAL=' ~/.cyrus/.env 2>/dev/null || printf 'CYRUS_HOST_EXTERNAL=true\n' >> ~/.cyrus/.env

LINEAR_DIRECT_WEBHOOKS=true は、Linear の Webhook 署名を直接検証できるようにします。CYRUS_HOST_EXTERNAL=true は、Slack および GitHub の Webhook 署名を直接検証できるようにします。どちらも、Webhook が CYHOST を経由せずサービスから直接届くセルフホスト構成で必要です。

完了

✓ Webhook エンドポイントを設定しました:<CYRUS_BASE_URL> ✓ サーバーポート:3456 ✓ 直接 Webhook:有効

コメント