自宅サーバーにぼっちMastdon (Hollo) を建てた。SNSの終焉

終焉

kbaba1001 kbaba1001
私の中のSNSを終わらせました

背景

私がX(Twitter)に失望してアカウントを消してしまったことは以前漫画にも描いたとおりです。 しばし、紙の日記や別のSNSなどいろいろ試してきましたが、最近はだいたい次のような感じで落ち着いています。

  • 紙の日記 ... 1日数回~週に数回程度の頻度で徒然なる思いを書く
  • BlueSky ... ほぼ閲覧専用。投稿はほとんど告知のみ。
  • X ... サークル用にアカウントを作り直したけど正直あんま使ってない
  • Instagram ... 同上
  • Facebook ... 友だちとのつながりのためにアカウント残してるだけという感じ
  • Discord ... クローズゆえの安心感があり結構使っている

kbaba1001 kbaba1001
一番活発に投稿しているのがこのブログだったりします。

kbaba1001 kbaba1001
そして、この度ヘッダーに Timeline が追加されました。

今日はこれの話をします。

Timelineとは何なのか

kbaba1001 kbaba1001
私の一人Twitterです

他の人の投稿は出てきませんし、リプライやいいねとかもないです。 頑張ればMastodon経由でなにかアクションできるのかもしれませんが、ちょっとこの辺は後で説明します。

kbaba1001 kbaba1001
私の近況がわかる。それだけです。

正しく MicroBlog というわけです。

どうやって投稿しているの?

投稿画面

こんな感じの投稿用の画面というかアプリというかがあります。 これは私にしか見えません。

技術的な話

さて、そろそろこれが実態として何なのかを説明しましょう。

タイトルにもある通り、Mastodon です。

ただし、お一人様用の Mastodon 互換サーバーを作れる Hollo というソフトを使っています。

kbaba1001 kbaba1001
自宅サーバーで Hollo を Self-Hosting しました。

Hollo が Mastodon 互換APIを持つので Mastodon ツールが使える

Hollo の Clients 紹介のページに書かれているようなクライアントが使えます。

kbaba1001 kbaba1001
先程の投稿アプリのスクショも Phanpy というMastodonクライアントです

これはなんだか Clojure で Java や JavaScript のリソースを利用している事に似ています。 プロトコルに依存するとエコシステムを拝借できるという利点がありますね。

そして、ブログに投稿を埋め込むためのライブラリとして mastodon-embed-timeline というのを見つけたので これを使えば簡単に投稿を表示できるわけです

kbaba1001 kbaba1001
が、だめ。。。動かない!

Mastodo embed timeline が動かない

何度やってもTimelineを取得するAPIが 401 を返します。

Mastodon の API の仕様 を確認すると Public な投稿では認証が不要ということになっていますが、 どうも Hollo では認証が必須になっているようです。

オープンソース (AGPL) バンザイ

kbaba1001 kbaba1001
だめなときは改造しよう

オープンソースは素晴らしい。Hollo は AGPL ライセンスなので、改造したらそのソースコードも公開する必要があります。 というわけで主に次の改造を行いました。

diff
コミット

少々荒っぽいですが、認証部分を削除してAPIが動くようにしました。 これで無事に Mastodo embed timeline が動くようになりました。

今のところの感想

さて、なんとなく気づかれたかと思いますが、別に私はMastodonやMisskeyでの交流は目的としていないので、 Holloでさえオーバースペックです。 単に Google Form + Google SpreadSheet とかでデータ作って表示するだけくらいでも良かった気はします。

ただ、まぁ、Mastodonの資産を使えるのはそれなりに楽な気もします。

恥ずかしながら今回のことで初めて ActivityPub という概念も知りました。 これは Mastodon, Misskey, 意外にも Threads などで投稿などを共有できるプロトコルです。

kbaba1001 kbaba1001
Mastodon って結構な発明だったんですね...

ところで BlueSky が ActivityPub ではない独自のプロトコルを使っているということで、 なんかそんなところでいがみ合っている場合ではないような気もしました…。 BlueSkyなりにActivityPubが気に入らない点がなにかあるんでしょうけど。

kbaba1001 kbaba1001
それで言えば一人BlueSkyサーバーを建てるという手もありましたねぇ。

とりあえず Hollo で作ってしまったのでしばらくはこれを使ってみようと思います。

引き続き若干 Hollo の挙動が怪しいところがあるので fork したリポジトリで直して、 余裕があれば本家にも Pull Request しようと思います。

一覧に戻る