Misskeyサーバーを建てたはなし

まえがき

「Misskeyサーバー建てたい...!」
https://misskey.zerozaski.tech/

建てた。


※こちらが鯖建ての本編です。具体的な技術の話は ほぼ無く、そこに至るまでの葛藤を書いただけです。それと独り言が多いです。


■■2021年10月までの、サーバーを建てたかった理由

1.Fediverseがめちゃめちゃ好きだった
2.技術的な知見を得たかった

■■鯖建てが停滞した理由

3.「ドメイン取得失敗かな。。。 .techって駄目なのでは。。。研究目的じゃないし。。いや、ある意味研究だけど。。。」というもやもやした思いがあって躊躇した。(ドメイン取り直したらいいじゃんね)
4.「Misskey.ioで充分じゃん!」という気持ちが大きく、やる気が消失した。

■■2021年10月以降の、サーバーを建てたかった理由

5.Misskey.ioの自分のアカウントの情報が約半年分データが巻き戻ってフォロワーが半減してテンションがダダ下がった。
6.この時期以降、Misskey.ioで「フォロー/フォロワー状態がバグる」という現象が多々発生するようになった。

■■最近の、サーバーを建てたかった理由

7.DM機能を利用しているのに、大事なタイミングでサーバーが落ちている事象が度々発生した。


順に詳細解説していきます。

 

1.Fediverseがめちゃめちゃ好きだった

これは特に解説する必要無いですね。コミュニケーションが好きで、人の話を聞くのが好きなので。喋るのも好き。
で、TwitterでUserStreamが廃止になり耐えられなくなり移り住んだ感じですね。


2.技術的な知見を得たかった

一応技術者寄りの人生を歩んでいるので。とはいえ、さほどこちらは積極的な理由じゃないです。スキルのある人にお金を払ってお願いするほうが楽だもんね。俺も昔は自作PCとか作ってたけども今はBTOでパーツだけ指定してお願いするもんね。サービス提供最高。ナレッジとして溜めておきたかった感じです。


3.「ドメイン取得失敗かな。。。 .techって駄目なのでは。。。研究目的じゃないし。。いや、ある意味研究だけど。。。」というもやもやした思いがあって、躊躇した。

これはもう、このままの意味です。Fedi上で.techサーバーあるんだ~と思って気が変わった部分があります。


4.「Misskey.ioで充分じゃん!」という気持ちが大きくなり、やる気が消失した。

いつも助かってます。しゅいろ様村上さんモデレーターの皆さんありがとー!
ioの面々とは年齢差もあるので馴染めるか分からんな~と思っていたところもあったんですが、幸いな事に居づらい空気になった事はまだ無いです。少なくとも俺側からはね。逆に俺はやらかしてるかもしれないけど。気にしいなので。


5.Misskey.ioの自分のアカウントの情報が約半年分(2021/04~2021/10くらい)データが巻き戻ってフォロワーが半減(大体600⇒300くらい)してテンションがダダ下がった。

事故なんて誰にでもあると思ってるので言ってもしょうがない事ですが、俺はこの時期の半年間くらいで結構コミュニケーション取ったり絵を上げたりしてたので、ガチヘコみしました。絵って昔の絵を再掲する気にあんまりなれないんですよね。これは人によるかな。俺の場合は仕事補正無いからなぁ。


6.この時期以降、Misskey.ioで「フォロー/フォロワー状態がバグる」という現象が多々発生するようになった。

これ。これがほんとに凶悪で、多分 対マストドンサーバーonlyだとは思うんですけど、下記の状況になってました。

A.一部のフォロワーが、フォロワー状態になっているが、【フォローされています】と表示されていない
B.一部のフォロワーが、フォロワー状態になっているが、ぜろざきのLTLに表示されていない
C.一部のフォロワーが、フォロワー状態になっていないが、ぜろざきのLTLに表示されている

もう頭の中がごちゃごちゃですね。俺のioのアカウントは今もこの状態になっているはずです。一時期一部のフォロワーさんに俺からリアクションが飛ばない時期があったと思うんですが これが原因ですね。リアクション大好きなのにね。リアルが忙しかったのもあって解決しようとしていませんでした。すみません。フォロワーさんと何度もコミュニケーション取って、ブロ解とリフォロー繰り返したらいつの間にかFF状態復活したパターンはあったんですが、それを全員とやる体力は。。。(その時点でアカウント作り直したら良かったのでは)

7.DM機能を利用しているのに、大事なタイミングでサーバーが落ちている事象が度々発生した。

これもしょうがないと言えばしょうがないんですけど、自分で鯖建てしてたら「でも自分のせいなので」と割り切れるかな、と。


■■どうやって建てたの?

1.
https://blog.noellabo.jp/entry/2019/08/14/8i3RHuZ1wJNDinIn
上記の記事を参考に、Vultr、Cloudflare、ドメイン、周りまでを設定

のえるさんいつもありがとうございます。助かります。カレー画像で貢献させていただきます。またどこかで ちょっと前みたいにFedi四方山話しましょう。
ほんとは(v11次点での記事とはいえ)上記の記事の通りに全部作業して、後述の苦しんだ点の段落で「サーバー建てました!」で完結させるつもりだったんですが、とある理由で頓挫。理由は後で書きます。

