Chienomi

Twitterアプリが使えなくなったのでPleromaを建てました

Live With Linux::server

2023-04-05, 私がずっと愛用してきたAndroid用Twitterクライアント “Yukari4a” が利用できなくなった。

Twitterは、私は初期はPCではV2Cでやっていた。 その頃は私は反スマートフォン派だったので、スマートフォンでTwitterをすることはなかった。

その後、PCではMikutter, スマートフォンではSobachaという時期が長かったが、Sobachaのバッテリー消費量が多かったため、Yukari4aに乗り換えたのが2015年のこと。 やがてMikutterが使えなくなり、PCはTweetdeckになったが、スマートフォンではYukari4aのままだった。

Twitterは激動の中にあり、私はこれを一定に批判的に見ている。 つまり、イーロン・マスクが手を出した時点でこのような結果になると思っていたし、そのときに「状況は悪い」といった以上の感想はない。

だが、感情的な問題とは別の話で、そもそも最近はTwitterをするのが外出中、特に電車移動中に手持ち無沙汰な時くらいのものになっていたため、Yukari4aが使えなくなると本格的にTwitterをするタイミングがなくなってしまう。 そして、Tweetdeckが使い続けられるかも怪しく、割と現実的にTwitterを続けられない可能性が出てきた。

そこで、Twitterのような「活動の核となるアカウント」がFediverse上に必要である。 最も発言数が多いのはMisskey.ioだが、ioでの発言はテクニカルなものが少なく、Twitterのアカウントとはかなり色合いが異なる。 もちろん、以前はTwitterアカウントも必ずしも技術的な色合いのアカウントではなかったが、現状では私への期待がそれに偏っており、混ぜにくい。というより、混ぜてしまうとioで自由に発言しづらくなってしまう。

それを踏まえて、Fediverseのメインアカウントを用意することにした。 現状その位置づけなのはMikutterのアカウントだが、Mikutterのアカウントが安定しているとも思っていない。 私が管理するサーバーがMikutterのMastodonサーバーより安定しているとは思わないが、メインアカウントとしての使い勝手を考えると自分で管理したほうがいい。

だが、既存のサーバーにアカウントを設置することを考えると、割と難しい。 qouopはユーザーの外には出しにくい内容を発言する場所である関係で、外部からユーザーも発言も見えないようになっている。 私のメインアカウントは「発信」を主体にしたアカウントなので背反する。

Stellanautはコンセプトサーバーであり、私のメインアカウントの利用はそもそもルールに反する。

このため新しいサーバーが必要であり、消費リソースが少なく、対照試験のことも考えて新たにPleromaサーバーを建てることにした。

このサーバーはMisskey, Akkomaと同じサーバーに同居している。

サーバーの共存

Akkomaは自分が使うネームスペースをakkomaにしているため、Pleromaとの競合はほとんどない。

まず起きるのは、(MisskeyとAkkomaで生じたように)アプリケーションサーバーのポートが4000で競合することである。 これは初期設定時に自ら設定して避けることができる。もちろん、これはNginxの設定においても生じる。

次に、サンプルのNginxの設定がAkkomaのものと競合している。 重複している設定を削除し、upstreamの名前をphoenixから変更する必要がある。

だが、必要なのはその程度だ。

Pleroma

Akkomaと比較すると、(Akkomaで追加された)カスタム絵文字リアクションやMFMへの対応がない代わりに、活発に開発されており、前進を感じられる。 特に、Akkomaで感じる「怪しい挙動」はかなり解消されている。

細かな点でいえば、UIテーマの設定がリロードなしに即時反映されるようになっているといったことがあり、Pleroma-FEのストリーミング有効時のリアルタイム性もある程度高まっている。 (Pleromaは5秒程度, Akkomaは20秒程度で取得された)

大きな違いとして、チャット機能の存在がある。 Akkomaでは追従されていない機能であり、Misskeyでは削除された機能だが、TwitterのDMのようにユーザーとプライベートな会話セッションを取ることができる。

また、Akkomaではリアクションとしての意味しかないお気に入りだが、Pleromaではお気に入りをリストできるようになっている。

Akkomaではかなりくどめの配置になっているタイムラインの選択だが、Pleromaではかなりシンプルになっている。

おそらくは、Akkomaのfork元のPleromaと現在のPleromaの違いなのだろう。

異なるサーバーでのリアクション

Mastodonは使ってはいるけれど、絵文字リアクションはないため、Pleroma, Akkoma, Misskeyの関係で説明する。

いずれもカスタム絵文字を持つが、Pleromaはリアクションにカスタム絵文字を使うことはできない。 そのため、Pleromaがつける側になるときは、常にUnicode絵文字のみである

つける側/つけられる側 Misskey Akkoma Pleroma
Misskey OK OK Unicodeのみ
Akkoma 👍になる OK Unicodeのみ
Pleroma OK OK OK

