こんにちは。

何日か前にここLemmy鯖を建てたのですが(ここ)、その際とその後の稼働時にはまったところがいくつかあったため、記録しようと思います。

(人によってはこんなとこはまらんだろ…ってところもあるかもしれませんが)

ansibleで最初構築しようとしたらうまくいかなかった

言い訳すると公式ドキュメントにはAnsibleでの構築を推奨ってあったんですよね…。

We recommend using Ansible, because it simplifies the installation and also makes updating easier.

どうもLemmy自体の更新にドキュメント更新が追い付いていないようで、上記部分以外にも古い内容がいくつかあったようです。

ここについては今現在(2023/3/2)ではAnsibleでの構築が非推奨のようなので注意が必要です。

nginxをDockerで一緒に動かそうとしたらうまくいかなかった

こちらは原因が未だによく分かってないです。

この鯖を建てようとしたときは0.17.1が最新だったため、こちらのdocker-compose.ymlを参考に最初は建てようとしたのですが、どうにもうまくいきませんでした。

参考:https://github.com/LemmyNet/lemmy/blob/0.17.1/docker/prod/docker-compose.yml

現在動いている鯖は結局、nginxはDocker外に出し動かしています。

この時のdocker-compose.ymlは0.16の頃のものを参考にしました。

参考:https://github.com/LemmyNet/lemmy/blob/0.16.7/docker/prod/docker-compose.yml

同様に上記を参考にする場合は、lemmy-uiの環境変数が0.17.0で変更されているため、気を付けましょう(一敗)

参考:https://github.com/LemmyNet/lemmy/blob/main/RELEASES.md#lemmy-v0170-release-2023-01-31

Mastodonからここのコミュニティが認識されない他

上記問題を解決し、うわーやっとちゃんと建った!と思ったら、MastodonからURLで検索してもここの鯖のコミュニティが出てきていませんでした。

ここは何日か詰まったのですが、最終的に下記issueを参考にnginxの設定を変更したら解決しました。

参考:https://github.com/LemmyNet/lemmy/issues/1909

下記ビフォーアフターです。

before

if ($http_accept = "application/activity+json") {
    set $proxpass "http://0.0.0.0:8536";
}
if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") {
    set $proxpass "http://0.0.0.0:8536";
}

after

if ($http_accept ~ "^application/.*$") {
    set $proxpass "http://0.0.0.0:8536";
}

おそらくMastodonからのアクセス時にbeforeの方だとバックエンドの方のアクセスにならず、それが原因で認識しなかったのではないかと予想しています。(ちゃんと調べてはいない)

おわりに

そんなこんなで何とか動かしているここLemmy鯖ですが、この度0.17.2にアップデートもし、Mastodon連携等色々やれることも増えて中々楽しませていただいています。

その内、テーマも作成してかえられたらなぁと考えています。 いつになるかはわかりませんが…。

以上、読んでいただきありがとうございました。