Takahēとは?
短文を投稿できるTwitterに似たマイクロブログサービス、MastodonやMisskeyなどを使ったことはあるでしょうか? 今回取り上げるTakahē(タカヘー) は、同様のマイクロブログサービスを提供する、小規模から中規模向けのActivityPub/Fediverseサーバーです。
Takahēは2022年11月に初めて公開された比較的新しいActivityPub/Fediverseサーバーで、オープンソースライセンスでGitHub上で公開されています 。最新のバージョンは2023年6月末に公開されたバージョン0.9で、現在は、安定性や他のFediverseサーバーとの互換性の改善やマイグレーション機能の実装などを目標に、バージョン1.0に向けて開発が進められています。なお、TakahēのライセンスはBSD-3-Clauseライセンスです。分散SNSのソフトウェアはAGPLライセンスが多い印象があり、この点でも興味深いかもしれません。
図1 Takahēの公式サイト「jointakahe.org 」
マイクロブログサービスに関するActivityPubの基本的な機能はすでに一通り実装されているため、MastodonやMisskeyなど他のマイクロブログサービスのアカウントからも、フォローしたり、メッセージのやり取りができます。また、Mastodonと互換性のあるREST APIも提供しているため、さまざまなMastodon互換のクライアントアプリケーションから利用できる作りになっています。
Takahēの開発者は、Andrew Godwin(アンドリュー・ゴッドウィン) です。AndrewはPythonで最も人気のあるウェブフレームワークの1つであるDjangoのコアデベロッパーも務めており、TakahēサーバーもDjangoを使用して実装されています[1] 。
Takahēは、サーバーとクライアントが一体で提供されているMastodonやMisskeyとは異なり、基本的にはアカウントをホストするサーバー機能だけを提供します。次のスクリーンショットのような簡易的に投稿を表示する読み取り専用のフロントエンドのUIはありますが、各ユーザーはTakahēのウェブサイト上ではアカウントの作成やプロファイルの設定だけを行います[2] 。
図2 Takahēサーバー上のプロジェクト公式アカウント
その後は、Takahēサーバーに自分の好きなクライアントアプリケーションから接続して、他のアカウントのフォローや投稿を行います。本記事の後半では、実際にElk(エルク)と呼ばれるクライアントアプリケーションからTakahēのアカウントを利用する方法を紹介します。
図3 Fediverseのネットワークに参加するTakahēを表した図。Takahēのユーザーは、Takahēサーバー上に1つ以上のアカウントを作り、Elkなどのクライアントアプリを使って各アカウントにサインインしてマイクロブログサービスを利用する。TakahēサーバーはActivityPubプロトコルを使用して、Fediverseを形成する他のサーバーとデータのやり取りを行うことで互いに交流ができる
なお、Takahēという名前は、ニュージーランドの絶滅危惧種Takahēに由来して名付けられました。紺と緑の美しい色の羽根と特徴的な赤いくちばしを持つ飛べない鳥です。以前は絶滅してしまったと考えられていましたが、1948年に再発見されてから保全活動が続けられており、2021年時点で440羽にまで回復しています[3] 。Takahēは小規模の群れで暮らし、仲間内での絆が特に強い鳥だと言われているため、Takahēサーバーの特徴や目指す方向性にもぴったりの名前だと言えるかもしれません。
ノート:Fediverseエコシステムの広がり:
Takahēは、MastodonやMisskeyなどと同様のマイクロブログサービスを提供します。しかし、ActivityPubを使用したFediverseサーバーにはいろいろな実装があり、マイクロブログサービス以外にも、写真共有サービスのPixelfed 、ソーシャルニュースサービスのLemmy 、読書記録や書評の共有サービスBookWyrm など、多数のサービスが存在します。
これらのサーバーはActivityPubプロトコルをベースに共通のデータをやり取りできるため、異なる種類のサービスを提供するサーバー間であっても、フォローやコメントのやり取りにより交流できるようになっています[4] 。こうしたウェブの基本思想に近い分散型のオープンな性質は、異なるサービスのユーザーとは直接やり取りができない多くのSNSサービスとは対照的です。
MastodonやFediverseエコシステムについては、過去記事「はじめる Fediverse/Mastodon 2022 」にとても詳しくまとまっています。
[4] ただし、サーバー独自の拡張機能やデータ形式によっては、サーバーごとに対応する機能が限定されることがあります。ActivityPub/Fediverseサーバーはほとんどの実装がオープンソースであるため、そのような差異も日々改善されています。
Takahēがサポートする機能
現在Takahēでは、マイクロブログサービスとして、以下のような機能をサポートしています[5] 。
投稿の編集
画像のアップロードと説明文
返信、ブースト、お気に入り
フォロー、ブロック、ミュート、特定ユーザーからのブーストの非表示
リプライ、お気に入り、フォローの通知
フォローとフォロー解除
画像、メタデータ、リンク付きのプロフィールページ
ユーザーの公開投稿のRSSフィード
カスタム絵文字のサポート
URLによるユーザー、ハッシュタグ、投稿の検索
マルチドメインのサポート
ユーザーごとのマルチアカウントのサポート
簡易的なテキスト検索
モデレーションのための報告とキューのシステム
サーバー上のアナウンス
サーバーのブロック
サインアップのユーザー数制限
メールでのパスワードリセット
今後の開発により、他のサーバーからのマイグレーション機能や小規模のサーバーでも多くの投稿を見つけやすくするリレー機能も実装される見込みです。バージョン1.0以降では、Takahēのアカウントを起点に、マイクロブログにとどまらないサービスを提供する構想もあります。たとえば、拡張されたプロフィール機能、長文のブログを執筆したりニュースレターをメール配信する機能、投稿のコレクションを作成する機能、学んだ知識の共有サービスなど、これらを組み合わせて自分だけの「ホームページ」を作れるようにする幅広い機能です。それ以外にも、プラグインシステムの導入により、マイクロブログサービス以外の動画や書評などの大きく異なるFediverseサービスのサポートを追加したり、AT Protocolの対応によりBlueskyと接続するアイデアなどもあります。詳しくは、Andrewが4月に書いたブログ記事「A Takahē refactor, as a treat 」をご覧ください。
Takahē最大の特徴: マルチドメイン・ マルチアカウントのサポート
Takahēがサポートする機能の中で最大の特徴は、1つのサーバーで複数のドメインをサポートできる「マルチドメイン機能」です。マルチドメインサポートは、現時点では類似のサーバーでは対応していません[6] 。
MastodonやMisskeyなどの既存のサーバーでは、基本的には1つのサーバーでは1つのドメインだけしか設定できない設計になっているため、各ドメインごとに1つのサーバーを実行する必要があります。そのため、たとえ1つのドメインの利用者が数人しかいなかったとしても、それぞれのドメインごとにサーバーアプリケーションを実行する必要があります。
また、さまざまなFediverseサーバーでは、一部の著名なサーバーに多数のユーザーが集中してしまうという問題が指摘されてきました。ユーザーの集中は、サーバーの速度低下や必要なサーバーリソースの増加、それに伴う管理者の金銭的な負担の増大をもたらします。
Takahēのマルチドメインのサポートは、こうした負担を部分的に軽減するオプションの1つとなる可能性があります。マルチドメインの機能により、Takahēでは、複数のドメインを1つのTakahēサーバーに登録して共同で利用できるようになります。これにより、複数のドメインごとにそれぞれ個別にサーバー管理するのではなく、サーバーを共有してリソースを効率的に利用することで、少数の管理者で多くのドメインとアカウントをホストできるようになります。
また、TakahēはMastodonなどに比べてソフトウェアの構成もシンプルなので、サーバーのセットアップや管理もより簡単になっており、管理者の負担も比較的軽くなります。
図4 マルチドメイン非対応の場合、各ドメインごとにサーバーが必要になる(図ではドメインが異なる3つのアカウントに対して、3つのMastodonサーバーが並んでいる)。マルチドメイン対応の場合、1サーバーだけで様々なドメインが利用できる(図では同じ3つのアカウントに対して、1つのTakahēサーバーが置かれている)
ノート:仮想サーバーの機能を提供するTakahē:
もしNginxやApacheなどのウェブサーバーを利用したことがあれば、仮想サーバーの機能を利用したことがあるかもしれません。実際には1台のサーバー上で1つのサーバーアプリケーションを実行しながら、設定により複数の仮想的なウェブサーバーを実行する機能です。これにより、1つのウェブサーバーだけで複数のドメインを使用して複数のウェブサイトが配信できるようになり、リソースが効率的に利用できます。同様に、Takahēのマルチドメインサポートは、複数の「仮想ActivityPub/Fediverseサーバー」を提供する機能として理解できます。
こうした特徴により、多くのユーザーが少数の大規模なサーバーに集中するのではなく、多数の小規模なコミュニティに場を提供することが可能になります。これはActivityPubで非中央集権的な分散ネットワークを作るというFediverseの思想にもよく当てはまります。小規模に分散することで、コミュニティ全体への目がより行き届くようになるため、サーバーのリソースの負担だけでなく、現時点ではソフトウェアだけで完全に解決するのが難しいコンテンツモデレーションの負担も、個別のコミュニティに分散する助けになるかもしれません。
マルチドメインのサポートに加えて、Takahēではマルチアカウントもサポートしています。Takahēのユーザーは、サーバー上にログイン後、そのサーバーが対応しているドメインとユーザー名を選ぶことで、2つ以上のアカウントを作成して使い分けられます。
マルチドメイン・ マルチアカウントでできること
では、マルチドメインやマルチアカウントをサポートすることで、どのようなことが可能になるでしょうか? アイデア次第でさまざまな自由な使い方ができると思います。
個人ユーザーの場合には、Takahēサーバーに自分の個人ドメインを登録して、仕事や異なる趣味など用途ごとに複数のアカウントを作成し、フォロワーを別々に管理したり、投稿内容の種類ごとに別のアカウントを使い分けられます。
家族や友人のために、グループ用のドメインを作ってアカウントを代わりに作ってあげられるかもしれません。学校や企業の場合には、組織が所有するサブドメインを活用して、大小さまざまなグループごとにコミュニティが提供できるでしょう。たとえば、大学の学部や学科ごとに既存のサブドメインを利用して学生・教員間の交流に利用したり、大きな企業が子会社ごとにサブドメインを提供する用途が考えられます。複数のサイトを運営するウェブメディアであれば、各サイトごとに独立したドメインを登録し、それぞれのドメインの元で記事のカテゴリ別にアカウントを作成するという使い方も考えられます[7] 。
[7] たとえば、最新の気象や災害情報などを提供している特務機関NERVのMastodonサーバー では、気象や災害の種類別、地域別、鉄道路線別に複数のアカウントを作り分けることで、ユーザーが自分に必要とする情報を選んでフォローできるようになっています。Takahēの場合には、マルチドメインのサポートを活かして、複数のドメインのそれぞれが複数のアカウントを持つというレイヤーが1段高い構成が考えられます。
ここまで、関連するエコシステムに触れながらTakahēの機能を紹介してきましたが、Takahēの誕生自体が去年から続くソーシャルネットワークサービスの大きな変化から切り離せるものではありません。この記事末尾には「Fediverseの課題と将来のソーシャルネットワークの可能性 」と題するコラムを掲載しました。のちほど、こちらもご覧いただき、Fediverseの将来について考えてみてください。
Takahē の使い方
さて、ここからはTakahēのアカウントの実際の使い方を紹介します。はじめに、Takahēサーバー上でユーザー登録をしてアカウントを作成し、基本的な設定をします。その後、Mastodon互換のクライアントアプリElk(エルク)からTakahēに接続して、MastodonやMisskeyなど、他のActivityPub/Fediverseサーバーのアカウントとやり取りしてみます。
サーバー上でのユーザー登録と設定方法
この記事の読者のために、お試し用のサーバーを作成しました。https://takahe-gihyo-trial.shuuji3.xyz からアクセスできるので、是非試してみてください。このサーバーは継続的な利用は想定していないため、定期的にデータがリセットされます。ご了承ください。
注意: Takahē 公式のフラグシップサーバーはhttps://takahe.social/ で公開されていて、こちらでは永続的な新規アカウントの登録を受け付けています。ただし、フラグシップサーバーには新規アカウント登録者数に上限があるため、タイミングによってはアカウントが作成できない可能性があります。
図5 Takahēサーバーのフロントページ
Takahēのウェブサイトを開いたら、ページ上部のユーザー登録ボタン(人の形のアイコンのボタン)をクリックしてください。
図6 ユーザー登録ページ
ユーザー登録にはメールアドレスの入力が必要です。「 Create」( 作成)ボタンをクリックすると、メールアドレスに次のようなユーザー登録確認メールが送信されます。
図7 ユーザー登録確認メール
「Confirm New Account」( 新規アカウントの確認)ボタンをクリックすると、パスワードの入力画面に移動するので、安全なパスワードを入力します。
図8 アカウント一覧/作成ページ。画面下にはTakahēでおすすめされているMastodon互換クライアントアプリケーションの一覧がある。この後紹介するElk(エルク)の他にも、Android向けのTusky(無料) 、iOS向けのIvory(有料) 、デスクトップ・ウェブ対応のSengi(無料) 、Android用のFedilab(有料) 、iOS用Toot!(有料) などがある。これ以外にも、Mastodon互換のAPIをサポートするさまざまなクライアントアプリケーション が利用できる
メールアドレスでユーザー登録が完了すると、次のようなIdentity(アイデンティティ/アカウント)作成ページが表示されます。Takahēではマルチアカウントが作成できるため、ユーザーはここで1つ以上のアカウントを作成します。「 Create a new identity」( 新しいアイデンティティを作成)ボタンをクリックして、最初のアカウントを作成しましょう。
図9 新規アカウント作成ページ
作成するTakahēアカウントの情報を入力します。「 Username」( ユーザー名)には、英数字、_
、-
のみが使用できます。「 Domain」( ドメイン名)は、Takahēサーバーで利用できるものの中から選びます(お試し用サーバーでは1つのみ) 。「 Name」( 名前)はプロファイルと投稿に表示される名前です。Discoverable(発見可能)は、フロントページとサーバーのユーザー一覧などに表示されるかどうかを選択します。「 Create」( 作成)ボタンをクリックすればアカウントが利用できるようになります。
図10 登録したアカウントがアカウント一覧ページに表示された
作成したアカウントの「Setting」( 設定)ボタンからは、アカウントの基本情報やアイコンなどが設定できます。
図11 アカウント詳細設定ページ
メニューからは、投稿の表示設定、インポートとエクスポート、連携されたアプリなどが設定・確認できます。
クライアントアプリElk
それでは、作成したTakahēのアカウントをクライアントから利用してみましょう。Takahēは他のFediverseサーバーと通信するためのActivityPubだけでなく、Mastodon互換のREST APIも提供しています。これにより、既存のさまざまなMastodon用クライアントアプリケーションから利用できるようになっています。
先に述べていたように今回は、ウェブアプリケーションのElk(エルク)から利用する方法を紹介します。
図12 Elk上で表示したElk公式アカウント(@elk@webtoo.ls )。デザインはとても親しみやすい
Elkは、Vue.js ベースのウェブフレームワークNuxt を利用して開発されています。開発を率いているのは、Nuxtを開発しているNuxtLabsと、StackBlitzのコアデベロッパーからなるチームです。Elk内部では、Ryō Igarashi(@neet) さんが開発するMastodon APIライブラリmasto.js や、kazponさん(@kazupon) によるNuxtの国際化モジュールnuxt-modules/i18n も活用されています。筆者も、ElkのUIの日本語翻訳や機能追加・バグ修正でコントリビューションしています。
ElkはPWA(Progressive Web Apps、プログレッシブウェブアプリ) としてもインストールできるため、ネイティブアプリケーションのように独立したアプリ/ウィンドウで利用できるのも便利です。
ノート:新しい世代のMastodonクライアントの誕生:
Mastodonの公式モバイルアプリ を含めて、以前からMastodon互換のクライアントアプリケーションは存在していました。しかし、昨年末から今年にかけて、新しいクライアントアプリケーションがいくつも誕生しています。ElkやIvoryもそうしたアプリケーションの1つです。
Ivory は、Tapbotsから公開された人気のあるiOS/iPadOS/macOS用アプリです。Tapbotsは優れたUI/UXで有名なTwitter用クライアントTweetbotを公開していたので、以前Twitterで利用していた読者もいるかもしれません。Twitter社により事前通告や明確な説明なくサードパーティアプリが禁止されたこと により、10年以上継続していたアプリの開発停止を余儀なくされてしまいました 。
Takahēアカウントでサインイン
Elkの更新や修正をいち早く試せるカナリー版は、main.elk.zone で公開されています(通常の安定版もelk.zone で同様に公開されていますが、現時点のバージョン0.10.1にはTakahēなど一部のクライアントに認証の問題があるため、カナリー版をお試しください)。初めてアプリを開くとウェルカムダイアログが表示されるので、「 Enter App」ボタンをクリックし、まずはUIを日本語に変更しましょう。
画面左側のナビゲーションバーから歯車アイコンの「Setting」( 設定)メニューを選択し、「 Language」( 言語)メニューを選んだら、「 Display Language」( 表示言語)のセレクターから「日本語」を選択します。モバイルの場合には、右下の3点ドットボタンをタップするとナビゲーションパネルが表示できます。
図13 言語の設定ページ
次に、Takahēサーバーに接続します。「 サインイン」ボタンをクリックして、お試し用サーバーのドメイン名takahe-gihyo-trial.shuuji3.xyz
(または公式フラグシップサーバーの場合はtakahe.social
)を入力して「サインイン」ボタンを選択します[8] 。
図14 Elkのサインインダイアログ
Takahēアカウントの使用許可を求めるページに移動するので、「 Allow」( 許可)を選択します。
図15 Takahēの認証ページ
これで認証が完了し、Takahēアカウントを使ってELkが使えるようになりました。左下(モバイルの場合は右上)にサインインしたアカウントが表示されています。Elkは複数アカウントに対応しているため、複数のTakahēアカウントやMastodonアカウントを切り替えて使い分けることもできます。
図16 ログイン後の画面とアカウントリスト
Elkを利用した投稿とフォロー
投稿するには、ホームページ上部のテキストエリアを使うか、またはメニューから「投稿」ボタンを選択して投稿ページに移動します。また、投稿のショートカットキーc を押すと、投稿ダイアログが表示できます。Elk独自の機能として、投稿内のMarkdownテキストのレンダリング機能があります[8] 。
図17 投稿ダイアログ
「投稿」ボタンを押せば投稿完了です。
図18 投稿ページ
TakahēサーバーはMastodonサーバーとActivityPubプロトコルでフォローや投稿の情報を相互にやり取りできるため、MastodonやMisskeyのアカウントもフォローできます。試しに、Mastodon公式アカウント をフォローしてみましょう。虫めがねアイコンの「検索」メニューを選択し、アカウント名 @Mastodon@mastodon.social
を入力します。
図19 Mastodon公式アカウントの検索結果
検索結果に表示されたアカウントを選択すると、プロフィールページに移動します。「 フォロー」ボタンをクリックすれば、フォローが完了します。フォロー後にアカウントが新しい投稿をすると、アカウントのサーバーからTakahēサーバーに投稿が配信され、Elkのホームライムラインに投稿が表示されます[10] 。
[10] ActivityPubやMastodonによるサーバー間の情報同期の制限により、異なるサーバー上のアカウントのフォロー数や過去の古い投稿が完全に表示できないことがある問題があります。この問題の解決策については、MastodonのGitHub issue で議論が行われています。
図20 Takahēアカウントから異なるサーバーのMastodonアカウントもフォローできた
アカウントのフォローはごく普通にできたように見えますが、実はここではとても興味深いことが起きています。独立したTakahēサーバー上のアカウントから、異なるドメインのMastodonサーバー上のアカウントがフォローできています。喩えるなら、Twitterのサードパーティ製アプリ上でInstagramのアカウントを検索して、そのアカウントをそのままフォローできてしまったようなものです。これが可能なのは、異なる種類のFediverseサーバー同士が、ActivityPubという共通のプロトコルを使って共通の情報をやり取りしているためです。
Mastodon以外の互換性のあるサーバーからもTakahēアカウントをフォロー・閲覧できます。次のスクリーンショットは、misskey.io上のアカウントからTakahēアカウントを表示したものです。
図21 misskey.ioのアカウントからTakahēサーバーのアカウントもフォローできる
まとめ
この前編の記事では、ActivityPub/FediverseサーバTakahēの特徴と利用方法を紹介しました。
Takahēプロジェクトとフラグシップサーバーtakahe.socialの最新情報は、プロジェクトの公式アカウントtakahe@jointakahe.org とtakahe.socialの管理者アカウントadmin@takahe.social でフォローできます[11] 。これらはTakahēサーバー上のアカウントですが、もちろん、MastodonなどのActivityPubに対応している他のFediverseアカウントからもフォローできます。
Takahēプロジェクトでは、Patreonでサポーターを募集しています 。特に、「 Featured Supporter」や「Sponsor」メンバーになると、フラグシップサーバーtakahe.social上でカスタムドメインを利用できるようになる特典が得られます。また、プロジェクトでは鳥のTakahēの保全活動を支援するためにNew Zealand Nature Fund(ニュージーランド自然基金) への寄付も行っています。
後編の記事 では、Takahēのより技術的な説明をする予定です。Takahēサーバーの基本的なアーキテクチャ、特徴的なコンポーネントや利用されているライブラリについて紹介し、コンテナを利用して実際にTakahēサーバー実行してローカルマシンで試す方法を説明します。
この記事が、インターネット上で安心できる場所を見つける助けになれば嬉しいです。
コラム: Fediverseの課題と将来のソーシャルネットワークの可能性
Fediverseの課題として、少数のサーバーに負担が集中する問題を挙げました。サーバーを横断した検索性が低いことも、こうしたユーザーの集中の原因となっていると考えられます。ユーザー数の多いサーバーは活気があったり、興味のあるユーザーが見つかりやすくなるため、より多くのユーザーが特定のサーバーへ向かう動機が強くなってしまいます。特にMastodonは、歴史的にユーザーのプライバシーの権利やハラスメントを防ぐことを重視し、サーバー横断のグローバルな全文テキスト検索機能の実装を避けてきました。これにより多くのユーザーが守られてきた一方、同時に他のソーシャルネットワークサービスで便利に使える検索が困難になっており、こうした利便性を求めるユーザーの参加を難しくしています[12] 。
もう1つの課題は、Fediverseネットワーク上に企業や公的機関等の公式アカウントの多くが存在しなかったことが挙げられます。しかし、Elon Muskによって引き起こされているX/Twitterの多数の問題により、この状況も変わりつつあります。著名な公的機関の例として、2022年から運用が開始されたEUによるMastodonインスタンスEU Voice の設立があったり、最近では、BBC Research & Development(BBCの研究・開発部門)が実験的なMastodonインスタンスの運営を開始しました 。また、中立性の高い公共メディアであるアメリカのNRPやPBS、カナダのCBCなどは、Twitter上でアカウントに「( 主に偏向的な情報を発信する目的で)政府による資金援助を受けている」という信頼性を損なう恐れがあるバッジが付けられたことから、Twitterアカウントの利用を停止したりしています。これらのアカウントは、代替としてThreadsのアカウントを作成したり、NRPに加盟する一部の放送局がMastodonアカウントの運用を開始したりしています[13] 。
また、Metaが開発したThreadsの出現 も、Fediverseネットワークに今後大きな影響を与える可能性があります 。Threadsはユーザー数1億人の最短記録を更新したサービスとなり、InstagramやFacebookなどを活用していた多くの企業やブランドアカウントがThreadsのアカウントを開設しました。ThreadsはActivityPubの対応を表明しています 。もしこれが実現すれば、Fediverseサーバーから多数の公式アカウントをフォローできるようになり、従来Twitterなどの公式アカウントでしか得られなかった情報が受け取れるようになる可能性があります[14] 。
さらに、自動投稿サービスのBufferがMastodonに対応したり 、WordPressではプラグイン を使うことでActivtyPubで配信できるようになりました。また、Tumblrは昨秋にActivtyPubへの対応を表明しています 。こうした外部の一般的なサービスによる対応は、Fediverseのエコシステムに参加する障壁を下げる助けとなるでしょう。
ソーシャルネットワークを巡る状況はいまだに変化が大きく、将来の変化を予想するのは簡単ではありません。この十数年で、ソーシャルネットワークの社会的・心理的な問題も多数明らかになってきています。EUのGDPRやデジタルサービス法(Digital Services Act、DSA)による市民の権利保護の強化、アメリカ合衆国政府・議会によるビッグテックの規制に関する議論も続いています。技術的な影響だけでなく政治的な影響も受けながら、今度もさまざまな新しい試みが続けられることで、将来のインターネット上のソーシャルネットワークは大きく異なる形へと変化していくかもしれません。