docker
docker-compose
mastodon
マストドン

Mastodonで他インスタンスの情報が正常に表示されない場合の対処

More than 1 year has passed since last update.


他インスタンスの情報が出ない……

ある日から、他のインスタンスからの情報が正常に表示されなくなっていました。症状としては……


  • リモートフォローのトゥートが出てこない

  • リモートユーザの情報が古い

  • 連合タイムラインが流れない

  • 画像が正常に表示されない

などなど、とにかく寂しい状態のインスタンスになってしまいました。

色々と調べた結果、何とか直すことができたのでメモしておきます。


対処法

mastodon:daily タスクを実行してください。

Dockerを使用している場合は、docker-compose コマンドを利用します。


dailyタスク実行

[root@mstdn001 ~]# cd /usr/share/mastodon

[root@mstdn001 mastodon]# docker-compose run --rm web rails mastodon:daily


恒久対応

上記のコマンドが日時で実行されるようにcronを設定します。


cron登録内容

@daily cd /usr/share/mastodon && docker-compose run --rm web rails mastodon:daily



原因

Mastodonの公式ドキュメント に書かれている内容を見落としていました。


There are several tasks that should be run once a day to ensure that mastodon is running smoothly. As your mastodon user run crontab -e and enter the following

翻訳:マストドンがスムーズに動作するように、1日に1回いくつかのタスク実行が必要です。マストドーンユーザーで「crontab -e」を実行し、次のように入力します…


なお、今回はDockerで構築した環境のため、公式ドキュメントのコマンドを一部書き換えてcronに登録しています。


公式ドキュメントのコマンド

/home/mastodon/.rbenv/shims/bundle exec rake mastodon:daily



今回使用したコマンド

docker-compose run --rm web rails mastodon:daily



結論

公式ドキュメントにはきちんと目を通しましょう。

時間のあるときに、mastodon:daily の処理も読んでみたいと思います。


この処理が必要な理由

---2017/05/01 追記---

Mastodon で使用している PubSubHubbub と呼ばれる仕組みが関係しています。

他インスタンスとの連携は、7日で期限が切れるようになっており、mastodon:daily でその更新処理を行っているとのことでした。

つまり、更新処理を行わないことで(期限が切れて)他インスタンスと連携が取れなくなり、寂しいインスタンスが出来上がってしまうわけですね。

この辺りの仕組みについては、 Mastodon インスタンスのリモートフォローの仕組みと必要な購読更新の設定方法 で詳細に解説されていました。