同人サイトしか作ったことがないIT初心者がMastodonのサーバーを建ててみました
タイトル通りですわ!!!!! わたくしは古の同人サイト全盛期にレンタルサーバーを借り、簡単なHTMLタグを使って推し作品の二次創作個人サイトを作っていたレベルの知識しかございません。キリ番とかおえびとかの時代です。無謀すぎる。
しかしながら……偉大なる開発者様とブログ等に経験や失敗談をまとめておいてくださった鯖缶様たちのおかげで、初心者でもサーバーを建てることができました。ありがとうございます!!
当たり前に大変だったので、如何にして自分のMastodonサーバー(インスタンス)を建てたのか、備忘録として記録しておくことにします。
Misskeyにする? Mastodonにする?
まず、どちらを建てるかめちゃくちゃ迷いました。
Misskey
機能が豊富。アンテナ機能やクリップ機能のほか、絵文字リアクション機能が標準装備されている。
機能が豊富なぶん、Mastodonに比べて維持の負担が大きい。
投稿の公開範囲がパブリック、ホームであれば自由に検索可能。
日本産ソフトウェアなので、公式ページが日本語。
Mastodon
お気に入り(いいね)やブックマークなど、シンプルでX(旧Twitter)に近い機能。
自分がリプライやお気に入りなど反応をした投稿しか検索できない。全文検索を強化するにはElasticSearchという検索エンジンを設置する必要がある。
外国産ソフトウェアなので、公式ページが英語。
他にも色々違いはありますが……運用コストの差や使い心地の好みにより、Mastodonへの気持ちが七割、Misskeyへの未練(主に絵文字リアクション)が三割……みたいなところで唸っていたら、朗報が飛び込んでまいりました。
絵文字リアクションが使えるMastodon、kmyblueのフォークが出た
本家Mastodonはカスタム絵文字を投稿に使うことはできても、絵文字リアクション機能は実装されていません。
ですが、ごく一部に本家Mastodonから派生して開発された絵文字リアクションを使えるMastodonサーバーが存在します。
MastodonにするかMisskeyにするか、唸りながら鯖建ての情報収集をしていたところ、絵文字リアクション対応サーバーのひとつであるKmyblueがフォークとして公開されるという情報が流れてきたのです。
【kmyblueをMastodonフォークとして公開します】
さっそくインストール手順のページを見に行くと、注意事項からインストール後のサポートまで丁寧に記載されています。なんと自動セットアップスクリプトもある! ありがてえ〜! これならできるかもしれん!
……しかし、ガチ初心者の私には分からない単語が多数……! うぶんちゅってなんや!
サーバーを建てた後のメンテナンスやエラーの対処は最低限できないといけない、ということを考えると、やはり知識ゼロはまずいということでLinuxの入門書を読んだり、用語をネットで調べたりしました。
VPSと独自ドメインを用意する
お勉強と同時進行でサーバーを建てるためのVPSと独自ドメインも選びます。
同人サイトでレンタルサーバーを借りたことはありますが、VPSは初。こちらもめちゃくちゃ迷いに迷って、さくらのVPS(4GB)にムームードメインを借りることにしました。
VPSのメモリはkmyblueフォークのインストールの必須RAMが2GB以上だったので、ひとつ上の4GBなら安心かな? という理由で決めました。
独自ドメインの取得はどこの会社で取得するかも迷いましたが、この時点でドメイン名も決めておかなくてはならないので二重に悩みました。なんも考えてなかった!
ドメインの末尾によって料金も違っていて、取得は格安だけど更新は割高、なんてものも。一年以上使う場合は更新の価格もよく確認して選んだ方が良さそうです。
ちなみに、このVPSと独自ドメインの取得でお金がかかりました。
(お金の話は最後にまとめておきます)
Mastodonインストールの前に
VPSを借り、独自ドメインも取得して、いざ! インストール!! ……の前に、いくつかやっておくことがありました。
OSのインストール
さくらのVPSではOSのインストールも簡単にやってもらえるプランだったので、これは特に困らず。Ubuntu22.04をインストールしました。
SSHキーの設定(公開鍵認証)
パスワード認証でSSHに繋げていると、パスワード総当たり攻撃で簡単にサーバーを乗っ取られてしまう危険があります。そのためSSHキー(公開鍵認証)を使うようにして、パスワード認証を禁止する設定に変えます。
ここで一度つっかかったのですが、Tera TermはVer 5.0以前のバージョンだと秘密鍵認証でエラーが出て使えないことがあります……。
Tera TermでSSHキー接続する場合はTera Termのバージョンに注意です。
ファイアウォールとポート設定
22番のポートを開けて、ポート番号を変更。80番と443番も開けて、ファイアウォールを起動。
さくらのVPSにはパケットフィルターがあるので、その設定もしておきました。
この辺の基本のセキュリティ対策はまず最初にやった方がいいです。こんなできたて辺境サーバーでもアタックされたログが残っていてマジびっくりしました。こわ!!!!
メールサーバーの用意
アカウント登録などでメールの送受信が必要になるため、Mastodonサーバーで使うメールを用意します。
【Mastodon構築時等でSMTPのメールをGmailでやりたい】
今回は上記記事を参考にGmailを使って設定しました。
これもMastodonのインストール作業中に必要になるので、事前にアプリパスワードを入手するところまでやっておいた方がスムーズですね。
DNS設定をする
取得した独自ドメインでMastodonサーバーにアクセスできるように、ドメインをVPSに紐付けるDNS設定をしておきます。
ただ……これ、Cloudflareの連携をする場合はCloudflareでDNS設定しないといけないので、
Cloudflareにアカウント作成
ドメインをCloudflareに登録
DNS設定する
……という手順が必要になります。
オブジェクトストレージを用意する
オブジェクトストレージを利用する場合、Mastodonインストール後のセットアップで使用の有無を確認・設定することになるので、事前に用意しておくとスムーズです。
しかしこの設定が初心者の私にはかなり難しく、試行錯誤でした。いくつかオブジェクトストレージを試したもののうまく繋げられず……。
結果的にCloudflareのR2を使うことで何とかなりましたが、ここの設定が一番大変だったかも知れません。
【Use R2 with Mastodon】
Cloudflare R2は公式が設定方法を掲載してくださってます。ここを読むだけでは分からない・うまくいかなかった所もあったので「Mastodon Cloudflare R2」等で検索して見つかった記事もいくつか読みながら頑張りました。
いざ! インストール
下準備も済ませ、今度こそ! インストールです! 時間がかかるのは明白だったので、丸一日自由な休日に行いました。
今回はkmyblueフォークを使いたかったので、初期環境からインストール・セットアップを行います。
【Installation】
自動セットアップスクリプトを使い、インストール手順に沿ってサーバーにMastodonを構築します。
kmyblueフォークには最新の開発版と安定動作のLTS版があり、私はLTS版を選びました。
サーバーが建った!
起動後すぐはエラーが出たりして紆余曲折ありましたが、その後エラーも出なくなり、他のサーバーのアカウントとも繋がれることを確認。
つ、ついに……
ついに建った! 我が城が!!
やったー!! ちゃんと動いてるな!? やったぞー!!
正常動作が確認できた瞬間、素で声が出ました。
かかったお金の話
VPS(4GB) / 7,480円 ※初回料金。月額は3,740円。
独自ドメイン / 1,985円 ※一年分一括払い。
オブジェクトストレージ (R2)/ 無料 ※月10GBまで。超えたら有料。
月額換算だとざっくり4,000円前後でしょうか。これでサーバーに人が増えたりすると、負荷もかかるお金も増えていく、というわけですね。
サーバーを建てた後の感想
この後、データベースのバックアップを自動で保存されるようにしたりちょこちょこ手を入れたりしました。
ここに書くのは流石に長くなりすぎるので、そのうちまた改めて備忘録を書きたいと思います。
自分でサーバーを建てたい! と画策して、実際にサーバーを建てるまではざっくり一か月くらいかかりました。
エラーが出ちゃうと解決するまで手を離せなくなるし、ぬか床のようにマメな管理が必要。
お金も時間もかかる手間を考えると、きちんと運営されていて信頼できるサーバーにお世話になって、運営資金を寄付するのが一番楽でいいのかなという気もします。
……しかし、実際に建ててみて。大変さと同じくらい楽しい! と感じました。CLIで操作するのも楽しいし、おひとりサーバーだからルールも自由。最悪、嫌になったらいつでも閉鎖できる。気楽!
同人的なところだと、例えば推しジャンルやCPでサーバーを建てて、連合するサーバーを同ジャンル・CPのサーバーのみに制限する、なんていうのもアリかもしれませんね。
……以上、初めてのサーバー建て備忘録でした! 有識者の方々には面白みのない話だったかと思いますが、これもまたどこかの誰かの参考になれば幸いです。
追記:その後のメンテナンスなど
サーバーを建てたその後も記事にしてみました。