kmyblueをMastodonフォークとして公開します

本日、Mastodonのフォークの1つであるkmyblueのインストール方法・貢献方法を公開しました。

いつもならkmyblueは「https://kmy.blue/」にあるMastodonサーバーをさしますが、この記事では特にことわりがない限りフォークとしてのkmyblueをさします。これの意味するところは、誰でも自由にこのフォークのソースコードをコピーして、kmyblueと同じ機能を持ったサーバーを建ててもいいですよという話です。

インストール手順はここにありますので、適宜参照して自分のサーバーにインストールしてください。

https://github.com/kmycode/mastodon/blob/kb_development/INSTALL.md

フォークにした理由

有名なMastodonフォークとしては、glitch-soc、Fedibird、Hometownなどいくつかのソフトウェアが存在します。誰でも自由にこのフォークを用いて自分のサーバーを立てることができます(もちろんすべてのMastodonフォークはAGPLですから、特に自由に使ってくださいと宣言されていないソフトウェアを使ってサーバー建ててもライセンス上問題ありませんが)。
kmyblueもその選択肢の1つとして見てくださいと、そういう宣言をしました。

kmyblueは同人作家に特化したサーバーとして誕生しましたが、アンテナ機能・検索機能など、汎用サーバーとしても使える機能が多く実装されています。でもkmyblueがhttps://kmy.blue/だけで使われている限り、そうした機能は同人作家以外は使えなくなっちゃう。それがもったいないなと思いました。

あと、サーバーkmyblueってルールが少し厳しい方です。ロリ禁止とか実写エロ禁止とかはありますが、画像にNSFWをつける基準も細かく規定していて、NSFWさえつければ投稿してもいいのですが、そのルールの存在自体がちょっと敷居が高い人もいるんじゃないかって日々不安になっていました。
フォークkmyblueにそのようなルールを適用する必要はないので、サーバーkmyblueのルールの敷居が高くて避けていた人にもkmyblueの機能を使う機会ができてほしいとも思っています。

フォークkmyblueを選ぶメリット

kmyblueは、Mastodonに不完全ながらMisskeyに似た機能性を求め、かつプライバシーへの配慮を求めるコミュニティに適しています。ただし頻繁にアップデートを行ったり、動作が不安定になったりする場合があるため、管理人にはトラブルへ臨機応変に対応できる能力が求められます。(LTS出すつもりもあります)

kmyblueは数あるフォークの中で比較的Misskeyに近い機能性を持ち、絵文字リアクション(スタンプ)やリアクションデッキなどに対応します。Misskeyの投稿(未収載含む)を自由に検索することもできます。アンテナ機能はMisskeyのものより強力ですが、引用機能など弱体化されている機能もあります(引用の通知を受け取ることは可能です)。
この弱体化は意図的なもので、kmyblueは「投稿を見せたくない人に見せない/見たくない投稿を見ない」というMastodon本家の理念を大切にして、特にプライバシー方面で機能拡張を行っています。そのためMisskeyと相容れない箇所も複数あり、その機能は意図的に実装していません。

サーバーhttps://kmy.blue/において、ローカル公開、ならびに未収載投稿のハッシュタグ検索や自由な全文検索(もちろん拒否も可能)は使用頻度の高い機能です。ローカル公開は「他のサーバーの連合タイムラインに載せたくない」を満たし、未収載投稿拡張は「ローカルタイムラインには載せたくないが検索されたい」を満たします。
kmyblueフォークは未収載投稿を強化する反面で、時にはこのフォークを採用したサーバーの利用者の殆どがローカル公開を選ぶために他のサーバーの連合タイムラインに乗らなくなり、またMastodon4.2.0から追加されるIndexableという新しい検索システムにも掲載されなくなるため、他のサーバーとの連合に消極的になってしまう可能性もあります。ただしMisskeyやkmyblueフォーク同士では、未収載投稿をお互い検索しあうことが可能であることにも留意しましょう。
恥ずかしい話、過激な話を連合タイムラインに載せたくないような趣向があるコミュニティには、kmyblueフォークは強力な機能を提供します。

