Mastodon のインスタンスをたてた

昔も作った気がするけど、Mastodonインスタンスを立てました。

https://social.ikata.co/

single user mode なのでいわゆるおひとりさま仕様となっております。

セットアップ

昔はDockerで立ち上げるのが流行ってた気がしますが、今回は Production guide に従ってDockerコンテナではなくKVM仮想マシン上にRailsインスタンスを立てることにしました。 Ubuntu bionic 推奨のようですが、 xenial でも大丈夫でした。

DockerじゃなくてもRailsアプリの開発・デプロイ経験があれば、結構すんなりセットアップできると思います。

静的コンテンツが 404 Not Found になる

今回はフロントエンド用のWebサーバはMastodonサーバとは別のサーバを使いました。しかしMasotodonのデフォルト構成では静的コンテンツは Puma ではなくローカルのNginxやApache等のWebサーバが配信することを期待しているため、うまくCSSやJavaScriptが読み込めないという問題が発生します。

~/live/.env.production に以下を追加しておけば、静的コンテンツの配信も Puma にやらせることができます。

RAILS_SERVE_STATIC_FILES=true

これで静的コンテンツも正しく出るようになりました。

パフォーマンス的にはNginx/Apacheにやらせたほうがいいんでしょうが、おひとりさまインスタンスならこんなもんでいいんじゃないでしょうかね。

social