ActivityPub アクターをフォローする

このトピックでは、Discourse ActivityPub プラグインを使用して Discourse で ActivityPub アクターをフォローする方法について説明します。これは、ActivityPub アクターの設定に続くものです。これが何を意味するかわからない場合は、まず Discourse ActivityPub プラグイン トピックを参照してください。

手順

ActivityPub アクターをフォローするには:

  1. フォローしたいカテゴリまたはタグの アクターを設定 します。
  2. フォローしたいアクターの「ハンドル」を取得します(下記参照)。
  3. ステップ 1 のカテゴリまたはタグのトピックリストビューにある「フェデレーション」タブに移動します。
  4. 「新規フォロー」をクリックし、ステップ 2 のハンドルを入力して、「検索」をクリックします(下記参照)。
  5. アクターが見つかったら「フォロー」をクリックします。

アクターハンドル

ほとんどの ActivityPub サービスでは、WebFinger と呼ばれるプロトコルを使用して、アクターを「ハンドル」で発見できるようにしています。これは通常、次の形式です。

username@domain

場合によっては、ユーザー名の前に @ のような記号が付いていることがあります。

Discourse

Discourse アクターのハンドルを取得するには、アクターのトピックリストビューにある「フェデレーション」タブに移動します。

スクリーンショットのハンドルは announcements@test.pavilion.tech です。

Mastodon

Mastodon アクターのハンドルは、アクターのプロフィールから取得します。

スクリーンショットのハンドルは @angusmcleod@mastodon.social です。

アクターの検索

「新規フォロー」モーダルにアクターハンドルを入力して「検索」をクリックすると、プラグインは WebFinger を使用してハンドルを検索します。この検索は成功しない場合があります。結果が返されない場合は、次のことを確認してください。

  1. コピーしたハンドルを確認します。
  2. ハンドルのドメインに、アクティブな ActivityPub 対応サーバーが存在することを確認します。
  3. 別の ActivityPub サービスでハンドルを検索してみてください。

上記を試しても、問題がサイトまたはプラグインにあると思われる場合は、次の手順を実行してください。

  1. サイト設定 activity pub verbose logging が有効になっていることを確認します。
  2. 再度検索を実行します。
  3. /logs で「ActivityPub」というラベルのログを確認します。
  4. 見つかった問題は、このトピックへの返信で報告してください。
「いいね!」 2

Hi @angus、素晴らしいガイドをありがとうございます!

今のところ、Discourse と Mastodon 間での投稿や返信のフェデレーションはできているのですが、Discourse と Discourse 間ではできていません。フェデレーションされている Discourse カテゴリは誰でもアクセスできますが、インスタンスではアカウント作成前に招待が必要になります。それが原因かもしれませんでしょうか?

また、他の人が投稿したフェデレーションされた投稿への返信が、スレッドに関係する他のインスタンスにフェデレーションされていません。これは正常で予期されたことでしょうか?

ありがとうございます!

そうかもしれません!そのシナリオをテストして、またご連絡します。

Discourseは、トピックのすべての参加者にトピックのアクティビティを公開します。たとえ関連するアクター(カテゴリやタグなど)をフォローしていない場合でもです。したがって、これは予期されたことではありません。Discourse側の問題である可能性があります(ログを確認し、何か表示されたら教えてください)。また、返信が表示されると予想しているプラットフォーム側の問題である可能性もあります。

例を挙げてもらえますか?

「いいね!」 1

申し訳ありません、@angus さん。インスタンスを別のサーバーに移行する必要があります。2つのディスコースインスタンスでActivityPubを有効にしたところ、8GBのRaspberry Pi 4ではActivityPubのトラフィックを処理できず、過熱とフリーズが続きました。実験的なインスタンスでActivityPubを動作させようとした場合は、アップデートを提供します。

ActivityPubでアプリドメインを有効にした後、完全にリストから削除するための提案はありますか?

Mastodonインスタンスでカテゴリアカウントをフォロー解除したにもかかわらず、以前のサブドメインは依然として大量のトラフィックを受信しているため、使用することがほとんどできません。

ロブさん、問題が発生しているとのこと、お察しいたします。ActivityPubプラグインには、特に以下のサイト設定により、大量のトラフィック負荷に対処するための保護機能がすでにいくつか備わっています。

  • activity_pub_rate_limit_post_to_inbox_per_minute: デフォルトは10です。これは、デフォルトではIPアドレスあたり毎分10件の受信POSTリクエストが処理されることを意味します。これを低くしてみてください。

  • activity_pub_rate_limit_get_objects_per_minute: デフォルトはIPアドレスあたり毎分30件です。これは、デフォルトではIPアドレスあたり毎分30件のGETリクエストが処理されることを意味します。これを低くしてみてください。

  • activity_pub_blocked_request_origins: これにより、問題を引き起こしている可能性のあるドメインからのすべてのリクエストをブロックできます。

  • activity_pub_allowed_request_origins: これにより、特定ドメインへのリクエストを制限できます。つまり、それ以外のすべてのソースからのリクエストはブロックされます。

もし高トラフィック負荷が問題の原因である場合、トラフィックが発生しているサーバーを制御していない限り、上記にリストされている保護機能を使用して対処する方法があります。

Angusさん、アドバイスありがとうございます。大変感謝しています。他のサービスに影響を与えない実験用サーバーに別のDiscourseインスタンスをセットアップし、あなたの提案に従って再試行します。

問題がインフラのどのレイヤーにあるのかはっきりしませんが、リバースプロキシの可能性があります。

Cosmos Serverをサーバーモニター、Dockerコンテナ管理UI、そしてDiscourseやその他のサービスのような他のDockerコンテナのリバースプロキシとして使用しています。リバースプロキシで、着信ActivityPub接続に対して適切なレート制限を行うように設定する必要があるかもしれません。

外部Mastodonサーバーからの着信ActivityPub同期リクエストがリバースプロキシを圧倒し、RAM、CPU、ネットワーク使用率を最大化させて過熱させた可能性があります。

Raspberry Piの次の出荷を受け取り、実験用サーバーとして使用できる予備のボードを入手したら、改めて報告します。

提案ありがとうございました!

「いいね!」 1

あなたの素晴らしい動画に感謝します。フォロワーがそれらのトピックにどのように返信/交流できるかの説明を見逃しましたか?ソーシャルメディアチーム向けの軽量な「サーバー」になるのではないかと思います。

MastodonユーザーがDiscourseアクターを見つけようとしたときに、エラー403が発生する最も可能性の高い理由は何ですか?

Mastodonでは、そのハンドルは何も見つけられず、Discourseは次のように表示されます。
GET request received by https://foorumi.katiska.eu/ap/actor/2a8f2bdb5a547366558a0906d6bf6a5c failed: 403 Forbidden

そして/inboxも同様です。