このように、受け入れる側としてはAkkomaが最も寛容で、Misskeyからの絵文字も受け入れることができる。 逆にAkkomaからMisskeyにカスタムつけると、👍に丸められてしまう。Unicode絵文字をつけた場合はそのまま反映される。

一番の問題はPleromaで、MisskeyやAkkomaからカスタム絵文字リアクションをつけるとPleroma側には何も出ない。 丸められるということもなく、通知されることもなく、ただただ「反応されたことを知るすべがない」ということであり、つまり相手には決して伝わらない。

このことは知っておいたほうがいいかもしれない。 ユーザーが、リモートユーザーが使っているソフトウェアを覚えておくのはなかなか難しいが。

なお、MisskeyからPleromaにカスタム絵文字リアクションをつけると、Pleroma側ではそれを知ることができないが、Misskey上ではどうなるのか。

Misskeyに届いたリモートのノート(Pleromaのポスト)は、そのMisskeyインスタンスのノートのIDを持っている。 つまり、この状態ではオリジナルのリモートのポストを認識しているものの、それ自体はMisskeyのノート扱いである。 なので、問題なくカスタム絵文字リアクションをつけることができる。ただし、それを送られたPleroma側ではそのリアクションを捨てるので、Pleromaにはそのカスタム絵文字リアクションが保存されない。

例えば、ioでカスタム絵文字リアクションを行った場合、そのポストはioのノートとして持っている状態になるため、ioのユーザーにはカスタム絵文字リアクションが見える。 だが、ioと関係なくオリジナルのPleromaのポストから取得した別のMisskeyインスタンスでは見えない。

ただし、別のMisskeyインスタンスがその投稿をPleromaのオリジナルポストからではなく、ioのポストから取ってきた場合は(おそらく)見える。これは、ioをリレーしている場合や、ioのユーザーをフォローしていて、そのユーザーのリノートでMisskeyインスタンスに保存された場合などだ。

だが、そうでなくてもリモートノートのリアクションは完全には共有されていないので、それはそういうものだとおもっていいと思う。最大の問題は、オリジナルのPleromaポストには保存すらされていない、ということだ。

Pleromaにカスタム絵文字リアクションの計画はなくはないようだが、停滞しているようだ。

使ってみた感想としての比較

Mastodon

Mastodonはかなり頑なな姿勢を見せている。開発者が使わない機能は受け入れないといった感じだ。 思想色も強く、ここまで受け入れられていない機能は社会的な流れの変動に関わらず今後も追加されないだろう。

そして現に、Mastodonは「時代遅れな」ソフトウェアであると感じる。 比較的サードパーティアプリが多いなど、利点もなくはないが、Mastodon自体が持っている機能のことを考えてると、基本的にはMastodonを積極採用する動機に乏しい。

ある程度までならスケールしやすいので、規模拡大が目に見えているのであれば良いかもしれない。

ユーザーとしてみれば、引用, 絵文字リアクションなど、他のメディア(Fediverse SNSに限らず、Slack, Discord, Skype, WhatsApp, Telegramなど)に慣れた人が「当然にあってほしい」ものがないため、機能的に貧弱に感じられる。

「ただ文字を投稿するだけ」というのは「飽きやすいアクティビティ」であり、ユーザーにとってあまり魅力的なソフトウェアではないだろう。

Pleroma

Pleromaもやや思想色が強い。 内容的には初期のTwitter、つまり「現在を共有する」というあたりに重きを置いているようだ。

開発者が欲しなければ追加しないというのもMastodonと同じような感覚で、「自分はそんなに感情の種類はない」という理由で強く要望されているカスタム絵文字リアクションが採用されなかったりする。

また、UI(frontend)の貧弱さも目立つ。機能はMastodonよりも強力だが、UI/UXはMastodonよりも悪い。 UIの悪さのせいでできの悪いソフトウェア感がただよう。

しかし、構築が簡単で、少ないリソースでさくさく動き、単に動かし続けている分には安定性が高く、運営もまた簡単。 あまり手間をかけたくない管理者にとっては「悪くない選択」であると言える。

コンパクトに構築でき、高速で軽い。 スケーリングは少し大変かもしれないが、パフォーマンスを出しやすいため、スケーリングを必要とする状況に到達しにくい。

単体で考えた場合、コミュニティ形成という面が重要でないなら悪くない選択だが、連合を考えるとMisskey, Akkomaからリアクションが受け取れないのはかなり痛い。 非常に軽くて速いのは魅力だが。

ただ、Pleromaはそもそも他にはGNU SocialとMastodonしかないと認識している節がある。 Misskeyが勢いを増す現在、今後は情勢も変わってくるかもしれない。

Misskeyからチャット機能がなくなったため、チャット機能がある唯一のSNSソフトウェアでもある。

Akkoma

AkkomaはPleromaのforkだが、Pleromaのように思想色が強くない。 というよりも、Pleromaの硬派な思想色に対して、柔軟に欲しい機能を入れたいがためにforkしたのがAkkomaである。

