というわけでねhttps://t.co/IcPz05fXfH
— 𝘼𝙧𝙧𝙖𝙮-𝙨𝙖𝙣 (@genya0407) July 5, 2023
背景
2023年7月頃に mastodon サーバーを立てて、8月頃から Twitter への投稿をやめた。 それから半年ぐらい経過し、現在では私にとっては mastodon がほぼ Twitter の代替となりつつある。
ここ数週間で話題となっていたスパム騒動への対応も含めて、このへんで簡単に振り返っておく。
前史
2017年ごろに mastodon サーバーを立てていたことがあった。
このときは、立てたサーバーを自分自身も使わなくなってしまい、自分以外の利用者もそれほど多くないようだったので、一ヶ月程度で閉じてしまった。
余談だが、記事中で「無料SSL」というキーワードを強調しているのは、当時はまだ Let's Encrypt 等が普及しておらず、暗号通信を利用するには追加料金が必要となることが多かったことによる。
social.genya0407.link を公開
2023年7月頃、X が頻繁に壊れるのに嫌気が差し、逆張り精神も相まって mastodon に移住することを決めた。 所属するサーバーをどれにするか悩んでいたが、Urabe Shohei 氏 が自前でサーバーを立てているのを観測し、自分もこれにしようと思い至った。
mastodon は公式が docker image を公開しているので、これを スポットインスタンスで個人開発 Web サーバーを運用する技術 で構築していた基盤に乗せるだけで問題なく動作した。 設定がうまく行ってなくてたまに意図せず鯖落ちしたりしてたけど、現在では概ね安定して稼働している。
ここからはしばらく平和な mastodon ライフを楽しんでいた。 2017年のときと違って misskey.io もあるし、日本語話者ユーザーもそこそこいたので、見かけた人を片っ端からフォローするようにしていると、SNS欲求が満たせるぐらいのTL流速になった。 大昔、高校生ぐらいのときに Twitter でフォローしていた技術系の人々(mikutter とかやってた人たち)が mastodon に生息していて、「皆さんここにいらっしゃったんですね」という感想になったり、 意外とお一人様インスタンスを運用してる人も多いんだなあと思ったりした。
投稿がちょっとだけバズる & misskey との互換性問題
ある日、適当な投稿をして就寝したところ、朝起きたらそこそこ RT / Like されているということがあった。
23 RT / 69 Like に到達してる。
実はこの投稿を misskey.io から見るとちょっと面白いことになっている。
misskey には リアクション という機能があるのだが、これを mastodon 側から観測すると Like に丸められてしまうのだ*1。
このことは以下のページでも解説されている。
絵文字リアクション - ActivityPubまとめwiki
mastodon にもリアクションに使われた絵文字の情報自体は飛んできているので、それを適切にハンドリングしてやれば mastodon 上でも絵文字を表示することができる。
当然のことながら、絵文字リアクションに対応した mastodon fork も存在する。
ともあれ、mastodon の公式イメージを利用する限り、misskey.io から飛んできた絵文字リアクションを確認することはできないということがわかった。
mastodon を fork
mastodon のコードベースに自分で手をいれて絵文字リアクションを表示させるのは楽しそう、というモチベーションから、公式レポジトリを fork して自前のレポジトリを作った。
https://github.com/genya0407/mastodon
upstream への追従を楽に実施するために、以下のようなポリシーで更新を行っている。
- upstream の
v4.2.7
からtrunk
というブランチを切り、独自の修正はそこにマージしていく - リリースしたくなったら
trunk
からv4.2.7-genya0407-0
のようなタグを切り、docker image をビルドしてデプロイ - upstream に新しいタグが生えたら
trunk
にマージし、新しくタグを切ってビルド & デプロイ
いまのところは、後述のスパムフィルターと絵文字リアクションの表示機能ぐらいしか差分がないため、upstream への追従も難なく行えている。 メジャーバージョンの更新時など、大きな差分が入るタイミングでコンフリクトが発生し、頓挫する可能性もあるが、それはその時考えればいいと楽観的に考えている。
スパム騒動
この記事に取り上げられている通り、2月の上旬頃から ActivityPub 界ではスパムが問題となっていた*2。 私のアカウントにも、謎の mastodon サーバーに作られた謎のアカウントから謎のメンションが一日数件ほど寄せられる事態となった。
ただのメンションではあるのだが、スマホの通知が鳴るのと、mastodon の通知欄がそれで埋まってしまうのも嫌だったので、何らかの対策を打つ必要があると考えていたところ、 rosylilly 氏によって対策パッチが https://best-friends.chat/ に導入されたことを知った*3。
これを上述の fork に取り込んだところ、スパムが一通も届かなくなったことを確認した。
その後、スパムを弾いたときにログに出す仕組みを独自に実装し、たまにサーバーのログを眺めて楽しんだりしている。
スパマーはカス!と思う一方で、いにしえの Unix 版のエピソードを追体験しているようで面白かった。
2001年8月25日 - 2ちゃんねる閉鎖の危機 - ニコニコ動画
絵文字リアクションの表示
misskey からの絵文字リアクションが単なる Like に見えてしまうという話はしたが、これを mastodon からも閲覧できるように修正を加えた。
- Log emoji by genya0407 · Pull Request #1 · genya0407/mastodon · GitHub
- Fix emoji capture logic by genya0407 · Pull Request #3 · genya0407/mastodon · GitHub
- Denormalized emoji count by genya0407 · Pull Request #4 · genya0407/mastodon · GitHub
- Fix bug on serializer by genya0407 · Pull Request #6 · genya0407/mastodon · GitHub
- Show emoji on accounts API & place emojis in paragraph by genya0407 · Pull Request #7 · genya0407/mastodon · GitHub
- Show custom emoji by genya0407 · Pull Request #11 · genya0407/mastodon · GitHub
- Set timeout for emoji fetching by genya0407 · Pull Request #13 · genya0407/mastodon · GitHub
リアクションを「つける」実装はめんどくさそうなのと、自分もそれを求めているわけでもない*4ので割愛した。 超絶雑な実装だが、これによって自鯖から misskey リアクションが閲覧できるようになった。
まとめ
2023年7月ごろから mastodon サーバーを自前で運用して利用している。 今年に入ってからレポジトリを fork して、スパムフィルターや絵文字リアクションの表示機能など、独自の差分を入れて楽しんでいる。 他のサーバー管理者からパッチを拝借したり、コメントしたり、自分で実装した機能が動いたりするのは楽しい。
*1:右端の uwa_xtu... というやつはたぶん、misskey.io 以外から飛んできたカスタム絵文字リアクションの画像がリンク切れしたものと思われる
*2:スパムの発信源等については 2024年2月スパム対処顛末記+α | ドクセル が詳しい
*3:https://best-friends.chat/@rosylilly/111952483410053586
*4:人がつけたリアクションが見れればいい