chroju.dev/blog

the world as code

おひとりさまPleromaでFediverseに参加して1年が経った

Twitter (X) からの避難先としてPleromaを建てた - chroju.dev
chroju.dev/blog
Twitter (X) からの避難先としてPleromaを建てた - chroju.dev favicon https://chroju.dev/blog/twitter_to_pleroma
Twitter (X) からの避難先としてPleromaを建てた - chroju.dev

このエントリーで書いた Pleroma を建て、Fediverseに参加してから1年が経ったので、いろいろ書いてみる。

構成

始めた当時はシステム構成に言及していなかったので、改めて書き残しておく。

Pleroma構成図

Pleromaは、Lightweight Kubernetesである K3s 上でDockerコンテナとして動作させている。コンテナで動かす必然性はまったくなく、検証用で建てているK3s環境を常時活用していたいという、単にそれだけの理由でこの構成にしている。データの保存にはPostgreSQLが必要だが、これもコンテナで動作させて、EFSで永続化を行っている。

Pleromaは公式のDockerコンテナを提供していないため、サードパーティの https://github.com/angristan/docker-pleroma をforkして使っている。

インターネットとの通信には Cloudflare Tunnel を利用している。いわばngrokのようなものであり、インバウンドの通信を開けなくても、Pleromaをインターネットへ公開できる。サーバの要塞化などの手間はなるべく減らしたい。

全体が載るEC2インスタンスは、t4g.smallのスポットインスタンスを利用している。お金の関係もあってだいぶ貧弱なサイズを使っているが、後述するようにフォロー/フォロワーが少ないこともあってか、そこそこ安定して稼働できている。図にある通りAuto Scalingを採用しているが、あくまで自動復旧のためであり、複数台構成を取っているわけではない。

稼働状況

定常的にメトリクスを記録してはいないが、 cpu: 200m, memory: 250Mi という limits 設定で今のところ安定して稼働している。ActivityPubの仕様上、Federationが増えれば負荷も大きくなるとは思うが、最低限の運用だとかなりリソースの消費は低い。Raspberry Piでも動作可能とうたっているだけはあると思う。

メトリクスの監視はしていないが死活監視だけは行っていて、 UptimeRobot を利用している。無料プランだと5分ごとにHTTP通信を試みる簡易な監視ができるだけだが、不意に落ちている状況には気づける。また status page が作れるのも気に入っている。

UptimeRobot

ちなみにstatus pageを見ると頻繁に落ちている期間があるが、当初は1AZ構成だったので、AZ内でのEC2キャパシティ不足で不安定になった時期があったりしていた。個人の環境ということもあり、安定性はあまり追求しない雑な運用をしているのが正直なところ。

SNSとしては活用しづらい

Pleromaのbio

ステータス(投稿)が3桁にいくぐらいには投稿しているが、見ての通りフォロー/フォロワーはかなり少ない。

フォロー相手は、おひとりさまサーバを使っていると非常に見つけづらい。大勢参加しているサーバであれば、ローカルタイムラインやフェデレーションタイムラインに見知らぬ人の投稿が流れてくることもあるだろうが、ひとりでやっていると、他人を見つけるには他のサーバへと分け入っていく必要があり、手間がかかる。

知人からフォローしていきたいところではあるが、Fediverseでアカウントを持っている人はやはり少ないし、アカウントがあるとしてもそれを探す手段が限られる。仮に探し当てたとしても、すでに1年以上投稿がないということも多かった。Fediverseを常用している人は、体感やはり非常に少ない気がしている。

逆に、フォロワーがわずかとは言え増えたのが面白い。基本的には、偶然僕のPleromaへ流れ着くことはないはずである。それにも関わらず、他のSNSでまったく繋がりのない人からのフォローもあり、どこから探し当てたのか不思議に思ったりもしている。

今はもうある程度あきらめてというか、開き直って、静かなSNSとして利用している。

クライアントソフト

クライアントとしては、デスクトップではPleromaにフロントエンド(Pleroma FE)が同梱されているので、それをそのままブラウザから使っている。二要素認証もあるので安心感はある。

Androidでは Tusky を使っている。特にこだわりがあるわけではなく、なんとなく見つけて、使いやすかったので使い続けている、というぐらい。

投稿には Buffer を使い、 X (Twitter)Bluesky とクロスポストをすることも多い。あまり広く見られる必要がない独り言などは、Pleromaだけに投稿したりもする。

BufferがThreadsにもBlueskyにも対応して便利に
個別に投稿をカスタマイズし連続投稿もできるものの…
BufferがThreadsにもBlueskyにも対応して便利に favicon https://lifehacking.jp/2024/08/buffer-threads/
BufferがThreadsにもBlueskyにも対応して便利に

自分のメインタイムラインとしての今後

Pleroma、現状はあまりSocialな場にできていないものの、むしろそれでいいと考えて、自分のメインタイムラインとしての意識はこの1年間継続している。Socialな繋がりはX (Twitter)が場としてあり、PleromaはSocial性を追求せずに、好きに投稿を垂れ流す場所としている。と言っても、別に表へ出せないネガティブなことを書きたい、というわけではないが、最近自分のXは会社の採用活動にも活用していたり、公的な性質を帯びるようにもなってきたので、それに対する私的なタイムラインとして、どうでもいいようなことを書いてもOKな場所が別にあっていいな、というか。

このブログと同様、自分の庭という感覚に近いかもしれない。APIがあるのでIFTTTなどを通じたハックもしやすいし、Xと違って、ログインしていなくとも閲覧しやすいのもいい。購読する人はまずいないだろうが、RSSの形でも吐いてくれる。総じて使い勝手としては気に入っている。

今後もX、Bluesky、Pleromaの3軸を併用するのがしばらく続くと考えている。可能であればSocialな場はBlueskyに統一したいのだが、現状だとまだまだXの存在感が大きい。ただ昨今の情勢を鑑みると、Xの先行きに対する不安感は非常に強くなっている。

一方では、Fediverseが主流になる未来というのもまず来ないだろう。分散型のSNSは、分散しているが故にフレキシブルに利用できるメリットがあるが、分散しているが故に盛り上がりが見えづらくもある。局所的な人気と、自分のような個人ユースだけで続いていくんじゃないだろうか。

当然ながらOSSであるPleromaの先行きだってわからないわけだが、現状は活発に開発されており、まだまだしばらくは使っていきたい。