自分のための場所を作る。

少し前にMateChaが死んで、モバイルでTwitterを読み書きするには別の方法が必要になった。まぁオフィシャルなアプリを入れるなりウェブアクセスでやるなり方法は色々あるんだろうけど、そもそもTwitterアレだしなーと思ってなんか別のやつを使おうかな、という判断をした。
で、NostrやBlueskyみたいなのが色々出てきてはいるけどああいうのってiPhone限定でしょ?という雑な理解をしていたり、そもそも招待状要るらしいし……ってんで順当にMastodonのようなActivityPubを喋るやつにしよう、それも出来れば自分用のサーバを立てよう、という方針に決定。

実装の評価

方針が決まったので次は使用するサーバソフトウェアを決める必要がある。以下の観点で検討を行った。

  • 収容人数は数名で良い
  • フットプリントが小さいか
  • 一通りの機能が揃っているか
  • 運用コストが低いか

これらの条件に合致しそうな実装をいくつか評価した。

Wildebeest

  • Cloudflareによる実装だけあってCloudflareのプロダクトをふんだんに使ってスケールするように実装されている。大人数を収容できそうだが量によって伸び縮みするだろうから人数の問題はない。
  • 基本料金がかかるプロダクトを要求するため数ドル程度の固定費が掛かる
  • 標準的な機能を実装済
  • マネージドサービスを使うためメンテナンス性は高い(はず)

GoToSocial

  • Golangで書かれた実装
  • 数名での使用を前提にしているように見える
    • オンラインサインアップが未実装になっている(adminがアカウントを発行する必要がある)など
  • 非常に軽量
  • 標準的な機能が実装されている

Honk

  • Golangで書かれた実装
  • 非常に軽量
  • 独特の世界観、"あえて実装しない"機能があるらしい


→ GoToSocialを選択。

インフラ

以下の構成でデプロイした。特に変わった点はない。

  • Compute Engine e2-micro
  • nginx
  • certbot
  • gotosocial
  • Litestream
    • ストレージはCloud Storageを使用

収容人数は最大でも数名の予定なのでRDBSQLiteで十分と判断。LitestreamでCloud Storageへレプリケーションして最低限の冗長性を確保する。手癖でnginxを前段に置いてcertbotで証明書を取るようにしたけど、GoToSocialは組み込みの証明書取得機能があるのでそれを使ったほうが楽そう。


良かったらフォローしてみて下さい。
2023/10/21追記: Pleromaに移行しました↓
tl1.yumenosora.net