環境変数
プロセスレベルの設定は .env に記述し、変更後は再起動が必要です。このページは参照用なので、最初から最後まで読む必要はありません。
実行時設定との違い§
GPT-Load には2つの設定セットがあり、混同しやすいです。
| タイプ | 変更場所 | 反映方法 |
|---|---|---|
| 環境変数 | .envファイル | 再起動が必要。リッスンアドレス、データベース、キーなどプロセス自体を管理します。 |
| 実行時設定 | 管理画面 | 即時に有効。タイムアウト、リトライ、アフィニティなどのスケジューリング動作を管理します。 |
このページでは前者だけを扱います。スケジューリングのパラメーターは実行時設定を参照してください。
プロセスとネットワーク§
| 変数 | デフォルト値 | 説明 |
|---|---|---|
| HOST | 127.0.0.1 | リッスンアドレス。0.0.0.0に変更すると公開状態になるため、先にセキュリティページを確認してください。 |
| PORT | 3001 | リッスンポートは1~65,535の範囲内でなければなりません |
| READ_TIMEOUT | 60 | リクエスト読み取りのタイムアウト、単位は秒 |
| IDLE_TIMEOUT | 120 | 接続のアイドルタイムアウト、単位は秒です。 |
| GRACEFUL_SHUTDOWN_TIMEOUT | 10 | グレースフルシャットダウンの待機時間(秒) |
ミリ秒ではありません。設定を間違えやすい項目で、60000と書くと16時間のタイムアウトになります。
データとストレージ§
| 変数 | デフォルト値 | 説明 |
|---|---|---|
| DATA_DIR | ./data | データディレクトリで、データベースと2つのキーを保存します |
| DATABASE_DSN | (空欄) | 空欄なら管理対象のSQLiteを使い、入力すると外部データベースへ接続します |
| DATABASE_MAX_OPEN_CONNECTIONS | 10 | データベースの最大接続数。MySQL と PostgreSQL にのみ適用され、SQLite は常に単一接続です |
| DATABASE_MAX_IDLE_CONNECTIONS | 5 | 最大アイドル接続数。前の項目を超えてはいけません。同じく MySQL と PostgreSQL にのみ適用されます |
DATABASE_DSNの書き方と3つのドライバーの選択はデータベースとバックアップを参照してください。
キー§
| 変数 | デフォルト値 | 説明 |
|---|---|---|
| AUTH_KEY | (自動生成) | 管理画面のログインキー。空欄にするとDATA_DIR/auth.keyへ生成されます。 |
| ENCRYPTION_KEY | (自動生成) | チャネル認証情報を暗号化します。空欄にするとDATA_DIR/encryption.keyへ生成されます。ローテーションには対応しておらず、データベースと一緒にバックアップする必要があります。 |
2つのキーの詳細はセキュリティと本番運用を参照してください。
アウトバウンドプロキシ§
| 変数 | デフォルト値 | 説明 |
|---|---|---|
| HTTP_PROXY | (空欄) | HTTP アップストリームリクエストの環境プロキシ |
| HTTPS_PROXY | (空欄) | HTTPS アップストリームリクエストの環境プロキシ |
| NO_PROXY | (空欄) | 環境プロキシを経由しないホスト・ドメイン・IP をカンマ区切りで指定します |
環境プロキシは 認証情報・Group・グローバル設定のいずれもプロキシを指定していない場合にのみ有効です。管理画面でプロキシを設定すると、これらの変数は効かなくなります。優先順位の全体像は 代理とリクエストヘッダー を参照してください。
ログ§
| 変数 | デフォルト値 | 説明 |
|---|---|---|
| LOG_LEVEL | info | ログレベル |
| LOG_FORMAT | text | textまたはjsonだけを受け付けます。ログシステムには後者を使います。 |
ここで言うプロセスログ(プログラムの稼働状況)はリクエストログではありません。リクエストログの保持期間は管理画面で設定します。
モデル価格の同期§
| 変数 | デフォルト値 | 説明 |
|---|---|---|
| MODELS_DEV_AUTO_SYNC_ENABLED | (未設定) | Models.dev からモデル価格を自動同期するかどうか。未設定の場合は管理画面の永続設定に従い、初期値は有効です |
この変数を を設定しない 場合、切り替えは管理画面が持ち、いつでも変更できます。.env で明示的に true または false に設定すると強制値となり、管理画面の同名オプションは読み取り専用になります。管理画面で自動同期をオフにできない場合は、まずこの変数を確認してください。価格の取得元は モデル管理 を参照してください。
コンテナ内での上書き§
Compose デプロイでは、コンテナ内のHOSTは0.0.0.0、DATA_DIRは/app/dataに固定されます。.envで変更しても反映されません。
外部からのアクセス可否を決めるのはポートの公開設定です。デフォルトではホストの127.0.0.1にだけ公開します:
ports:
- "$${HOST:-127.0.0.1}:$${PORT:-3001}:$${PORT:-3001}"つまりコンテナデプロイでは、HOSTがホストへ公開するアドレスを制御するものであり、コンテナ内のリッスンアドレスではありません。外部公開にはリバースプロキシを使います。セキュリティと本番運用を参照してください。
さらに 3 つの変数は Compose デプロイでのみ意味を持ちます。バイナリを直接実行する場合は機能しません:
| 変数 | デフォルト値 | 説明 |
|---|---|---|
| BIND_ADDRESS | HOST を継承 | Compose のみ:メインサービスポートをホストのどのアドレスに公開するかを個別に指定します(コールバックポートには影響しません) |
| OAUTH_CALLBACK_BIND_ADDRESS | HOST を継承 | Compose のみ:1455・54545・51121 の 3 つのコールバックポートの公開アドレスを個別に指定します |
| CONTAINER_STOP_GRACE_PERIOD | 15s | Compose のみ:コンテナを強制停止するまでの待機時間。Docker の duration 表記で、GRACEFUL_SHUTDOWN_TIMEOUT より大きくします |
OAUTH_CALLBACK_BIND_ADDRESS の使用場面は サブスクリプションアカウント を参照してください。簡単に言えば:認可を通すためだけに 0.0.0.0 に変更しないでください。