アップデートに伴う設定変更 - kmycode/mastodon GitHub Wiki

Ver.12以降へのアップデート

行う設定は「データベース設定」「ElasticSearch設定」の2種類があります。

ElasticSearchを使っていない人は後者は不要です

データベースの設定

すべてのサーバーが データベースの設定を更新する必要があります。

ただしバージョン12以降のソースコードを用いて新規にサーバーを建てる方は、初期設定の時にキーが自動生成されますので作業不要です。

設定手順

必ずbin/rails assets:precompileまたはdb:migrateを実行する前にこれを設定してください

Mastodonのルートディレクトリ(/home/mastodon/live)に移動して、以下のコマンドを実行します。

RAILS_ENV=production bin/rails db:encryption:init

すると以下の結果が返されます。

# バージョン12の表示

Add this entry to the credentials of the target environment: 

active_record_encryption:
  primary_key: CCCCCCCCCCCCCCCCCCCCCC
  deterministic_key: AAAAAAAAAAAAAAAAAAAAAA
  key_derivation_salt: BBBBBBBBBBBBBBBBBBBBBB

# バージョン13以降の表示

Add these environment variables to your Mastodon environment: 

ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=AAAAAAAAAAAAAAAAAAAAAA
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=BBBBBBBBBBBBBBBBBBBBBB
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=CCCCCCCCCCCCCCCCCCCCCC

これを.env.productionに追加します。

ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=AAAAAAAAAAAAAAAAAAAAAA
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=BBBBBBBBBBBBBBBBBBBBBB
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=CCCCCCCCCCCCCCCCCCCCCC

動作確認

RAILS_ENV=production bin/rails db:migrate

sudo systemctl start mastodon-web
journalctl -r -u mastodon-web

設定しなかった場合のエラー

設定せずにassets:precompiledb:migratesystemctl start mastodon-webなどを実行しようとした場合、以下のメッセージが出力されます。(※細かいですがdb:encryption:initを実行した時に表示される順番と異なるので注意)

bin/rails aborted!

The ActiveRecord encryption feature requires that these variables are set:

  - ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY
  - ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT
  - ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY

Run `bin/rails db:encryption:init` to generate values and then assign the environment variables.

ElasticSearch設定

バージョン11以前でElasticSearchによる全文検索を設定していた方は、以下を実行してください。詳細:ElasticSearch設定方法

# Sudachiを用いた日本語検索を設定変更なしで継続する場合
ln -s config/elasticsearch.default-ja-sudachi.yml .elasticsearch.yml

# Sudachiを用いた日本語検索を微量の設定変更したうえで継続する場合
cp config/elasticsearch.default-ja-sudachi.yml .elasticsearch.yml

# 本家Mastodonのデフォルト設定をもとに自分でカスタマイズする場合(Kuromoji使用時など)
cp config/elasticsearch.default.yml .elasticsearch.yml

# 本家Mastodonのデフォルト設定をそのまま使用する場合、もしくはElasticSearchを使わない場合
# コマンド実行の必要なし