Skip to content

設定ファイル

Tatsuya Koishi edited this page Jun 6, 2020 · 148 revisions

設置先

以下の順に検索を行っている。どこに置いても良い。
所有者はmulukhiya-toot-proxyの実行ユーザーで、640か600のパーミッションを推奨。

  • /usr/local/etc/mulukhiya-toot-proxy/local.yaml
  • /usr/local/etc/mulukhiya-toot-proxy/local.yml
  • /etc/mulukhiya-toot-proxy/local.yaml
  • /etc/mulukhiya-toot-proxy/local.yml
  • 設置先ディレクトリ/config/local.yaml
  • 設置先ディレクトリ/config/local.yml

サンプル

要素の詳細

以下、YPath表記にて。

appliation.yamlの記述が既定値なので、既定値と同じ設定は書く必要なし。
ここに書かれていない設定項目が、application.yamlには多くある。 それらの設定項目は内部的なもので、予告なくデフォルト値の変更を行うことがあるので、 その点はご承知いただきたい。

基本的な設定

/environment

developmentproduction を。
デフォルトは development なので、本番環境に production を指定する場合のみ要設定。

/controller

コントローラーの名前を指定。mastodonmisskeydolphin
デフォルトはmastodonなので、Mastodonで使用する場合は指定不要。