2.
https://github.com/joinmisskey/bash-install
のシェルを走らせただけ。Tipsをよく読んで設定の確認や修正と、走らせるubuntu.shの中身は軽く読みましたが。

aqzさんありがとうございます。先人の知恵って感じですね。これ以外の記事なんかも結構読んで参考にさせていただきました。
こちらのシェルが無ければ構築にもっと時間が掛かっていたのは間違いないですし、そんなに時間が無い為おそらく頓挫していたと思います。少なくとも5月中は。


■■鯖建てで苦しんだ点(この段落は「何をしたか?」だけで細かい確認は全然していないです)

・vultrでS3の挙動が なんかすんなり行かなかったけど↓を読んでどれか実行させた(はず)
https://www.vultr.com/ja/docs/how-to-use-s3cmd-with-vultr-object-storage/
(1年以上前に作業したので詳細は記憶に無いです。メモ癖があるので自端末を漁ればどっかに詳細書いてあるかも)

・fallocateのコマンドが通らなかったので、対象をswapfile2とした
別に要らないな~と思ったけど念の為

・英語を全く知らないので、翻訳機能をフル活用した
https://codezine.jp/article/detail/4951
↑こーゆう話もあるので、英語は読めるに越したことはない

・Misskeyのビルドでエラーが発生しまくって、「これどうやってエラー消すんだろ?」で、迷った末にサーバーの中身を何度かクリーンした。

経緯的には、

手順通りにサーバー周りを準備 ⇒ ソースをcloneしてyarn buildして失敗 ⇒ 失敗の原因に合わせてyarn add @types/~して何度か試行錯誤 ⇒ 自端末宛てにprivate repositoryをcloneして、TypeScript+Node.jsでビルドって出来るものなのか試行錯誤 ⇒ MisskeyのソースをWindowsの自機にcloneしてbuild試行錯誤(途中で飽きて止めた) ⇒ なにもかも分からなくなって、同じところまで作業したのにvultr内を2回ほどクリーンに

という感じです。時間にして24時間ほど苦戦した感じです。

ほんで、色々見ているうちにコレ↓にたどり着いて、使わせていただいた って感じです。
https://github.com/joinmisskey/bash-install


https://github.com/joinmisskey/bash-install で unbound variableエラーが発生して、どこが原因なのか判明するのに時間が掛かった。(原因はPostgreSQLのパスワードに"$"を入れた関係で、変数がぶっ壊れたせい)

エラーの原因究明に30分ほど(processのecho表示もあり、エラー時に表示されている文字列が【XXXXXX】と印象的なものだった為、気づきが早かった)


で、これでMisskeyが起動したので利用開始って感じです。

エラー出てても動くのかよ!ソースのビルドエラー、原因なんなんすかね?みんなのとこもそんなもん?

中途半端に文字が読めるのが仇になった気もする。でも内容をちゃんと見てないところも俺の雑さが出てる

。。。まぁ今おひとり様鯖をMisskeyで建てたいのであれば村上さんとかがホスティングサービスしてるみたいですし、そちらを頼るのが無難かと思います。俺は自分で理解したい人だったのでやったけども。
るちかにも「代わりに建てようか?」って言われた(気がする)


■■マストドンサーバーにしなかった理由

■Misskeyのリアクションの強さ。やっぱりリアクションで応対するのが楽しいですよね。うまい距離感というか。個人的には ほんとに刺さった投稿にだけリプライで返すのが楽しい。厳密には「だけ」とは限らないけども。

■なんかあった時にソースに手を入れる事を考えると、rubyよりTypeScriptのほうが良かった。これはもう俺が.NET畑の人間だからですね。あとぶっちゃけrubyが苦手。なんとでも言ってくれ。


■■3週間くらい利用してみての雑感

■今のところ快適。何が発生しても自分のせい。気楽。

■既に1回、サーバーを壊しました。その数時間前にスナップショット取ってて良かった。もうサーバー潰すところだった。サーバーが頻繁に落ちてた理由を雑に解決しようとしてやらかしました。

■知らない事が多すぎる。ちゃんと勉強しないとな。

 

そろそろ「引っ越したのでフォローお願いします」くらいはアナウンスしようかな、と。本拠にするかどうかはちょこっと迷ってたので。


■■今後の予定

■藍ちゃんは載せようかな Misskeyの看板なので。アイコン絵描いてからね。しゅいろ様がon眼鏡は不服という噂を聞いたので眼鏡は描かない。

■みんなに利用してもらう為に解放する? しばらくはしないかな。すーぐ鯖吹っ飛ばしそう。


というわけで、こんな散文をここまで読んでくださり ありがとうございました。
「これはどうだったの?」みたいな深堀りしてほしいリクエストなどあれば言ってくだされば。時間があって面白いものが書けそうだと見込めたら書きます。

 

(2022/06/14追記)

この通りに作業すると、おそらくオブジェクトストレージの設定が不足していて いずれサーバーが動かなくなってしまうので、その旨を追記する。