環偶記

環の偶に書く記録

いっそ0円おひとりさま鯖でFediverse始めてみませんか

☆この記事はFediverse (2) Advent Calendar 2022の11日目の記事です。 今年で3年目!
去年の記事 一昨年の記事

adventar.org

v3.tamx.tk

 

 今回は何の話をするのかというと、0円Fediverse生活です。私はこの道のプロで(サーバは2回消し飛ばした)、この生活は形を変えながらも5年目に突入しています。サーバ構築に詳しい人、ではなく技術も無くていきなりそこにお金をベットする勇気もない…けどちょっと自鯖構築に興味がある人に向けて書きました。他の方の鯖構築の一歩になればと思います。

はじめに

 時は2022年11月…

 世間ではイーロン・マスク氏がTwitterを買収し、変わっていくTwitterの余波をFediverseが一身に受けていた頃…

 Fediverseでは「Twitter Blue (月8ドル)に課金コンテンツだ何だって言うけどこちとら金払ってSNSしてるんだぞ!」という言説をちょくちょく見かけるようになりました。

 確かにサーバを建てるのにも基本お金が必要で、中~大規模サーバだとかなりのお金が必要になってしまいます。例えばベスフレ(best-friends.chat) では収支を公開しており、2022年6月のサーバコストは502.18ドルだったそうです。

費用状況

6月のサーバーコストは結果的に $502.18 で着地しました。最近は微増減という感じで、すっかり安定した風なのですが、

https://www.patreon.com/posts/69949161 より

 何故こんな話をしたかというと、このMastodonブームで特定のサーバに新人が集中し500エラーを吐き続けるような状況は分散を是とするFediverseにおいて好ましくない状況と考えられ、一方でこのようなサーバには金がかかるという言説が新人の鯖立てにネガティブな印象を与えてしまっているのではないかと考えました。新人がFediverseの概念を秒で理解して即鯖立てするわけ無いだろ!と言うのは一旦置いといてくれ

 そこで、この4年ほど形を変えながらもほぼ無料に近いかたちでおひとりさま鯖を運営している自分がノウハウ?を紹介していきたいと思います。これを見てみんなも鯖を立ててくださいね。

 

必要なもの

 Fediverse3分クッキングの時間です。

ドメイン

・サーバ

…以上!

 

ドメインを確保する

 mstdn.jpやfedibird.comなどサーバにはドメインが必須です。当たり前ですね。ですがドメインは年数千円と高く(?????)、いきなり購入するのを躊躇する方もいるはず、ということで紹介するのがこちらのFreenomの無料ドメイン

(※かなり問題の多いサービスです。完全無料はここしかないというメリットを差し引いても有料のドメインを用意したほうがいいと経験者は伝えておきます)

www.freenom.com

 tk・ml・ga・cf・gqドメインが12ヶ月まで無料で利用できます。その後も期限が切れる2週間前までに再度申請することでまた12ヶ月延長させることが出来ます。およそ一般的な機能は一通り使えて(多分)、WHOISも代行してくれます。freenomに登録して取りたいドメインを検索、購入することで簡単に使用可能です。

 ドメインとったらcloudflareに登録でもしておきましょうね。

 再度申し上げますがおすすめはしません。せっかくなのでまっとうなところでまっとうなドメインを買ったほうがマシです。

参考

tamax31.hatenablog.com

 

② サーバ

 今回はGoogle Cloud Platformを紹介します。登録すると(クレジットカード必須)、3ヶ月限定で使用可能な300ドルのクーポンがもらえます。その間はなにやっても費用はクーポンから差っ引かれるのでお金はかかりません。一方で3ヶ月後も一部機能に関しては条件を満たせば無料で使用可能になっています。

 GCPのサーバサービスであるComputing Engine (GCE) ではlinux仮想マシンが使用可能であるためこれを使ってFediverse用サーバを建ててみましょう。無料で使用可能なのは以下の条件です。

・e2-micro (古いサイトではf1-microと書かれていますが今は使用できません)

 vCPU 0.25 x 2コア メモリ 1GB

・30 GBのストレージ

・us-west1 またはus-east1またはus-central1リージョン(ゾーンはどこでも)

・プレミアムネットワーク階層

・1GB以内の通信(中豪は除く)

cloud.google.com

 この条件の気にしておく点は1GB以内の通信で、Fediverseゆえ普通に1GBを超えるのと中国やオーストラリアから通信が来ることから多少の課金が発生します。私の体験では50円を超えたことはありません。

 登録及びサーバへのつなぎ方に関しては探せばいくらでもあるので頑張って探してください。参考貼っときます。

sava.cloud

 固定IPアドレスを取得できたらcloudflareに登録しておきましょう。

 これで少なくとも相当お金がかかりそうな2点に関しては実質無料となりました。ではサーバを建てていきましょう。

 

Mastodon?Misskey?Pleroma?

 さてFediverse対応アプリはマストドンだけではなく、ミスキーやプレロマを始めとして多数存在しています。ではどれを選べばいいのでしょうか。

 少なくともこの最小構成でマストドンは相当厳しいでしょう。建てたことはないですがこのスペックでは六に動かないことが想像に難くありません。

 では(建てたことのある)PleromaとMisskeyについて解説していきます。

① Pleroma