/handler/*/disable

*のところは、ハンドラのアンダースコア名。
利用しないハンドラtrueに設定。

/agent/test/token

テストやヘルスチェックに使用するアクセストークンを記述。
全てのテストが、このトークンの持ち主の権限で実行される。Mastodonの場合、このアカウントに以下の設定を行っておくこと。

  • トークンに read write follow を付与。
  • モデレータへの昇格

Dolphinの場合は、今のところ SELECT username,token FROM "user" WHERE token IS NOT NULL 等で調べる必要あり。 (調べる方法が他にないか、確認中)

/agent/info/token

お知らせの投稿や、エラーメッセージの通知を行う、ボットアカウントのアクセストークンを記述。
Mastodonの場合、このアカウントに以下の設定を行っておくこと。

  • トークンに write:statuses write:media を付与。

Dolphinの場合は、今のところ SELECT username,token FROM "user" WHERE token IS NOT NULL 等で調べる必要あり。 (調べる方法が他にないか、確認中)

Slack

/slack/hooks/*

例外発生時の通知先。Slackのwebhookと互換性のあるURLを列挙。
ここにモロヘイヤ自身のwebhookを設定することも可能だが、無意味と思われるw

明示的な設定を強く推奨。
モロヘイヤの誤動作は最悪のケースでは「トゥートが行えない」ことにつながり、インスタンスの メンバーが異常をトゥートで報告することすらできなくなると考えられる。
この為、アラートを受け取る手段は極力確保しておくべき。

Discordも可。
その場合は、末尾に /slack を加えることをお忘れなく。

Amazon

/amazon/associate_tag

Amazonのアソシエイトタグをお持ちであれば、それを指定。

/amazon/access_key

Amazonアソシエイトのアクセスキーを指定。

/amazon/secret_key

Amazonアソシエイトのシークレットキーを指定。

/amazon/affiliate

Amazonのアフィリエイトを使用する場合は true を指定。
URLの末尾に /amazon/associate_tag で設定したタグが、 ?tag=hogefuga 形式で追加される。
アフィリエイトを使用しない場合は指定不要。

Twitter

/twitter/consumer/key

Twitter連携機能を使用する場合は、コンシューマキーを指定。

/twitter/consumer/secret

Twitter連携機能を使用する場合は、コンシューマシークレットを指定。

/twitter/status/tags

Twitterむけに付加するハッシュタグを配列で。

Mastodon

/mastodon/url

インスタンスのルートURLを記述。必須。

/mastodon/status/max_length

トゥートの最大文字長。デフォルトは500。 インスタンスを改造し、500より大きな数値にしている場合は要修正。

/mastodon/status/label

「トゥート」を別の文言にしているインスタンスでは、要修正。

/mastodon/search/limit

検索APIの件数上限。デフォルトは40。(Mastodon本来のデフォルトは20

Misskey

/misskey/url

インスタンスのルートURLを記述。必須。

/misskey/status/max_length

ノートの最大文字長。デフォルトは500。 インスタンスの設定と一致させる。

/misskey/status/label

「ノート」を別の文言にしているインスタンスでは、要修正。

Dolphin

/dolphin/url

インスタンスのルートURLを記述。必須。

/dolphin/status/max_length

ノートの最大文字長。デフォルトは500。 インスタンスを改造し、500より大きな数値にしている場合は要修正。

/dolphin/status/label

「ノート」を別の文言にしているインスタンスでは、要修正。

画像リサイズ

/handler/image_resize/pixel

画像長辺ピクセル数の上限。この大きさに合わせてリサイズされる。 デフォルトは1280。これより大きな数字にするには、今のところMastodonの本体改造も必要。

Spotify

/spotify/client_id

SpotifyのClient IDを指定。
Spotify再生のリンクを挿入する為に必要。

/spotify/client_secret

SpotifyのClient Secretを指定。
Spotify再生のリンクを挿入する為に必要。

/spotify/language

デフォルトはja,en-US;q=0.9,en;q=0.8
SpotifyのAPIにリクエストヘッダ Accept-Language として送信される。

iTunes Store / Apple Music

/itunes/country

iTunes Search APIを利用する際のパラメータ。 日本のiTunes Storeを検索対象にするなら、 ja を指定。

/itunes/lang

iTunes Search APIを利用する際のパラメータ。 戻り値の言語を日本語にするなら、 ja_jp を指定。

YouTube

/google/api/key

APIキーを設定。YouTube APIを使用するときに必要。

PostgreSQL

/postgres/dsn

PostgreSQLへの接続情報。一般的なDSN(URL)の書式で。
パスワードが必要な場合は、 postgres://user:password@localhost:5432/dbname 形式で。

ユーザー設定

/user_config/redis/dsn

Redisへの接続情報。ユーザー設定の格納に使用する。一般的なDSN(URL)の書式で。
MastodonのSidekiqが使用するサーバID(通常0)とは別のIDを推奨。

Sidekiq

/sidekiq/redis/dsn

Sidekiqが使用するRedisの接続情報。一般的なDSN(URL)の書式で。
MastodonのSidekiqが使用するサーバID(通常0)とは別のIDを推奨。

/sidekiq/auth/user

SidekiqのダッシュボードにBASIC認証をかける場合のユーザー名。
デフォルトは admin

/sidekiq/auth/password

SidekiqのダッシュボードにBASIC認証をかける場合のパスワード。
平文でもよいが、以下の手順で生成したハッシュを指定すればほんの少しマシなので、こちらを推奨。

ruby -e 'puts "your_password".crypt(`hostname`)'

BASIC認証が不要な場合は空欄 '' にしておく。(この指定がデフォルト)

エージェント

/agent/accts/*

@relayctl@hashtag-relay.dtp-mstdn.jp 等、特別な振る舞いをするエージェントアカウントを列挙する。

タグ付け

/tagging/default_tags/*

デフォルトハッシュタグの配列。各タグは、先頭の#を除いた形で記述。省略可。

/tagging/word/minimum_length

ハッシュタグ化するワードの最短の文字数。デフォルトは3
この設定は生成される辞書には影響を与えず、辞書の中の単語を無視するかどうかの判断に使われる。 よって、この設定値を修正した後に辞書の更新を行う必要はない。

/tagging/attachment_tags/image

画像が添付されているトゥートに加えるハッシュタグの名前。デフォルトは image。 機能そのものを無効にしたい場合はnullを指定。

/tagging/attachment_tags/video

画像が添付されているトゥートに加えるハッシュタグの名前。デフォルトは video。 機能そのものを無効にしたい場合はnullを指定。

/tagging/attachment_tags/audio

音源が添付されているトゥートに加えるハッシュタグの名前。デフォルトは audio。 機能そのものを無効にしたい場合はnullを指定。

/tagging/dictionaries/*/url

ハッシュタグ辞書のURL。複数指定可能。
デフォルトではテスト用の辞書がいくつか登録されている為、公開されている辞書等も参考にして、要修正。

/tagging/dictionaries/*/type

ハッシュタグ辞書URLの型。デフォルトはmulti_field
relativemecabの指定が必要な場合は明示的に指定。

/tagging/dictionaries/*/fields/*

ハッシュタグ辞書URLに対応する要素名の配列。multi_field型の場合は必要。

webhook

/crypt/salt

webhookのURL生成に使われるソルト。
任意の文字列を指定可だが、パスワード同様の厳重な管理を。
デフォルト値は mulukhiya 、ステージング環境では必ずしも設定不要。

暗号

/crypt/password

WebUIのアクセストークンを、ブラウザに保存する際の暗号化(内部的には OpenSSL::Cipher::AES 使用)に使われる。
厳重な管理を。ステージング環境では必ずしも設定不要。

Clone this wiki locally