環境変数
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ロードバランサーの後ろにある場合(通常はそうする必要があります)、
このオプションを有効にします。
基本的にはオフになっています。
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です。
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 ”このオプションをtrueに設定すると、タイムラインが受信箱のように動作します。
つまり、タイムラインに表示される投稿がリアルタイムでフィルタリングされるのではなく、
事前に取得された投稿がデータベースに保存されます。
この機能は多くのリモート投稿を受信する相対的に大きなインスタンスで有用です。
Hollo 0.4.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形式で書き込まれます。
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互換オブジェクトストレージのシークレットキー。