ということで、過去三回にわたって長々と書いてきた mastodon を FreeBSD の Jail で動かす件のまとめ。
当初の予想通り、RoR と node が動けば、下回りのOSは別に問題じゃなく FreeBSD でも動きます。
jailにしたって、PostgreSQLを動かすのに、ちょっとだけ手間はかかりますが、それ以外は何も問題なく入ります。
qjail でインスタンス作成して、 archive しておいて、それをベースに個別のmastodonインスタンスを作成するということも簡単にできます。
まあ、こんなことやろうとする人はそんなにいないと思いますが。
ということで、いくつかはまった点などなど。
その1)なぞの502連発事件。
これは、何も考えずに pkg から ruby を入れていたら2.3がインストールされて、なぜか2.3だと時々エラーが出て動かない。
というエラーでしたが、これは ruby を rbenv+ruby build から入れることにして、2.4.1にしたら消えました。
その2)DNS動かない事件。
これは直接 mastodon とは関係ないのですが、NSD でネームサーバを立てているのですが、
そこで zone ファイルを編集していてあるときからきちんと読み込みをしてくれなくなってはまりました。
原因はシリアルの範囲が 32bit 符号なしの範囲を超えてたからで、適当にシリアル増やしていってたからでした。
その3)minio 動かない事件
これは3つあって、最初は minio の設定がわからなくてちょっとはまりました。が、なんとか解決。
二つ目は minio の backet の設定で、読み取りを許可していなかったため、書き込みはできたけど画像が出ないという問題でした。
これも読み取り許可を追加して解決。
最後は minio のサーバを外から見えるようにする問題でした。この辺はなんかいろいろ試行錯誤して解決。
SSLを解決するために一番手前の nginx でやっつけてあげるというのに気が付くまで、minio のサーバも外から見えるように設定していました。
また、当初はストレージを分けていなくて、あとから minio を追加しました。後から追加は面倒と聞いていたのですが、 minio-client で mirror してあげれば問題なく移行できました。
その4)puma 謎の暴走
これは未解決ですが、運用でカバー。
jailのホストがFreeBSD 10.3のときにはなぜか多発したのですが、11.0の別のマシンに構築したら出なくなりました。
何が原因かは不明。
その5)streaming が流れない。
この問題が解決できなくて、第三回目の記事が遅れました。
原因は Content-Security-Policy の設定のところでしたが、これ、最初に導入した際のProduction-guideでは設定をしておらず、11.0Rに移行した際には追加になっていたため、新しいサーバではpumaの暴走は止まったが、ストリームが流れてこないという問題にはまりました。
最終的には Firefox の開発ツールのデバッガを見てエラーが出ていたので気が付いたのですが、まさか nginx の設定だとは思わず、気が付くまでに時間がかかってしまいました。
未解決)node で動いているプログラムの安全な止め方。
とりあえず、kill `cat $pid` してますけど、本当にこれでいいのでしょうか?
ということで、おひとりさまインスタンスでフォロアーも二ケタ程度であれば、DDNSな自宅サーバでも運用はできそうです。
でも二万も三万もいるようなインスタンスの管理はやりたくないなーw
Ruby On Rails のサーバを立てるのは初めてだったので、いろいろ分からないことが多くて、また、FreeBSD の rc ファイルをまともに書いたことがなかったので、いろいろと勉強になりました。
最近の Webプログラムの傾向もちょっと掴めたし、いろいろ知識をアップデートできたのはとてもよかったです。
という感じのまとめで。
この一連の mastodon の記事に関する質問、感想などは https://mstdn.mousou.org/@takemon あてにいただけるとわかる限りのことは返信しますのでよろしくお願いします。