Mastodonインストールバトルに勝利した
今なら一からドキュメント見ながらやればいけるやろと唐突に始めました。
できあがったのがこちら
どうせならとGlitch Edition1の方で構築しました。
構築手順は本家と同じだよの一言で済ませていました。
glitch-soc is based on Mastodon’s main branch. The installation steps are thus the same as described in the Mastodon documentation.
実際にここを見ながらでできました。
鯖すぺっく
VPS | ConoHa V3 |
---|---|
CPU | 3core |
RAM | 2GB |
OS | Ubuntu 22.04 LTS |
RAM 1GBは心許ないと思ったのでその上くらいのを。
実際にXserve SNSでホスティングしてもらったもので戦慄していたのもありましたね。
ハマりどころさん
実際にコピペしながらで順当に進められました。証明書周りは前回の記事同様の方法で行いましたが。.env.production
の設定も、
RAILS_ENV=production bin/rails mastodon:setup
にて対話式でちょうどいい感じに設定ができたのですが、ラストのassets:precompile
で以下のエラーでコケました。
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
ここさえ突破できれば後はといったところだったのですが……。
なんとなくメモリが不足していると言われてるなと思ったのでswap
を確認しましたが、既に2GBほど追加で設定済みであり特に不足してる感はなく……。
念のため、更に4GB分追加して再度試みましたが、同様のエラーが発生し……。
ヒープ領域というのがあるらしい
上記のERRORメッセージでそのまま検索かけたところ、ヒープ内領域が不足してると出るとの知見が。
最初からちゃんと検索していれば……。大事ですねこういうの。
デフォルトのヒープサイズは下記のコマンドで確認できました。
node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))'
確認したところ1007
とでました。微妙に1GBに届かない値っすね……。
こちらの値とりあえず2倍程度に設定してリトライ。変更は下記のコマンドで行うようです。
export NODE_OPTIONS="--max-old-space-size=値"
2048で実施。なぜかその後値を確認すると2070と微妙に増えていましたが、変更できていました。
この状態で再度assets:precompile
をリトライ。
RAILS_ENV=production bundle exec rails assets:precompile
を実行し、無事に通ったのを確認。残りはNginx
の設定を済ませ、Deamon
化後にStartして完了です。
無事設定したドメインでアクセスして動いているのを確認。作成しておいたOwner
ロールつきの垢でログインしてヨシ。👈
Cloudflare R2
ちなみに、せっかくなのでオブジェクトストレージも設定しておきました。.env.production
に設定を記載します。
Cloudflare側もMastodonでの使用を想定してるのか公式のガイドが存在しました。ありがたや。
実際に記載する内容はここを見ながらですね。
今回は珍しく一発で成功し、アップロードした画像がちゃんと作成したバケットに入っていました。画像のURLも設定したドメインになっているのも確認。
完走した感想
唐突に始めるも面倒ではあり、思わぬトラブルもありましたが、意外とやれるものですね。
Mastodonの存在を知った頃2にチャレンジしたこともありましたが、何もわからん状態で某VPSのスタートアップスクリプトで済ませてた頃に比べると成長を感じます。
その鯖は1か月ちょいくらいでいつしかのアプデで失敗して爆破したという哀しき過去───。
せっかく上手く構築できたのだし、今後も使うかどうかはともかく前よりかはもうちょっと存続させたいっすね。