環境変数
Holloは環境変数を使って設定を行います。
環境変数はプロジェクトの最上位ディレクトリに*.env*ファイルを作成するか、
Dockerの-e/--envオプションを使うか、
Railwayのenvironment variablesメニューから設定できます。
PORT オプション Railwayでは使われない
Section titled “PORT ”サーバーが受信するポート番号。デフォルトは3000です。
BIND オプション Railwayでは使われない
Section titled “BIND ”サーバーが受信するアドレス。有効なIPアドレスまたはlocalhostである必要があります。
DATABASE_URL Railwayでは使われない
Section titled “DATABASE_URL ”PostgreSQLのデータベースのURL。例:postgresql://hollo:password@localhost/hollo
SECRET_KEY Railwayでは使われない
Section titled “SECRET_KEY ”セッションを保護するための秘密鍵。44文字以上である必要があります。 次のコマンドで安全なランダムな秘密鍵を生成できます:
openssl rand -hex 32TZ オプション
Section titled “TZ ”アプリケーションの等時帯(time zone)。
有効な等時帯識別子である必要があります。
例:UTC、America/New_York、Asia/Tokyo。
デフォルトはUTCです。
NODE_TYPE オプション
Section titled “NODE_TYPE ”このプロセスで実行するコンポーネントを制御します。有効な値は:
all(デフォルト):Webサーバー、Fedifyメッセージキュー、 インポートワーカー、クリーンアップワーカー、リモート返信取得ワーカーをすべて実行web:Webサーバー(HTTP API)のみ実行worker:ワーカーのみ実行(Fedifyメッセージキュー + インポートワーカー + クリーンアップワーカー + リモート返信取得ワーカー)
これにより、スケーラビリティを向上させるためにWebサーバーとバックグラウンドワーカーを分離できます。 フォロワーが多い高トラフィックインスタンスを運営する場合、ワーカーを分離することでパフォーマンスが向上します。
デフォルトはallです。
BEHIND_PROXY オプション Railwayでは使われない
Section titled “BEHIND_PROXY ”Holloがリバースプロキシの後ろにある場合はtrueに設定します。
HolloがL7ロードバランサーの後ろにある場合(通常はそうする必要があります)、
このオプションを有効にします。
基本的にはオフになっています。
HANDLE_HOST オプション
Section titled “HANDLE_HOST ”ドメイン分離 WebFinger 設定で使用するフェディバースの
ハンドルドメインです。このオプションを設定すると、フェディバースの
ハンドルは@user@HANDLE_HOSTの形式になりますが、Hollo自体は
WEB_ORIGINで動作します。
WEB_ORIGINと一緒に設定する必要があり、片方だけを設定すると
Holloは起動に失敗します。最初のアカウントを作成する前に
両方の変数を設定してください。連合が始まった後にハンドルドメインを
変更すると、リモートフォロー関係が壊れます。
デフォルトでは設定されていません。
WEB_ORIGIN オプション
Section titled “WEB_ORIGIN ”ドメイン分離 WebFinger 設定でHolloの ActivityPub
サーバーが実際に動作するオリジン(スキーム + ホスト)です。例:
https://ap.example.com。アクターURI、インボックスURLなどの
連合エンドポイントは、すべてこのオリジンを基に構築されます。
HANDLE_HOSTと一緒に設定する必要があり、
片方だけを設定するとHolloは起動に失敗します。
デフォルトでは設定されていません。
ALLOW_PRIVATE_ADDRESS オプション
Section titled “ALLOW_PRIVATE_ADDRESS ”このオプションをtrueに設定すると、サーバーサイドリクエストフォージェリ(SSRF)攻撃の防止を解除します。
ローカルネットワークでテストする場合は、このオプションをオンにする必要がある場合があります。
デフォルトではオフになっています。
HOME_URL オプション
Section titled “HOME_URL ”設定された場合、トップページへにアクセスした時にこのURLにリダイレクトされます。 設定されていない場合、トップページにはアカウント一覧が表示されます。
REMOTE_ACTOR_FETCH_POSTS オプション
Section titled “REMOTE_ACTOR_FETCH_POSTS ”リモートアクターが最初に発見された場合に読み込む最新の公開投稿の数。
デフォルトは10です。
REMOTE_REPLIES_SCRAPE_DEPTH オプション
Section titled “REMOTE_REPLIES_SCRAPE_DEPTH ”バックグラウンドワーカージョブで取得するリモート返信の階層数。
0に設定すると、リモート返信の取得を無効にします。
デフォルトは2です。
REMOTE_REPLIES_SCRAPE_MAX_ITEMS オプション
Section titled “REMOTE_REPLIES_SCRAPE_MAX_ITEMS ”1つのリモート返信取得ジョブから保存する返信アイテムの最大数。
デフォルトは100です。
REMOTE_REPLIES_SCRAPE_INTERVAL_SECONDS オプション
Section titled “REMOTE_REPLIES_SCRAPE_INTERVAL_SECONDS ”同じoriginへのリモート返信取得リクエスト間の最小待機秒数。
デフォルトは5です。
REMOTE_REPLIES_SCRAPE_BACKOFF_SECONDS オプション
Section titled “REMOTE_REPLIES_SCRAPE_BACKOFF_SECONDS ”リモートサーバーがRetry-Afterを返さずHTTP 429を返した場合に、
リモート返信取得ジョブを再試行するまでの待機秒数。
デフォルトは300です。
REMOTE_REPLIES_SCRAPE_COOLDOWN_SECONDS オプション
Section titled “REMOTE_REPLIES_SCRAPE_COOLDOWN_SECONDS ”完了したリモート返信取得ジョブが同じ返信コレクションの重複ジョブを 抑制する時間。
デフォルトは300です。
MEDIA_PROXY オプション
Section titled “MEDIA_PROXY ”リモートサーバー上のメディア(アバター、ヘッダー、添付メディア、 カスタム絵文字、プレビューカードの画像)をHolloがクライアントに対して どう配信するかを制御します。指定可能な値:
off(デフォルト):MastodonクライアントAPIとウェブUIは リモートのURLをそのままクライアントに渡します。これまでと同じ 動作です。proxy:すべてのリモートメディアURLを署名付きの/proxy/<sig>/<b64url>パスに書き換えます。Holloはリクエストごとに アップストリームのバイト列をストリーミングして応答し、ディスクには 書き込みません。クライアントからはHolloのオリジンしか見えないため、 リモートサーバーのCORS設定の影響を受けず、訪問者のIPアドレスも 外部に漏れません。cache:URLの書き換えはproxyと同じですが、ストリーミングした 本文を設定済みのストレージバックエンドのproxy/<sha256>.binに 保存し、Content-Type情報を持つサイドカーをproxy/<sha256>.jsonに 一緒に保存します。以降のリクエストはアップストリームを再取得 しません。ローカルアカウントと承認済みのフォロー関係がある リモートactorのアバターも、actorが保存または更新されるときに このキャッシュへ事前取得されます。管理ダッシュボードの /thumbnail_cleanup から必要に応じてキャッシュを消去できます。
真偽値の同義語としてtrue / on / 1はproxyの別名、
false / off / 0はoffの別名として受け付けます。ディスク
キャッシュはcacheで明示的に有効化する必要があります。
proxyとcacheモードでは、HolloはHTTP(S)以外のスキームをプロキシ
しません。アップストリームのURLとすべてのリダイレクト先に対してSSRF
チェックを行い、本文は32 MiBに制限し、image/svg+xmlはHolloのオリジン
上で実行され得るインラインスクリプトを含むため一切プロキシしません。
デフォルトはoffです。
REMOTE_MEDIA_THUMBNAILS オプション
Section titled “REMOTE_MEDIA_THUMBNAILS ”投稿を取り込む際に、Holloがリモートの添付メディアをダウンロードして
ローカルのWebPサムネイルを生成するかを制御します。値はon / true /
1(これまでの動作)またはoff / false / 0です。
offに設定すると、Holloは受信した添付に対してアップストリームの取得
とSharpパイプラインを完全にスキップし、リモートURLをそのまま
サムネイルURLとして保存します。MEDIA_PROXY=proxyまたはcacheと
組み合わせれば、クライアントはレンダリング時に依然として同一オリジンの
URLを受け取り、MEDIA_PROXY=offの場合はアップストリームのURLを直接
受け取ります。多数のメディア投稿を取り込むインスタンスでは、大量の
ディスク容量を節約できます。
デフォルトはonです。
REMOTE_ACTOR_STALENESS_DAYS オプション
Section titled “REMOTE_ACTOR_STALENESS_DAYS ”リモートアクターのキャッシュされたデータが古いと見なされるまでの日数。 アクティビティ処理中(例:ブーストや新しい投稿の受信時)に古いアクターに遭遇すると、 そのプロフィールデータが非同期で更新されます。
デフォルトは7です。
REFRESH_ACTORS_ON_INTERACTION オプション
Section titled “REFRESH_ACTORS_ON_INTERACTION ”trueに設定すると、すべての受信アクティビティ(いいね、絵文字リアクション、
フォローなど)で古いアクターデータをチェックします。
false(デフォルト)の場合、タイムラインに表示されるアクティビティ(Announce、Create)
でのみチェックします。
基本的にはオフになっています。
TIMELINE_INBOXES オプション
Section titled “TIMELINE_INBOXES ”このオプションをfalseに設定すると、タイムラインの受信箱モードが無効になります。
有効(デフォルト)の場合、タイムラインに表示される投稿がリアルタイムでフィルタリング
されるのではなく、事前に取得された投稿がデータベースに保存されます。
この機能は多くのリモート投稿を受信する相対的に大きなインスタンスで有用です。
Hollo 0.9.0からデフォルト値がtrueに変更されました。Hollo 1.0.0では
このオプションは完全に削除され、タイムライン受信箱モードのみがサポートされます。
基本的にはオンになっています。
ALLOW_HTML オプション
Section titled “ALLOW_HTML ”このオプションをtrueに設定すると、Markdown内に生のHTMLを許可します。
(MarkdownはHolloでプロフィールの紹介や投稿の内容などに使用されます)
Markdownでサポートされている書式よりも高度な書式を使用する場合に便利ですが、
XSS(クロスサイトスクリプティング)攻撃に防止するため、
HTMLタグと属性は一部制限されます。
ログとデバッグ
Section titled “ログとデバッグ”LOG_LEVEL オプション
Section titled “LOG_LEVEL ”アプリケーションのログレベル。
debug、info、warning、error、fatalのいずれかを選択してください。
デフォルトはinfoです。
LOG_QUERY オプション
Section titled “LOG_QUERY ”SQLクエリをログに残すにはtrueに設定します。
基本的にはオフになっています。
LOG_FILE オプション
Section titled “LOG_FILE ”構造化されたログを書き込むファイルのパスを指定します。 コンソールに出力されるログとは異なり、ログファイルは構造化ログ形式 (デフォルトはJSON Lines)で書き込まれます。
LOG_FILE_FORMAT オプション
Section titled “LOG_FILE_FORMAT ”LOG_FILE で指定したログファイルの形式。次の値が指定できます:
jsonl(デフォルト):JSON Lines 形式。1行ごとにJSONオブジェクトを出力します。 構造化JSONを解析するログ集約ツールに適しています。logfmt:logfmt 形式。1行ごとにキーと値のペアを出力します。 人が読みやすく、Loki などのツールとの互換性があります。
デフォルトはjsonlです。
SENTRY_DSN オプション
Section titled “SENTRY_DSN ”エラーレポートとトレースを送信するSentryプロジェクトのDSN。
FEDIFY_DEBUG オプション
Section titled “FEDIFY_DEBUG ”trueに設定すると、Fedifyデバッガーを有効にします。Fedifyデバッガーは、
ActivityPubのトレースとアクティビティをリアルタイムで検査できる内蔵ダッシュボードです。
有効にすると、/__debug__/でデバッグダッシュボードにアクセスできます。
基本的にはオフになっています。
メディアストレージ
Section titled “メディアストレージ”DRIVE_DISK
Section titled “DRIVE_DISK”Holloでアバター、カスタム絵文字、 その他のメディア等のファイルを保存する為のディスクドライバ。
選択肢はfs(ローカルファイルシステム)またはs3(S3互換のオブジェクトストレージ)のいずれかです。
後方互換性の為にs3がデフォルトですが、
将来的にはデフォルトは無くなる予定なので、明示的に設定する事をお勧めします。
ドライバの詳細については、FlyDriveドキュメント(英文)を参照してください。
STORAGE_URL_BASE
Section titled “STORAGE_URL_BASE”メディアファイルを提供する公開URLベース。例:https://media.hollo.social。
DRIVE_DISK=fsを使用する場合、
ローカルファイルシステムに保存されたファイルをWebアクセス経由で提供するため、
通常はhttps://<ホスト>/assetsの形式で設定する必要があります。
例:https://hollo.example.com/assets。
ローカルファイルシステムの設定
Section titled “ローカルファイルシステムの設定”FS_STORAGE_PATH FSドライバで必須
Section titled “FS_STORAGE_PATH ”ローカルファイルシステムでファイルを保存するパス。例: /var/lib/hollo.
S3互換オブジェクトストレージの設定
Section titled “S3互換オブジェクトストレージの設定”S3_REGION S3ドライバで必須
Section titled “S3_REGION ”S3互換オブジェクトストレージのリージョン。例:us-east-1
一部の非AWS S3互換サービスでは、この値が必要ないかもしれません。
S3_BUCKET S3ドライバで必須
Section titled “S3_BUCKET ”S3互換オブジェクトストレージのバケット名。例:hollo
S3_ENDPOINT_URL S3ドライバで必須
Section titled “S3_ENDPOINT_URL ”S3互換オブジェクトストレージのエンドポイントURL。
例:https://s3.us-east-1.amazonaws.com
S3_FORCE_PATH_STYLE オプション
Section titled “S3_FORCE_PATH_STYLE ”S3互換オブジェクトストレージに対してパススタイルURLを強制するかどうか。(trueまたはfalse)
非AWS S3互換サービスで必要な場合があります。
基本的にはオフになっています。
AWS_ACCESS_KEY_ID S3ドライバで必須
Section titled “AWS_ACCESS_KEY_ID ”S3互換オブジェクトストレージのアクセスキー。
AWS_SECRET_ACCESS_KEY S3ドライバで必須
Section titled “AWS_SECRET_ACCESS_KEY ”S3互換オブジェクトストレージのシークレットキー。