大きいのは、Misskeyとの互換性だろう。 カスタム絵文字リアクション機能を持っており、MFMにも対応しているので、Misskeyとちゃんとやりとりできる。 (ただし、Misskeyに対するカスタム絵文字リアクションは丸められる)

Misskey互換機能以外に特徴的なのは、「ハッシュタグをフォローする」「管理者が設定したカスタム連合タイムライン “バブルタイムライン” がある」ということ。だが、これが(一部の状況の除いて)それほど重要なことだとは考えにくい。 それよりは、Pleromaで行われた改善が入ってないことのほうが気になるだろう。

Akkomaの開発はPleromaに対して遅れている面もあるが、基本的な部分ではPleromaと共有している。 そのため、非常に軽く高速であるといったPleromaの魅力を備えており、また、ストリーミングとアプリの問題というPleromaの欠点もまた備えている。

だが、高速で軽いというメリットを備えつつ、Misskeyを含む受け入れ力が高いというのは非常に魅力的だ。 Misskeyは非常に強力なコミュニティ機能を持つが、その大半はおひとりさまサーバーではあまり機能しない。ioのように巨大なコミュニティを目指すのではなく、コンパクトで快適な「居場所」を作るにはMisskeyよりも優れているように感じる。

表現が難しいが、「Misskeyのほうが優れていると認めるが、Akkomaは慣れるとめちゃくちゃ快適」である。 Pleromaに劣る部分があるにしても、カスタム絵文字リアクションの一点だけでもAkkomaならやれるという面が大きい。

Misskey

Misskeyに思想がないわけではないが、外側の意見に左右されやすい面を持つ開発が、ユーザーフレンドリーな側面を生み出している。なにより、「開発者がSNSやネット文化を面白がっている」というのが他のソフトウェアとの決定的な違いだと考えていいだろう。

機能的にはもはや他のソフトウェアとは異次元だと言っていい。他のソフトウェアがTwitter UIで収まる範疇、つまりtweet, retweet, favoriteという昔ながらの世界にだいたい閉じているのに対し、Misskeyはチャンネル、アンテナ、クリップ、ギャラリーなどMisskeyの中でスモールコミュニティやコンテンツを形成する機能を数多く持ち、さらにロール機能によってユーザーの権限を定義したりできるようになっている。

ユーザーに対する課金機能を用意できる唯一のプラットフォームでもあるわけだ。 また、運営者として負担が過剰にならないように運営できる唯一のプラットフォームでもある。

その分UIも非常に複雑だが、人々が受け入れているのを見ると不思議な感じがする。世の人は「ユーザーは複雑なUIを理解できない」というのだが。

私は最も優れたSNSソフトウェアとしてMisskeyを推挙するが、欠点もある。 それが、依存関係の複雑さと、消費リソースの多さだ。

依存関係が一見TypeScriptに閉じているように見えるが、TypeScriptの依存関係は意外と厄介な要素を持っている。 また、Redisを使うことが潜在的にはそれなりにリスクでもある。 Misskeyは活発に開発されており、ある程度互換性を失うような変更もされることから、相対的に運営コストの高いSNSとなる。

また、現状ではメモリ消費量が徐々に増加していくため、定期的な再起動が必要になったりする。 これがMisskeyにおいてもっとも痛いポイントだ。 そもそもMisskeyのメモリ消費量はPleroma/Akkomaと比べるとかなり多く、メモリ/CPU/ストレージいずれにも負荷が高い機能を持っている。スモールに運営するにはあまり向いていない。

現在、もっとも大きな規模へのスケールに可能性を拓いているのがMisskeyだが、それでもまだioで15万ユーザーに過ぎない。 TwitterやQQのような急激な規模拡大に耐えられるような作りにはなっておらず、拡大に伴ってまだ数多くの問題に直面するだろう。 だが現実問題として、それに直面する事態を経験しているのがMastodonとMisskeyしかなく、その上で超大規模までの可能性を持っているのはMisskeyだけだろう。

はるかみFediverseアカウント

  • 公式アカウント (Twitter相当) @reasonset@pleroma.jlinuxer.org
  • 雑談アカウント @reasonset@misskey.io

今回からShare to FediverseのメンションアカウントはPleromaのものに変更された。 (このシェア機能はJavaScriptで組まれているため、再ビルドは必要なかった。)

また、今回からShare to Fediverseの選択肢に以下を追加した

  • みすてむ
  • 隠れ家
  • りんごぱい

2023-07-07追記: 移転のお知らせ

Pleromaに問題があったため、Akkomaにマイグレーションしたところ、インスタンスが破損したことから、JLinuxer Pleromaを破棄し、JLinuxer Socialを新規に立ち上げた。

アカウントも@reasonset@social.jlinuxer.orgになる。

詳しくは別記事、JLinuxer PleromaからJLinuxer Socialへ移設