タイムライン上の絵文字サイズをカスタマイズする機能など、冗談や内輪ネタを助長するような機能はkmyblueは現在作っていません。誰が集まるかにもよりますが、kmyblueフォークを使用して建てたサーバーは、Misskeyと比べて落ち着いた雰囲気になる可能性が高いです。騒がしいのが苦手な人にkmyblueは向いています。

kmyblueは独自機能を多数実装していますが、そのテストコードも少しずつ書き進めています。今年7月末の情報流出事件を経て再発防止のために書き始めたテストコードではありますが、本家Mastodonのアップデート時に独自機能の動作変更がこれまでに2回見つかりました。また本家Mastodonの機能に対するテストもいくつか補強しています。完璧は保証できませんが、信頼性は少し確保できるかと思います。
テストコードはまだ完全ではありませんが、重要な機能、クリティカルな機能についてはもうほとんど書き終わっていますので、残りは時間のある時にゆっくり書き進めていきます。

kmyblueは残念ながら不安定な要素もいくつかありますが、それをカバーするために、本家Mastodonのアップデートに合わせる形でLTS(ロングタイムサポート)バージョンを提供したいとも考えています。こちらは機能追加はほとんどせず、バグ修正対応だけを行います。これのどこがいいかというと、機能を追加するとその分だけバグも増えるのですが、LTSは最新機能を犠牲にする代わりにバグを増やすリスクを抑え、開発版よりも比較的安定性を重視します。また最新版ではMastodon本家の作りかけのコードも取り込むため、画面の各所が英語になっている場合がありますが、LTSではそのようなことは起きづらいです。
初回のLTS提供は、Mastodon本家が4.2.0正式版を公開するタイミングを考えています。もちろんLTSそのものもアップデートが存在するため管理人には定期的なアップデート作業が必要です。
LTSが出てから使いたいという人は、LTS出した時に連絡差し上げますのでご連絡ください。

Fedibirdフォークとの比較

※ここでのFedibirdはサーバーhttps://fedibird.com/ではなくフォークをさします

kmyblueと類似のフォークとしてFedibirdがあります。機能的にも大変似ていますが、kmyblueは未収載投稿の扱いやMastodon・Misskey間の実装差異の対応などに特に強く、本家Mastodonの変更に積極的に追従する方針も示しています。
対してFedibirdは本家Mastodonの変更に積極的追従していない反面、セキュリティパッチは積極的に取り込んでおり、古いながらも安定性があります(現在Mastodonバージョンは3ですが、近日Mastodon 4.2.0にアップデート予定です)。Fedibird開発者はMastodon本家に多く貢献した経験があり、その経験と技能もFedibirdの安定性を上げています。またタイムライン上の絵文字サイズのカスタマイズなどを追加しており、絵文字をネタ的に使う、誕生日を設定して遊ぶなど、ネタとして活かせる側面が複数あります。一方でFedibirdは本家Mastodonと比べて負荷が高いのですが、それは独自機能を多く追加したことに起因するもので、kmyblueも大小の差はあれと同じでしょう。
ただしFedibirdはシンプルさを求める側面もあり、kmyblueにあるようなプライバシーに関係した細かいカスタマイズは実装していません。kmyblueはプライバシーに関する設定が豊富ですがFedibirdより学習コストが高い可能性もあり、プライバシーよりシンプルさを重視する場合もFedibirdは選択肢に入ります。

kmyblueは本家Mastodonに積極的追従を行うため依存ライブラリの更新が頻繁に発生しますが、Fedibirdはそれがあまりありません。これはメリットとデメリット両方を伴う話ではありますが、その点についてはFedibirdのほうが敷居が低いかもしれません。

落ち着いた雰囲気や最新のMastodon本家追従を求めるならkmyblueですが、安定性と機能性のバランスの取れたフォークを求めるならFedibirdが向いています。

バグ報告、サポートなど

kmyblueを開発している人は1人しかおらず、十分なサポートは難しいかもしれませんがあなたのサーバーで発生した機能上の問題はサーバーhttps://kmy.blue/の問題でもあるので、可能な限り対応したいです。

バグ報告の方法についてはこちらに記載されていますので、参照してください。

https://github.com/kmycode/mastodon/blob/kb_development/CONTRIBUTING.md

日本語圏で有名なソフトウェア間での機能比較表

9月の情報をもとにしています。

この記事が気に入ったらサポートをしてみませんか?