git.pleroma.social

 Elixir (Erlang) で動いているアプリケーションです。Mastodonとの互換があり、最新バージョンはMastodon v2.7.2との互換でAPIも使用可能です(極稀に弾かれるんですが…)。最大の特徴が超軽量で動くことで、この最小構成で動かすならまっさきに選択肢に上がります。

 どんなもん?見たこと無いな?と思った方は以下のサイトを見てみましょう。のえるさんが建てたのえろまです。

pleroma.noellabo.jp

 UIがMastodonと異なりますが、実はMastodonライクなフロントエンドもあります。その他のMastodonにはない特徴として、絵文字リアクションに対応している点があり、デフォルト絵文字が送信可能で(カスタム絵文字は選択不可)、カスタム絵文字リアクションが受信可能です。Masto-FEではリアクションは見れなくていつもの通知音がなるだけなのですが。

 昔はソースコードからのインストールしかありませんでしが、ElixirのOTPを用いたOTPインストールが推奨されているのでそちらを試すといいでしょう。

 

 また、PleromaのフォークであるAkkomaもあるのでそちらも検討に入れるといいかもしれません。

akkoma.dev

 

② Misskey

 syuiloさんによってつくられたアプリケーションです。MastodonとはAPIから何から何まで違うのでぜひとも適当に開放されてる鯖に登録して様子くらいは見てもいいかもしれません。

misskey-hub.net

 e2-microで動かす最大の注意点として、メモリが足りません。2GBは必要です。特にクリティカルなのがビルド中で、Node.jsがJavaScript heap out of memoryを吐いて止まります。しかし構成をe2-smallにすることでビルドが通るので無理やりなんとかしましょう。起動時もかなり限界なのでスワップして運用しています。

 

これでサーバが建てられましたね!おひとりさまとして連合に飛び込みましょう!

 

問題点

 問題点だらけですよ

ドメイン

 まずこの手の無料ドメインは信頼されないことが多いです。まさかFediverseにActivityPubでつながる詐欺サイトはないかと思いますが、一般的にがPleromaだからセーフと思ってくれるわけではなく定期的にCDNからブロックされます。朝起きたらサーバは動いてるのにサイトにつながらないんだぜ…?あとその他無料ドメイン周りでひどい目にあったのでそれをまとめた記事をぜひ読んでみてくださいね(姑息な宣伝)

tamax31.hatenablog.com

②サーバスペック

 限界です。あまりにも足りていません。私のv2鯖の死因が確実にスペック不足でした。スペック側に関してはe2-smallやe2-mediumに一時的にでも上げることで解決しますが、ストレージに関しては30GBで作ってしまうと固定になるのでどうしようもできません。

 そしてここらへんについて真面目に考え出すと、GCPより安いやつあるよなあ…友思ったりします。

③フォロー

 これはおひとりさば鯖の問題ですけど、ローカルも連合も機能しないので、知り合いなしで始めるのはだいぶきついと思います。

 こういうやつへの対策として、連合リレーがあります。有名所だとYUKIMOCHI Toot Relat Serviceとかありますよね。

relay.toot.yukimochi.jp

 低スペサーバの都合上この連合リレーに耐えられるかわかりません。報告待ってます。

 

まとめ

 今回はほぼ無料でおひとりさま鯖を持つ方法について紹介しました。ただこれを維持するのは相当面倒で、ありとあらゆるものが足りない中で自分の責任で維持し続ける必要があります。本文ではほぼ無視したのですが、トラブルが発生したときにログから何が起きたかを理解して適切な対応をする必要が当然ありますよね。素人である私は定期的に失敗しましたが元気に3回目の運営を行っています。ですのでみなさんも是非無料なり何なりをきっかけに鯖を立ててみてくださいね!

 

参考サイト

PleromaをGCE Allways Freeで使いたい。 · GitHub

 まめもさんの記事 俺にとっては全ての元凶 ただしだいぶ古くなってきたのでインストール周りは公式ドキュメントをよく読んで下さい。

Pleromaの入れ方 - Pleroma Documentation

 Pleroma公式ドキュメント 公式で日本語訳がありますがまあわからないところは原文を読みましょう

Dockerを使ったMisskey構築 | Misskey Hub

 Misskeyの構築法 公式ですね 当たり前ですけどnginx入れないとURL打ち込んでもエラー返されますよ

Nginxの設定 | Misskey Hub

 

無料CDNサービスCloudflareの登録方法。無料で転送量の負荷分散。

Cloudflareを使ってウェブサイトを無料でHTTPS化してみた | DevelopersIO

cloudflareまわり

Debian 11 Bullseye : SSL 証明書を取得する (Let's Encrypt) : Server World

lets encryptの導入

 

 

編集後記

 11月に、たまき鯖V2(TamromaV2) が消滅しました。なので本来は、鯖死んじゃった!w反省してま~す!wしばらく実家 (mstdn.jp) でおとなしくしてま~す!wみたいな経緯をまとめた文章をアドベントカレンダー用に準備してたのですが、書いてる途中で新鯖(たまき鯖V3)を建ててしまったため、なんか自分の中で有耶無耶になりました。多分年明けに出すかアドカレ余ってたらそこに埋め込む予定です。

 あとみんなフォローしてね❤お一人様って結構寂しいんです❤

おまけ

 アドベントカレンダーなのでカスタム絵文字のプレゼントです。いらない 是非個人鯖を立てた暁にはカスタム絵文字に設定してあげてください。