plusminus editionについて
はじめに入手先改造点バックエンドElasticsearchの日本語対応tootの文字数制限を変更API経由のユーザー登録を無効化ユーザー登録でbot判定を行うリモートメディアのキャッシュを無効化メディア添付上限数を変更メディアの上限サイズを変更ストリーミングAPIの切断テストフロントエンド
はじめに
Mastodon plusminus editionは、Mastodonの痒い部分に手が届くように改造を加えたMastodonです。
PostgreSQLのDBスキーマが本家Mastodonと完全に一致する(👉DBに手を加えない)ように改造を行っているため、
docker-compose.yaml
の image
を書き換えるだけで、すぐに使い始めることができます。改造の範囲は、とても便利になるであろう機能から、界隈の内輪ネタな部分までカバーしています。
また、改造した機能の有効/無効や値については可能な限り調整できることを第一にしています。
これは、バニラのMastodonがハードコードばかりであったり、独裁的な部分があったりするのを不満に思う場面が多かったためです。
入手先
mastodon
mstdn-plusminus-io • Updated Feb 21, 2023
改造点
バックエンド
Elasticsearchの日本語対応
これは設定不要です。
tootの文字数制限を変更
比較的需要が高いtootの文字数制限は、環境変数
STATUS_LENGTH_LIMIT
のみで変更することができます。デフォルトでは5000文字に緩和してありますが、
STATUS_LENGTH_LIMIT=500
を指定すれば、バニラのMastodonと同じ挙動にすることもできます。API経由のユーザー登録を無効化
スパムアカウントの登録を防ぐために、APIでアカウント登録をさせないようにできます。
環境変数
DISABLE_SIGNUP_BY_API=true
を指定すると、ユーザー登録APIにアクセスしたときにエラーを返すようになります。ユーザー登録でbot判定を行う
Cloudflare Turnstileを利用して、ユーザー登録を行おうとしているのが人間なのかbotなのかを判定する仕組みを追加できます。
以下の環境変数を設定することで利用できます。
CLOUDFLARE_TURNSTILE_ENABLED=true
CLOUDFLARE_TURNSTILE_SITE_KEY=changeme
CLOUDFLARE_TURNSTILE_SECRET_KEY=changeme
リモートメディアのキャッシュを無効化
issueが登録されています
Pleromaのように、リモートメディアをキャッシュしないように設定できます。
環境変数
DISABLE_REMOTE_MEDIA_CACHE=true
を指定すると、リモートのメディアのプロキシとキャッシュを無効化し、URLを直接返すようになります。メディア添付上限数を変更
環境変数
MAX_MEDIA_ATTACHMENTS=[int]
を指定すると、ローカルおよびリモートのメディア添付上限数を変更できます。Misskeyのように、5枚以上の画像を扱うことができます。
メディアの上限サイズを変更
環境変数
MAX_ATTACHMENT_MATRIX_LIMIT=[int]
を指定すると、メディアの上限解像度を変更できます。また、
IMAGE_LIMIT_MEGABYTES=[int]
で画像のファイルサイズを、 VIDEO_LIMIT_MEGABYTES=[int]
で動画のファイルサイズをそれぞれ設定できます。ストリーミングAPIの切断テスト
アプリ開発時のテスト用途として、ストリーミングAPIの接続で以下の設定を行うと、サーバー側から切断を行います。
- Server-Sent Events
- HTTPヘッダ
X-Disconnect-After: [秒 (float)]
- WebSocket
- クエリパラメータ
x-disconnect-after=[秒 (float)]
フロントエンド
// TODO:
mstdn.plusminus.io



Mastodon plusminus edition
