Misskeyインスタンスの主になってみました。

Misskeyインスタンスの主になってみました。

はじめに

この記事は実装方法ではありません!感想です!

世はメタバース(Metaverse)が流行ってるみたいですが、MisskeyはFediverseです。
いわゆる分散型SNSというもので、有名なところですとMastdonなどが挙げられます。
Misskeyはなんとsyuiloさんという日本の方が開発された分散型SNSです!
しゅいろママに感謝ですね🙇🙇

この度、自宅サーバーにMisskeyインスタンスを実装しました。
これまではmisskey.ioを使っていたのですが、折角自分のサーバーあるし、インスタンス作っちゃおうという理由です。
私の名前は「うすゆき」ですから「みすきー(Misskey)」ならぬ「うすゆきー(Usuyukey)」ができておもしろい!というのも理由ですね笑

インスタンスの立て方は、GitHubからソースコードをダウンロードしてきてaptで色々ソフトインストールしてnodeで動かすだけと言ってしまえばそうなのですが、ハードルはそれなりに高かったです……
というより、そもそもsudoを実行できるサーバーを持ってる人ってそんなにいなくないですか……?

Raspberry Pi 4B で運用しています

初回のビルドはかなり時間を要しましたが、メモリ足りない訳でも無く、安定した動作を見せてくれました。

Raspberry Piはarmなので、他で作ったDockerがうまく動かないなど若干厄介ですが、実装事例を見ながら手動インストールで無事できました!
運用時もメモリをバカ食いすることもなかったです。
極めて優しいMisskeyです。

今回はCloudflareのArgo Tunnelで自宅鯖からお外へ繋ぎました。

個人的に詰まったところ

ymlファイルのホスト名は後で変更しても一部変わらない

Misskeyは動くのに、画像だけ表示されない……なんでだろうって画像のパス見ると、一番最初のビルドで設定していたymlのホスト名で出力されていました。
私の知識不足だったのですが、ymlに書くhost名はlocalhost:3000的なものでなく、misskey.usuyuki.net的な最終的に使うhost名だったのですね。
で、その後ymlのhost名を書き換えてビルドし直しても最初のhost名が残っちゃう感じでした……

やむなく、一旦全消ししてやり直しました……

ufwで設定したポートは同一ネットワークでも適応される←知らなかった…

nodeでのサーバーでport番号3000にしていたのですが、どうもうまくいきません。
普段Windowsでdockerなど使う際にport3000なんてよくやるのですが、なぜ動いてくれないのかと……

原因はufwというRaspberry Piに入れていたポート管理部分でした。
ということで、ufwに3000番ポートを同一ネットワーク内だけなら開放してねって伝えて無事解決です。

自宅サーバーとしての苦労

自宅から自宅サーバーにアクセスすると同一ネットワーク内なので、基本的にはドメイン名でアクセスできません!(hoge.usuyuki.netといった形でなくxx.xxx.xxx.xxxとグローバルIP直打ちの必要があります)

これは厄介なのですが、今回はcloudflareでプロキシ通すことで一般の人と同じようにドメイン名でアクセスできるようにしました。
一安心。

cloudflareとの戦い

といった形でcloudflareは大変便利なのですが、たまに厄介です。

ERROR: ChunkLoadError: Loading chunk 4612 failed

こんなエラーが出てきて、示されている4612.12.103.1.jsにアクセスしようとすると404が出てきてました……

今回はcloudflareのキャッシュしてくれる機能がこの不具合の原因だったみたいで、キャッシュさせないようにしたところ、無事解決しました!

同じ事例が他に見られなくて、解決までに時間を要してしまいました……
「ローカルホストではちゃんと動く」という点でcloudflareが原因ということに気づけた形です。

終わり

村上さんのmisskey.ioの居心地、本当に良かったです。
わざわざ自分で建てなくても、このインスタンスに住んだほうが幸せになれそうです……

逆にインスタンスを自分で立ててみることで大変さを理解できました……よい勉強です……