Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

非エンジニアの俺がMastodonサーバを保守したら2年たって、アップデートのやり方が固まってきたんだがメモ

✩.*˚fediverse advent calendar 11日目の記事だよ

わたくしのMastodonサーバ

ドン・ゴロツキと申します。

  • 全登録者:64人とかそれくらい
  • アクティブ人数/週:40人くらい※ちょっと基準よくわかんない
  • 招待制(adminのみ招待可能)
  • 月3500円くらいの費用
  • 精鋭エンジニアさんにお手伝いいただいて構築した経緯あり(詳細)

☆アップデートのタイミング

  • Master?なにそれ美味しいの
  • 「タグ付き最新版が出たよ~」とMastodon公式さんがトゥートしたら渋々アップデートする
  • とはいえ「一度最新のタグ付きでなくなったら、もう追いかけられなくなって詰む…!!!」という恐怖があるため、割と早めに最新にする傾向がある※私はとてもビビリな性格です

☆アップデート前の確認

  • リリースノートをざっと読む
    • 「よくわからんけど…なんかこう…修正が中心やな…」くらいの雑な解像度
    • 私はDockerを使っていないので、Non-Dockerって書いてあるところはしっかり読んでおく。イレギュラーな作業が入ってるときが結構ある
    • 最新タグ付きのリリースノート(2020/12/12時点)は下記。末尾のver番号を、該当の数字に書き換えればそれでもOK。

https://github.com/tootsuite/mastodon/releases/tag/v3.2.1

  • アップデート方法のおさらい
    • Mastodon公式サイトの、アプデ方法ページをチェックする。たまに変わってるときがある。

アップデート手順(ざっくり)

1.一時swapを上乗せする(アプデの時のみ)

sudo fallocate -l 1G /swap
sudo mkswap /swap
sudo swapon /swap
free -h

止める
sudo swapoff /swap

削除
sudo rm /swap

確認
free -h

2.ポスグレの最新バックアップを作る

  • ポスグレアカウントに入って、バックアップを吐き出す
    sudo su - postgres
    pg_dumpall > 2021021-3.2.1.dumpall

    ※バージョンと日付を書き換えていく

  • ポスグレの古いのを消す
    rm /var/lib/postgresql/2020808-3.2.0.dumpall
    ※これがたまるとサーバ容量を圧迫してくるため毎回消す

    3.アップデートする

  • mastodonアカウントログイン
    sudo su - mastodon
    cd live

  • バージョンチェック(最初のほう)
    cat lib/mastodon/version.rb

  • バージョンアップ本番
    git fetch --tags
    git checkout v3.1.諸々

  • バージョンチェック再度(新しくなっているか)
    cat lib/mastodon/version.rb

4.bundle installする

RAILS_ENV=production bundle install --deployment --without development test
RAILS_ENV=production yarn install

5.migrateする

RAILS_ENV=production bundle exec rails db:migrate

6.precompileする 

RAILS_ENV=production bundle exec rails assets:precompile
※しなくていいときもありそうだけど毎回しちゃっている

7.mastodonを再起動させる

  • mastodonアカウントを抜ける

exit

  • 諸々再起動する

sudo systemctl restart mastodon-sidekiq
sudo systemctl reload mastodon-web

8.本番みて、ソースコードが最新か確認。

その他おぼえがき

①yarnが古いと言われたら

sudo apt install yarn

②Ruby verアップ

$ cd "$(rbenv root)"/plugins/ruby-build && git pull
$ rbenv install 新ばーじょんの番号
例)$ rbenv install 2.6.6.

③マメに更新必須!

sudo apt update
sudo apt upgrade

④勝手 Mastodon tootctl リファレンス は神!!

なにかあったら、くますんさん作成の
勝手 Mastodon tootctl リファレンス
を参考に調べまくりんぐ!

Special Thanks

のえるさん
わんせたくん
まめもさん

squid999
☆文系/ 総務部秘書課づとめ /激烈ノンプログラマ プログラミング全然しない。Google appsだいすき。Google Apps Scriptかじりたい。
https://le-mal-du-pay.goat.me/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away