[2018-07-24-2]のスパム対策もあり、久しぶりに janogdon をバージョンアップ。
2.0に上げてから、放置しすぎてたせいで、いろいろとハマった。
Mastodonは一気にバージョンを上げてもわりと大丈夫な作りになってる感じだけど、
ちょっとずつ上げるほうが安全な気がしたので、
2.0 → 2.1 → 2.2 → 2.3 → 2.4 → 2.4.3
という順番で上げていく。
ただ、このやり方ではうまくいかなくて、正しくは
2.4 → 2.4.1 → 2.4.3
のように、2.4.1 を間に挟むのが正解だった模様。
janogdonはDockerを使わずにインストールしてるんだけど、
Rubyのバージョンアップとかが意外と面倒なので、
Dockerを使うほうが楽だったかなあ、とは思う。
作業前にデータのバックアップ。
ディレクトリ丸ごととデータベースをバックアップ。
sudo su - mastodon cp -rp live live.20180725 pg_dump mastodon > pg-dump-mastodon-20180725
ファイルシステムが残り少なくなってたので、古いバックアップファイルの掃除をしたり。
公式ドキュメント↓を見ながら作業
https://github.com/tootsuite/mastodon/releases/tag/v2.1.0
まずはソースを更新
su - mastodon cd /home/mastodon/live git describe --tags git fetch git stash git checkout v2.1.0
アップデート
bundle install yarn install RAILS_ENV=production bundle exec rails db:migrate RAILS_ENV=production bundle exec rails assets:precompile RAILS_ENV=production bundle exec rails mastodon:maintenance:migrate_photo_preview_cards
root権限で再起動。
sudo systemctl restart mastodon-sidekiq.service mastodon-web.service mastodon-streaming.service redis-server.service nginx.service
2.1にするのはわりと素直にできた。
公式ドキュメント↓を見ながら作業
https://github.com/tootsuite/mastodon/releases/tag/v2.2.0
Ruby 2.5 が必要とのことなので、インストール。
cd /home/mastodon/.rbenv/plugins/ruby-build/ git pull rbenv install 2.5.0 rbenv global 2.5.0 rbenv rehash gem update --system gem update gem install bundler
yarnも変なとこにインストールされるけど、うまく動かないので、これはエイヤで消しちゃう。
これを消しても /usr/local/bin/yarn があれば問題ない。
rm /home/mastodon/.rbenv/shims/yarn
ソースを更新
su - mastodon cd /home/mastodon/live git describe --tags git fetch git stash git checkout v2.2.0
アップデート
bundle install yarn install RAILS_ENV=production bundle exec rails db:migrate RAILS_ENV=production bundle exec rails assets:precompile RAILS_ENV=production bundle exec rails mastodon:maintenance:remove_regeneration_markers
root権限で再起動。
sudo systemctl restart mastodon-sidekiq.service mastodon-web.service mastodon-streaming.service redis-server.service nginx.service
yarn をどう設定するのが正しいのかは謎。
これも公式ドキュメント↓を見ながら作業
https://github.com/tootsuite/mastodon/releases/tag/v2.3.0
Elasticsearchが使えるようになるらしい。
いちおうElasticsearchインストールしてみる。
以下の通りに実行。
https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Elasticsearch-guide.md
sudo apt install openjdk-8-jre-headless sudo apt install apt-transport-https wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list sudo apt update && sudo apt install elasticsearch
メモリを1Gしか積んでないので、jvm.optionsも修正しておく。
sudo vi /etc/elasticsearch/jvm.options
systemctlの設定をして起動。
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service sudo /bin/systemctl start elasticsearch.service sudo /bin/systemctl status elasticsearch.service
ソースを更新。
su - mastodon cd /home/mastodon/live git describe --tags git fetch git stash git checkout v2.3.0
アップデート
bundle install yarn install RAILS_ENV=production bundle exec rails db:migrate RAILS_ENV=production bundle exec rails assets:precompile RAILS_ENV=production bundle exec rails chewy:deploy
Elasticsearchを使うように .env.production を修正
vi /home/mastodon/live/.env.production
root権限で再起動。
sudo systemctl restart mastodon-sidekiq.service mastodon-web.service mastodon-streaming.service redis-server.service nginx.service
なんか Web UI から Elasticsearch がうまく動いてないような感じ。
アプリからは検索できるので、Elasticsearch と API は動いてるのかな。
まあ検索できなくても困ることはないので、後で調べる方向で。
これも公式ドキュメント↓を見ながら作業
https://github.com/tootsuite/mastodon/releases/tag/v2.4.0
Ruby 2.5.1 が必要とのことなので、インストール。
cd /home/mastodon/.rbenv/plugins/ruby-build/ git pull rbenv install 2.5.1 rbenv global 2.5.1 rbenv rehash gem update --system gem update gem install bundler
今回も yarn が変なとこにインストールされるけど、うまく動かないので、エイヤで消しちゃう。
消しても /usr/local/bin/yarn があれば問題ない。
rm /home/mastodon/.rbenv/shims/yarn
ソースを更新。
su - mastodon cd /home/mastodon/live git describe --tags git fetch git stash git checkout v2.4.0
アップデート
bundle install yarn install RAILS_ENV=production bundle exec rails db:migrate RAILS_ENV=production bundle exec rails assets:precompile
root権限で再起動。
sudo systemctl restart mastodon-sidekiq.service mastodon-web.service mastodon-streaming.service redis-server.service nginx.service
これも公式ドキュメント↓を見ながら作業
https://github.com/tootsuite/mastodon/releases/tag/v2.4.3
ソースを更新。
su - mastodon cd /home/mastodon/live git describe --tags git fetch git stash git checkout v2.4.3
アップデート
bundle install yarn install RAILS_ENV=production bundle exec rails db:migrate RAILS_ENV=production bundle exec rails assets:precompile
root権限で再起動。
sudo systemctl restart mastodon-sidekiq.service mastodon-web.service mastodon-streaming.service redis-server.service nginx.service
アップデート完了!!!
と思ったら、なんか変。
管理画面にログインできないし、ローカルタイムラインも流れてこない。
あれれ?
調べてみたら、ネットで同じような症状を見つけた。
https://www.webdb.co.jp/~atsumi/skimemo/index.php?skimemo%20-%20%C6%FC%B5%AD%2F2017-04-20
ただし、v2.4.1以降はv2.4.1の状態に依存しているらしく、2.4.1をまたげない。
つまり、2.4.1以前から2.4.1以降にバージョンアップする場合、
一旦v2.4.1のdb:migrateを実行してから最新版のmigrateを実行する必要がある。
とりあえず、db:migrateだけやり直して
cd /home/mastodon/live git checkout v2.4.1 RAILS_ENV=production bundle exec rails db:migrate git checkout v2.4.3 RAILS_ENV=production bundle exec rails db:migrate
再起動
sudo systemctl restart mastodon-sidekiq.service mastodon-web.service mastodon-streaming.service redis-server.service nginx.service
とりあえず動いたぞ。
モデレーション→メールブラックリストに、mxsrv.mailasrvs.pwを登録。
2日で18個のスパムアカウントが作られてたので、管理画面から停止処理。
ちょっとにぎわっていた janogdon もまた静かになったよ。
janogdonというインスタンスを運用してる。
数日に1回ぐらい適当に誰かが投稿する平和な過疎地だ。
janogdon
https://janogdon.net/
ところが昨日ぐらいから妙なアカウント登録が続いている。
1〜3時間おきぐらいにアカウント登録があって、なんだこりゃ、と思ってたら、スパムを発信しはじめたよ。
調べてみると
- ちゃんとアカウントのメール認証も通っている
- メールアドレスのMXレコードをひいてみると mxsrv.mailasrvs.pw を指している。
- QUALYTYNETWORK という組織が管理しているアドレスからアクセスしている。
- この組織が何の組織か良くわからないけど、複数ASからのアクセスがある↓↓
route: 5.62.158.0/24
descr: QUALYTYNETWORK
origin: AS50896
route: 185.71.2.0/24
descr: QUALYTYNETWORK
origin: AS200557
ホスティング事業者なのか、サーバを乗っとられてるのか?
こんな過疎地にまでスパムを送ってくるのはすごい働き者だとは思うんだけど、こういうスパム業者ってどうにかならないものかしらねえ。
漫画村の広告問題とかもそうだけど、悪質な業者へお金が渡る仕組みをなくすうまい方法はないものかねえ。
調べてみたらブロックする方法はあるみたいね。
mxsrv.mailasrvs.pwのMastodon登録SPAMをブロックする
https://lithium03.info/mastodon/spam_mx.html
バージョンアップすれば良さそうなので後でやっておこう。
ブロックするとまた過疎地になってしまうが。