misskey自鯖の話

これはMisskey Advent Calendar 2020の4日目の記事です。

This is the Article of Misskey Advent Calendar 2020 Day 4.

昨日の記事はこちら


tl;dr

お前は誰

軽く自己紹介、というほど自己紹介することもないのでMisskeyのアカウント貼っておきます。
フォロワー限定投稿ばっかりだからなんも参考にならないけど、、、

一応今年の3月末くらいから自鯖を立てて鯖缶やってます。
最近Twitterばっかやってるけど

本題

自鯖体験記です。こんな記事を読むよりjoinmisskeyとかのドキュメント読んだ方がいいと思うけど参考になれば。
参考になればというより、あ~こんなバカでも自鯖建てて動かせるんだな~っていう風に見てもらえれば。

というか勢いで枠取ったけど書くネタ他になかったから書いてる

構築

場所を用意する

自鯖を建てるぜ!って勢いを持ってる皆様は自宅にサーバー用マシンと固定IPが生えてると思います。生えてるよね?
私の家にはそんなもの微塵も生えてないのでさくらでVPSを借りました。外向きに自宅サーバーとか無茶しかない(主観)

さくらのVPSは512MBから32GBまでいろんなプランがありますが、弊鯖は2Gプランで動いてます。Mastodonとかは1GBで最低限動くらしい。2GBは所謂Mastodon快適プラン。
1GBと2GBは月のお値段がざっくり倍くらい違うのでVPS借りて自鯖構築する人はよく考えて選んだ方がいい。
メトリクス的には1GB以上食ってるっぽいので余裕があってよかったねって感じ。メディアとかも外部に逃がしてないのでストレージもめっちゃ食われてる。

VPS借りたら初期セットアップをします。OS入れたりなんだったり。
さくらのVPSの場合、OSはワンクリックで入れられるので好みに応じて使い慣れたものをどうぞ。
使い慣れたOSはWindowsです!!!っていう俺みたいなLinuxわからんの人は後述するけど参考にするドキュメントと同じやつにすると楽。

構築する

Mastodonの場合はスタートアップスクリプトが用意されてるので、それ使って終わり!みたいなことができるのかもしれないけど、Misskeyにはそんなものはないのでひっこらひっこら温かみのある手作業で構築します。
個人的にMisskeyの一番いいところとしてドキュメントが公式日本語で整備されてるので俺みたいな初心者かつ英語読みたくない人にやさしい。感謝。

正直ドキュメントに書いてあるやり方を全部真似すれば勝手に自鯖が立ってる。立ってた。
強いてやったことを言うならドメインを自分で用意するところと動かなかったときに周りに助けを求めたくらい。
ドメインはNamecheapでもGoogle Domainsでも適当なところで気に入ったものを取ればいいし、Fediverseにいる人類はほぼ例外なく技術わかるマンなので適当に今持ってるアカウントで助けを求めたらどっかしらから助け舟が出てくる。出てきた。
CloudflareのSSL設定をミスると死ぬ。

運用

構築終わったらキミももう一城の主だ!!!!!いやっほう!!!私が神だ!!!

で終わってくれたら苦労しない。
ぶっちゃけ構築は一瞬なので運用のほうが重要。自分で叩き潰すまで一生ついて回るので。

月々の鯖代のお支払い

超重要。鯖缶の一番の仕事とも言える。
鯖代っていくらぐらいかかるの問題、弊鯖の場合はVPS代2000円/月にドメイン更新料が年1回0円ではない程度。
大規模のコミュニティを擁する中大手インスタンスとかだと明らか容量も処理能力も足りないのでもっとお金がかかってるのだと思うけど、おひとり様ならこんなもん。多分もっと安くすることもできる。
ファイルとかを外部に逃がすとその辺の月額料金もかかるので、費用対効果次第で導入したりなんだったり。

鯖のアプデ

Misskeyは現在進行形で開発が進んでいるSNSなので、建てたときそのまんまってわけにもいかない。いや別にアプデしなくても使えはするけど。
とはいえせっかく開発陣がプライベートの時間使ってアプデしてくれてるので使ってみてもいいでしょう。というわけでアプデします。
アプデ方法はgithubのドキュメントにも書いてあるのでその通りに。pullしてinstallしてbuildしてmigrate
書いてないけどsudo systemctl restart misskeyを忘れずに。アプデしたつもりで一生アプデされてないとかいう笑い話ができる。(一敗)

bot作り

アプデするたびにPuTTY開くのはめんどくさいよね。よね?
というわけで弊鯖ではAiBotを採用、改造しててBotにメンション投げると自動でアプデしてくれるようにしてます。
具体的にはアプデ用の.shを書いてそれをメンションに反応させて叩くだけ。ね?簡単でしょ?
もっと具体的な話はめっちゃ長くなるのでいずれ気が向いたら。あんまり良い実装とも思えないし。

ただまれによくアプデ失敗して鯖まるごと死ぬので、温かみのある手作業も悪くはない。(shをちゃんと書けばいいのかもしれないけど)

SSL証明書更新

大した話ではないけど。
前述のドキュメントに従って構築していればSSL証明書はLet’s Encryptで自動で取得されてるはず。
つまり有効期限30日前に自動的に再発行されて完全放置でおっけー!

ってなったら苦労しない。
少なくともうちの環境では定期的に証明書切れで接続できなくなる。何故ならnginxで読み込む証明書が更新されてないので。たぶん。(知らんけど)
sudo systemctl restart nginxとか適当に叩いて更新が必要。restartreloadの違いはよくわかってない。
cronなり手作業なり各自お好きな方法で。

まとめ

鯖管と言えばすごい大層な聞こえがするけども、建てて運用するだけなら大したことはなかったです。
とはいえ大規模なサーバーを24/7で運用するのは非常に大変なので、自分がアカウント持ってるサーバーの管理者には感謝しよう。
あと、しゅいろママを始めとして、開発陣各位にも感謝です。ドキュメント整備等々してくれてる皆さんにも感謝。
俺みたいな一般人が鯖缶気取ってるのも皆様のおかげです。アリガテェ、、、

さて、明日5日目はそのしゅいろママの記事らしいのでこんなクソみたいな記事読んでないでそっち読んだほうが良いですよ。