CentOS
mastodon

Mastodonアップデート手順(基本)・非Docker版

More than 1 year has passed since last update.

前提条件

  • 非Docker
  • Mastodonは、公式の手順で構築済みであること。

制限事項

  • 本手順は、CentOS 7 にて使用したものである。

特記事項

  • アップデート作業後、CSS・画像ファイル等にアクセスが出来なくなった場合(403)は、Nginxの実行ユーザを「mastodon」に切り替えることで対応可能

手順

(重要)まず、公式のリリースノートを読み、手順を確認する。
https://github.com/tootsuite/mastodon/releases

以下に示す手順を鵜呑みにせず、公式の手順通り行うこと。

だいたい共通しているものを下に示す。

  1. Mastodonのサービス3点セットを止める
  2. データベースのバックアップを取る
  3. Mastodon専用ユーザに切り替える
  4. タグ一覧から任意のバージョンに上げる
  5. 依存パッケージのインストールを行う
  6. データベースマイグレートを行う(変更なしの場合は空振りするのでOK)
  7. アセットのプリコンパイルを行う
  8. Mastodonのサービス3点セットを動かす

Mastodon3点セットを止めて、mastodonユーザになる

sudo systemctl stop mastodon-{web,sidekiq,streaming}

sudo su - mastodon

データベースバックアップ

# DBが同一ホストで動いている場合
pg_dump --username=pgsql_user --no-owner pgsql_database > prefix.`date +%Y%m%d_%H%M%S`.pgdump

# DBのホストが違う場合(必要ならパスワードを聞いてくる)
pg_dump --host=10.1.1.20 --username=pgsql_user --no-owner pgsql_database > prefix.`date +%Y%m%d_%H%M%S`.pgdump

パブリックディレクトリバックアップ
(場合によっては巨大になるので注意)

# 先に、どのくらいのサイズ感か確認しておく
du -h -d 1 live/

# バックアップ(gzipかけても圧縮率80%程度な感じ)
tar -czf  public.`date +%Y%m%d_%H%M%S`.tar.gz live/public

Gitでタグ指定アップデート

cd live/
git fetch

git tag

git checkout vX.X.X

bundle install
yarn install

# 他に必要な手順があればここで行う(前)

RAILS_ENV=production bundle exec rails db:migrate
RAILS_ENV=production bundle exec rails assets:precompile

# 他に必要な手順があればここで行う(後)

exit

sudo systemctl start mastodon-{web,sidekiq,streaming}

あとがき

  • 自分用にメモした手順です。必要に応じて読み替えてください。
  • ここ、こうしたほうがいいよ的なアドバイスを頂けると大変助かります。

以上