Environment Variables Reference (日本語)
- 1. 必須のシークレット
- 2. ストレージとデータベース
- 3. ネットワークとポート
- 4. セキュリティと認証
- 5. 入力のサニタイズと PII 保護
- 6. ツールとルーティングのポリシー
- 7. URL とクラウド同期
- 8. アウトバウンドプロキシ
- 9. CLI ツール統合
- 10. 内部エージェントと MCP の統合
- 11. OAuth プロバイダーの認証情報
- 12. プロバイダーの User-Agent オーバーライド
- 13. CLI フィンガープリントの互換性
- 14. API キープロバイダー
- 15. タイムアウト設定
- 16. ロギング
- 17. メモリ最適化
- 18. 料金同期
- 19. モデル同期(開発用)
- 20. プロバイダー固有の設定
- 21. プロキシの正常性
- 22. デバッグ
- 23. GitHub 統合
- 24. Skills サンドボックス(v3.8.0+)
- 27. Radar フィード(セルフホスティング)
- デプロイシナリオ
- 監査:削除済み/未使用の変数
1. 必須のシークレット
Section titled “1. 必須のシークレット”これらは初回実行前に必ず設定する必要があります。設定されていない場合、アプリケーションは起動を拒否するか、安全でないデフォルト設定で動作します。
| 変数 | 必須 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|---|
JWT_SECRET |
はい | (なし) | src/lib/auth |
すべてのダッシュボードセッションCookie(JWT)の署名および検証に使用します。openssl rand -base64 48 で生成してください。 |
API_KEY_SECRET |
はい | (なし) | src/lib/db/apiKeys.ts |
SQLite内に保存されるAPIキー値のAES暗号化キーです。openssl rand -hex 32 で生成してください。 |
INITIAL_PASSWORD |
はい | CHANGEME |
ブートストラップスクリプト | 管理ダッシュボードの初期パスワードを設定します(.env.example のデフォルト値と一致します。変更を促すため、意図的に安全でないことが明確な値にしています)。初回使用前に変更してください。 ログイン後、ダッシュボード → 設定 → セキュリティから変更してください。 |
OMNIROUTE_WS_BRIDGE_SECRET |
はい(本番環境) | (未設定) | src/app/api/internal/codex-responses-ws/route.ts |
内部Codex Responses WebSocketブリッジ用の共有シークレットです。Electron/ブラウザーのWSリレーとOmniRoute間のブリッジリクエストを認証します。⚠️ 本番環境では必須です。未設定の場合、すべてのWSブリッジリクエストが拒否されます。 openssl rand -base64 32 で生成してください。 |
OMNIROUTE_SW_BUILD_ID |
いいえ | (git SHA) | next.config.mjs, scripts/build/assembleStandalone.mjs |
PWAシェル(#11779)用の明示的なService Workerキャッシュ無効化IDです。解決チェーンで最初に使用されます。 |
SOURCE_VERSION |
いいえ | (未設定) | next.config.mjs, scripts/build/assembleStandalone.mjs |
解決チェーンの2番目です。デプロイされたコミットとしてPaaSビルダー(Heroku形式など)によって設定されます。 |
NEXT_PUBLIC_SW_BUILD_ID |
いいえ | (派生値) | src/shared/components/PwaRegister.tsx |
クライアントが /sw.js?v=… を登録するために使用するビルド時の公開値です。上記2つの値、続いてgit SHAから派生します。 |
OMNIROUTE_PEER_STAMP_TOKEN |
いいえ(自動) | (起動ごとに自動) | src/server/authz/policies/management.ts |
信頼されたピアIPスタンプがOmniRoute自身のHTTPサーバー(scripts/dev/peer-stamp.mjs)から発行されたことを証明する、プロセスごとのシークレットです。authzミドルウェアは、スタンプにこのトークンが含まれる場合にのみ、リクエストのローカリティ(LOCAL_ONLYルートのループバック/LANゲーティング)を信頼します。起動ごとに自動生成されるため、未設定のままにしてください。スタンプを共有する必要があるマルチプロセス構成の場合にのみ固定してください。 |
生成コマンド
Section titled “生成コマンド”# 4つのシークレットを一度に生成:echo "JWT_SECRET=$(openssl rand -base64 48)"echo "API_KEY_SECRET=$(openssl rand -hex 32)"echo "INITIAL_PASSWORD=$(openssl rand -base64 16)"echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)"[!CAUTION] 実際のシークレットを含む
.envファイルは、絶対にバージョン管理へコミットしないでください。.gitignoreではすでに.envが除外されていますが、プッシュ前に確認してください。
2. ストレージとデータベース
Section titled “2. ストレージとデータベース”OmniRoute は、すべての永続化に SQLite(better-sqlite3 経由)を使用します。これらの変数は、データの保存場所、暗号化、ライフサイクルを制御します。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
DATA_DIR |
~/.omniroute/ |
src/lib/db/core.ts |
SQLite DB、バックアップ、データファイルのルートディレクトリです。Docker ボリュームやカスタムパスを使用する場合は上書きしてください。 |
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR |
(未設定) | src/lib/dataPaths.ts |
テスト/評価時の DATA_DIR ガード(#10428)を回避するためのエスケープハッチです。DATA_DIR がないテストおよび Node の eval/print プローブ(-e/--eval/-p/--print、--eval=/--print= 形式を含む)は、運用者の実データベースを開けないように使い捨ての一時ディレクトリへリダイレクトされます。実ディレクトリの使用を再度有効にするには 1 に設定します。 |
OMNIROUTE_BUILD_SHA |
(未設定) | src/lib/monitoring/buildSha.ts |
実行中のアーティファクトの Git SHA です。npm run build:release によって記録されます。dist/BUILD_SHA センチネルを含まないコンテナでは注入できます。/api/monitoring/health で system.buildSha として公開されます。 |
OMNIROUTE_RELEASE_REF |
origin/main |
scripts/build/buildProvenance.ts |
pack-artifact のプロベナンスゲートがビルド SHA を照合する対象の ref です(#10427)。 |
OMNIROUTE_ALLOW_CANARY_BUILD |
(未設定) | scripts/build/buildProvenance.ts |
リリースライン上にない SHA のビルドをパッケージ化できるようにするには 1 に設定します。ゲートを失敗させる代わりに、意図的なカナリアとして記録します(#10427)。 |
OMNIROUTE_SMOKE_API_KEY |
(未設定) | scripts/ops/deploy-canary.mjs |
カナリアデプロイのスモークプローブ用 API キーです。/v1/chat/completions へのリクエストで Authorization: Bearer として送信されます。デプロイスクリプトのみが使用し(#10429)、サーバーが使用することはありません。オプトイン式 CLI スモークハーネスの OMNIROUTE_SMOKE_* 変数(tests/integration/upstream-cli-smoke.int.test.ts の RUN_CLI_SMOKE=1、OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS)とは関係ありません。CLI 統合 → 実環境スモークスイープを参照してください。 |
OMNIROUTE_BUILDING |
(未設定) | src/lib/buildPhase.ts |
ビルドフェーズシグナル(#10060)です。scripts/build/build-next-isolated.mjs によって 1 に設定され、起動されたすべてのビルドワーカーに継承されます。これにより、DB レイヤーはネイティブの better-sqlite3 アドオン(終了時にワーカーを異常終了させる)をロードする代わりに、何もしないスタブを返します。実行中のサーバーでは決して設定されません。 |
OMNIROUTE_SKIP_NATIVE_DEP_CHECK |
0 |
scripts/check/check-native-deps.mjs |
特殊なベンダー管理ツリーで、オプションのネイティブ依存関係の事前ビルドチェックをスキップするには 1 に設定します。これにより、欠落している依存関係をビルド可能にできるわけではありません。ネイティブ依存関係が別経路で提供される場合にのみ使用してください。 |
OMNIROUTE_DATA_DIR |
(未設定) | open-sse/executors/promptql/threadSticky.ts |
DATA_DIR のフォールバックエイリアスであり、DATA_DIR が未設定の場合にのみ確認されます。PromptQL エグゼキューターのディスク上のスレッド固定セッションキャッシュ(<dir>/promptql-thread-sessions.json)を特定するために使用されます。どちらの変数も設定されていない場合、キャッシュはメモリ内にのみ保持されます(再起動後は永続化されません)。 |
OMNIROUTE_PLUGINS_DIR |
(未設定) | src/lib/plugins/scanner.ts |
ランタイムプラグインスキャナーが読み取るディレクトリであり、プラグインマネージャーがインストール先として使用するルートでもあります。ホームディレクトリから導出されるデフォルトを上書きします(#11827)。スキャンパスを変更するためだけに HOME を移動するのではなく、Docker/K8s でバインドマウントされたプラグインツリーを指定してください(HOME は、ホーム相対の他のすべての動作も制御します)。未設定の場合は ~/.omniroute/plugins、プロセスがホームをまったく公開していない場合は /tmp/.omniroute/plugins になります。後者は、この変数によって解消される、通知なしに検出されない問題の原因です。解決されたディレクトリは、採用された入力とともに、起動時に scanner.dir_resolved として一度ログに記録されます。サーバー側専用です。CLI コマンドプラグインは、独自の OMNIROUTE_PLUGIN_PATH(セクション 9)を引き続き使用します。 |
STORAGE_ENCRYPTION_KEY |
(空 = 無効) | src/lib/db/encryption.ts |
保存時の SQLite データベース全体の暗号化に使用する AES キー。openssl rand -hex 32 で生成します。 |
STORAGE_ENCRYPTION_KEY_VERSION |
v1 |
scripts/build/bootstrap-env.mjs, electron/main.js |
暗号化キーのバージョンラベル。古いバックアップを復号できるよう、キーローテーションを実施する際に値を増加させます。 |
DISABLE_SQLITE_AUTO_BACKUP |
false |
src/lib/db/backup.ts |
true の場合、定期的な SQLite ファイルバックアップおよび書き込み前のバックアップ(models.dev の料金保存/消去、設定の書き込み)をスキップします。手動バックアップと復元前バックアップは引き続き実行されます。移行ランナーによる必須の永続的な安全スナップショットや、既存の永続 DB に対する一括移行ガードは無効化されません。手動以外のバックアップは、最大でも 60 分に 1 回に制限されます。ダッシュボードの Settings → Storage では、定期自動バックアップを個別に無効化できます。 |
OMNIROUTE_CRYPT_KEY |
(未設定) | src/lib/db/encryption.ts |
STORAGE_ENCRYPTION_KEY のレガシーエイリアス。プライマリ変数が存在しない場合のフォールバックとして受け付けられます。 |
OMNIROUTE_API_KEY_BASE64 |
(未設定) | src/lib/db/encryption.ts |
フォールバックとして受け付けられるレガシーエイリアス(Base64 エンコード形式)。使用前に自動的にデコードされます。 |
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS |
(未設定) | src/lib/db/core.ts |
SQLite の定期ヘルスチェック間隔(ミリ秒)を上書きします。未設定の場合、デフォルト値は NODE_ENV に基づいて決定されます。 |
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS |
(削除済み) | src/lib/db/walMaintenance.ts |
削除済み。 稼働中に定期的な wal_checkpoint(TRUNCATE) を実行すると、共有 wal-index マッピングが無効化され、SIGBUS によりプロセスがクラッシュする可能性があるため(#13973)、このスケジューラーは廃止されました。この変数は機能しません。正の値を設定すると非推奨警告が一度だけログに記録され、0 または未設定の場合は何も記録されません。WAL は以下の PASSIVE チェックポイントによって維持され、シャットダウン時のチェックポイントによって切り詰められます。 |
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS |
300000 (5分) |
src/lib/db/walMaintenance.ts |
頻繁に実行される wal_checkpoint(PASSIVE) の間隔(ミリ秒)を上書きします。保留中の WAL フレーム数を少なく保つことで、チェックポイント処理を高速に維持し、シャットダウン時の切り詰め処理の間も WAL ファイルサイズを一定範囲内に抑えます。0 で無効化します。 |
OMNIROUTE_WAL_GUARD_MAX_MB |
256 |
src/lib/db/walMaintenance.ts |
PASSIVE の実行時に WAL ファイルがこのサイズを超えていることが検出された場合、マッピング済みの wal-index を再書き込みせずに WAL を最初から開始できるよう、wal_checkpoint(RESTART) を実行します。稼働中の truncate モードのチェックポイントは削除されています(OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS の行を参照)。 |
OMNIROUTE_PRESSURE_SELF_RESTART |
false |
open-sse/utils/resourcePressure.ts |
1/true/yes/on に設定すると、重大なリソース圧迫が OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS の間継続した後にプロセスを終了します。これにより、無期限に 503 を返し続ける代わりに、スーパーバイザー(systemd の Restart=always、Docker の再起動ポリシー)がクリーンなプロセスを再起動できます。 |
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS |
120000 (2分) |
open-sse/utils/resourcePressure.ts |
自己再起動のための終了処理が実行されるまでに、重大なリソース圧迫が継続しなければならない時間。 |
OMNIROUTE_SQLJS_WASM_PATH |
(自動検出) | src/lib/db/adapters/sqljsAdapter.ts |
sql.js WASM フォールバックアダプターを使用する際の sql-wasm.wasm への明示的なパス(絶対パス、または cwd からの相対パス)。未設定の場合、パッケージ依存関係と候補となるレイアウトから自動検出されます。 |
OMNIROUTE_BATCH_RETENTION_DAYS |
30 |
src/lib/db/cleanup.ts |
終端状態(完了/失敗/キャンセル済み/期限切れ)の Batch API ジョブについて、自動クリーンアップ処理で削除されるまで、チェックポイント、参照されている入力/出力/エラーファイル、および行を保持する日数。BATCH_AND_FILE_AUTO_CLEANUP_ENABLED が有効化された場合にのみ適用され、OpenAI 独自の Batch API 出力保持期間と一致します。オペレーターが実行する DELETE /api/v1/batches/delete-completed ルートには影響しません。このルートは設計上、無条件(経過日数によるフィルターなし)のままです。 |
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
false |
src/lib/db/cleanup.ts |
true の場合、自動クリーンアップ処理により、OMNIROUTE_BATCH_RETENTION_DAYS を超えた終端状態の Batch API ジョブ(およびそのチェックポイント)を削除し、個別の expires_at を超えたアップロード済みファイルの BLOB コンテンツを消去できるようにします。デフォルトでは無効です。オペレーターが明示的に有効化するまで、既存のすべてのインストール環境でこのデータは従来どおり保持されます。ダッシュボードから編集可能な機能フラグでもあります。docs/reference/FEATURE_FLAGS.md → Runtime を参照してください。 |
OMNIROUTE_SKIP_DB_HEALTHCHECK |
0 |
src/lib/db/core.ts, src/lib/db/healthCheck.ts |
起動時の DB ヘルスチェックを完全にスキップするには 1 に設定します。短時間で終了するタスクや統合テストに便利です。 |
OMNIROUTE_FORCE_DB_HEALTHCHECK |
0 |
src/lib/db/core.ts |
通常はスキップされる場合(短時間で終了するタスクなど)でも、DB ヘルスチェックループを強制的に有効にするには 1 に設定します。 |
OMNIROUTE_SKIP_POSTINSTALL |
0 |
scripts/postinstall.mjs |
npm install 中のネイティブランタイムのウォームアップをスキップするには 1 に設定します。sqlite がすでにビルドされている CI/ヘッドレスインストールに便利です。 |
OMNIROUTE_MIGRATIONS_DIR |
(自動検出) | src/lib/db/migrationRunner.ts |
マイグレーションランナーがスキャンするディレクトリを上書きします。カスタムビルドにバンドルされたマイグレーションを含める場合に便利です。 |
OMNIROUTE_EXTRA_MIGRATIONS_DIRS |
(未設定) | src/lib/db/migrationRunner/extraDirs.ts |
プラットフォームのパス区切り文字で区切った namespace=dir エントリとして、追加のマイグレーションディレクトリを指定します(例:ee=/opt/app/enterprise/db/migrations)。そこで見つかったファイルは <namespace>-<number> として記録されるため、独自のマイグレーションを含むディストリビューションがアップストリームの数値スロットと衝突することはありません。不正な形式のエントリ、無効な名前空間、または存在しないディレクトリがある場合、スキーマを暗黙的にスキップするのではなく、起動時にエラーが発生します。 |
OMNIROUTE_MAX_PENDING_MIGRATIONS |
50 |
src/lib/db/migrationRunner.ts |
大量の保留中マイグレーションに対する安全しきい値(#3416)。既存の DB で保留中のマイグレーションがこの数を超えると、起動を中止します(消去された追跡テーブルから保護するため)。古いバックアップを復元する場合は値を引き上げ、チェックを無効にする場合は 0 に設定します。 |
OMNIROUTE_INSTALL_UPGRADE_WORKDIR |
(<repo>/.install-upgrade) |
scripts/check/check-install-upgrade.mjs |
check:install-upgrade リリースゲート用の作業ディレクトリです。約 12 GB(約 3 GB のインストールツリー 2 つと tarball)が必要なため、小容量の tmpfs では実行しないでください。セルフホストランナーでは /tmp が RAM ベースの 12 GB tmpfs であり、ゲートがその容量を使い果たしてパッケージが途中で切り詰められました。 |
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS |
(コード内のデフォルト) | src/lib/spend/batchWriter.ts |
バッチ処理される支出/コストライターのフラッシュ間隔(ms)です。値を小さくすると書き込みの集約が減り、値を大きくすると DB の競合が減ります。 |
OMNIROUTE_SPEND_MAX_BUFFER_SIZE |
(コード内のデフォルト) | src/lib/spend/batchWriter.ts |
強制フラッシュ前にバッファリングできる支出エントリの最大数です。高 QPS のデプロイでは値を引き上げ、メモリ使用量の上限を抑えることを優先する場合は値を引き下げます。 |
OMNIROUTE_PROXY_FETCH_DEBUG |
(未設定) | open-sse/utils/proxyFetch.ts |
Vercel リレーパスで [ProxyFetch] デバッグログを出力するには "true" に設定します。ルーティング情報の漏えいを避けるため、デフォルトでは無効です。 |
PROXY_LOG_INCLUDE_IPS |
false |
src/lib/proxyLogger.ts |
詳細な [ProxyEgress] プロセスログ行にクライアント/外向き IP とアカウントプレフィックスを含めるには、"true" または "1" に設定します。プロセスログから IP やアカウントプレフィックスが漏えいしないよう、デフォルトでは無効になっています。 |
OMNIROUTE_DEBUG |
(未設定) | bin/cli/commands/quota.mjs |
CLI のクォータコマンドから、リクエストごとのタイミング診断([omniroute] GET <path> completed in Nms)を stderr に出力するには 1 に設定します。 |
OMNIROUTE_HEALTHCHECK_PATH |
(自動) | scripts/dev/healthcheck.mjs |
コンテナのヘルスチェックがプローブする明示的なパスです。未設定の場合、プローブは OMNIROUTE_BASE_PATH からパスを導出します。設定すると、詳細監視エンドポイントの使用に戻ります。 |
OMNIROUTE_DEBUG_COMPLETION |
(未設定) | bin/cli/commands/completion.mjs |
CLI のシェル補完キャッシュパス(読み取り/更新/書き込み)から [omniroute completion] 診断を出力するには、空でない任意の値を設定します。デフォルトでは無効です。これらのキャッシュは暗黙的に失敗するため、キャッシュが存在しない場合や破損している場合でもタブ補完が機能しなくなることはありません。 |
BATCH_RETRY_DURATION_MS |
86400000(24 時間) |
open-sse/services/batchProcessor.ts |
個々のバッチ項目に対する最大再試行期間(ms)です。この期間を超えた項目は失敗としてマークされます。 |
BATCH_BACKOFF_BASE_MS |
5000 |
open-sse/services/batchProcessor.ts |
バッチ項目の再試行における指数バックオフの基本遅延(ms)。 |
BATCH_BACKOFF_MAX_MS |
3600000(1時間) |
open-sse/services/batchProcessor.ts |
バッチ項目の再試行間における指数バックオフの上限(ms)。 |
BATCH_MAX_CONCURRENT |
1 |
open-sse/services/batchProcessor.ts |
同時に処理されるバッチの最大数。スループットを向上させるには増やしますが、レート制限の集中発生を避けるため低く保ってください。 |
[!IMPORTANT] 既存の永続データベースを変更する前に、マイグレーションランナーは完全な コンテンツアドレス指定スナップショットを
DATA_DIR/db_backups/配下に公開します。公開には、同一ファイルシステム内での 上書きなしのハードリンクと、永続的なファイル同期をサポートするファイルシステムが必要です。POSIX ホストでは ディレクトリ同期も必要です。Windows では Node がディレクトリハンドルを拒否する場合があるため、OmniRoute は 公開済みファイルをフラッシュし、ディレクトリエントリの同期をベストエフォートとして扱います。 マウントされたDATA_DIRがこれらの保証を提供できない場合、マイグレーションを適用する前に 起動が安全側に失敗します。DATA_DIRをこれらのプリミティブを備えたボリュームへ移動してください。マイグレーションの安全性を迂回するためにDISABLE_SQLITE_AUTO_BACKUPを使用しないでください。
| シナリオ | 構成 |
|---|---|
| ローカル開発 | すべてデフォルトのままにします。DB は ~/.omniroute/omniroute.db にあります。 |
| Docker | DATA_DIR=/data を設定し、/data にボリュームをマウントします。 |
| 保存時の暗号化 | STORAGE_ENCRYPTION_KEY を設定し、キーを必ずバックアップしてください!キーの紛失 = データの喪失です。 |
| CI/テスト | DATA_DIR=/tmp/omniroute-test — 一時的なため、暗号化は不要です。 |
3. ネットワークとポート
Section titled “3. ネットワークとポート”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
PORT |
20128 |
src/lib/runtime/ports.ts |
Dashboard UI と API エンドポイントの両方で使用するプライマリポート(単一ポートモード)。 |
OMNIROUTE_BASE_PATH |
(空 = ルート) | next.config.mjs, scripts/docker/ensure-docker-base-path.mjs |
リバースプロキシの背後で OmniRoute を提供するための URL サブパス(Next.js の basePath を設定し、認証リダイレクトも basePath を考慮)。例: /omniroute。Docker では、値は docker build 時に組み込まれます(ARG OMNIROUTE_BASE_PATH)。ビルド済みのルートイメージでは、Next.js の起動前にコンテナ起動時に一度だけ、別のランタイム値を適用できます。同じサブパスを含む公開オリジンを NEXT_PUBLIC_BASE_URL に設定してください。 |
NEXT_PUBLIC_OMNIROUTE_BASE_PATH |
(空 = ルート) | src/shared/hooks/useDisplayBaseUrl.ts |
OMNIROUTE_BASE_PATH のブラウザ可視ミラー。ビルド時にインライン化されるため、ダッシュボードのエンドポイント表示には https://host/v1 ではなく https://host/omniroute/v1 が表示されます。未設定の場合は OMNIROUTE_BASE_PATH にフォールバックします。変更後は再ビルドしてください(Next の basePath はビルド時に設定されます)。 |
DASHBOARD_ALLOW_EMBED |
(未設定 = フレーム表示不可) | next.config.mjs, scripts/build/dashboardEmbed.mjs |
HTML ページの iframe 埋め込みをオプトインで有効にします。未設定の場合、すべてのルートで frame-ancestors 'none' と X-Frame-Options: DENY が設定されます。vscode に設定すると、ページ(ダッシュボード、ログイン、ドキュメント、ランディングページ)が frame-ancestors 'self' vscode-webview: 付き、かつ X-Frame-Options なしで提供されるため、VS Code Simple Browser で表示できます(OmniCopilot の dashboardOpen: "editor" モード)。API サーフェス(/api、/v1、/v1beta、/a2a、/healthz、ルートレベルのエイリアス)では、どちらの場合も厳格なヘッダーが維持されます。認識される値は vscode のみであり、1/true では有効になりません。ビルド時設定: 変更後は再ビルドしてください(イメージの場合は docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode。ビルド済みインストール環境で設定しても効果はありません)。 |
API_PORT |
(未設定) | src/lib/runtime/ports.ts |
設定すると、/v1/* プロキシ API をこの個別のポートで提供します。 |
API_HOST |
0.0.0.0 |
src/lib/runtime/ports.ts |
API ポートのバインドアドレス。 |
DASHBOARD_PORT |
(未設定) | src/lib/runtime/ports.ts |
設定すると、Dashboard UI をこの個別のポートで提供します。 |
OMNI_MAX_CONCURRENT_CONNECTIONS |
0 (無効) |
src/sse/utils/backpressure.ts |
同時処理中のチャット接続数に上限を設定します。上限を超えたリクエストには、Retry-After とともに 503 が返されます。正の整数を指定するとガードが有効になり、未設定または 0 の場合は無効になります。 |
OMNIROUTE_INSTANCE_ID |
(未設定) | src/shared/resilience/peerRouting.ts |
OmniRoute インスタンスを連鎖させる際に、このゲートウェイを識別するための安定した一意の ID。受信時のピアループチェックを有効にします。使用可能な文字: 英字、数字、.、_、:、-。最大 64 文字。 |
OMNIROUTE_PEER_URLS |
(未設定) | src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts |
X-OmniRoute-Peer-Trace を受信する可能性がある、カンマ区切りの OmniRoute ベース URL。明示的に許可リストへ登録されたアップストリーム URL のみにピアメタデータが送信され、その他すべてのプロバイダーには影響しません。 |
OMNIROUTE_PEER_MAX_HOPS |
4 |
src/shared/resilience/peerRouting.ts |
チェーンされたリクエストで許容される、以前に訪問した OmniRoute インスタンスの最大数(1~32)。インスタンスが重複しているか、上限を使い切った場合は HTTP 508 Loop Detected を返します。 |
PROD_DASHBOARD_PORT |
20130 |
docker-compose.prod.yml |
Docker 本番モードで Dashboard 用に公開されるホスト側ポート。 |
PROD_API_PORT |
20131 |
docker-compose.prod.yml |
Docker 本番モードで API 用に公開されるホスト側ポート。 |
OMNIROUTE_PORT |
(未設定) | src/lib/runtime/ports.ts |
Electron またはその他のラッパー内で実行する場合、PORT より優先されます。 |
LIVE_WS_PORT |
20129 |
src/server/ws/liveServer.ts |
リアルタイム WebSocket ライブ監視サーバー用のポート。 |
LIVE_WS_HOST |
127.0.0.1 |
src/server/ws/liveServer.ts |
ライブ WebSocket サーバーのバインドアドレス。LAN 上で公開するには 0.0.0.0 に設定してください(LIVE_WS_ALLOWED_ORIGINS も設定してください)。 |
LIVE_WS_ALLOWED_ORIGINS |
(未設定) | src/server/ws/liveServer.ts |
ライブ WebSocket を開くことを許可する追加オリジンのカンマ区切りリスト。ループバックの Dashboard オリジンは、デフォルトですでに許可されています。 |
LIVE_WS_ALLOWED_HOSTS |
(未設定) | src/server/ws/liveServerAllowList.ts |
ライブ WebSocket オリジンとして許可する追加ホスト名のカンマ区切りリスト。LIVE_WS_ALLOWED_ORIGINS(完全なオリジン URL)とは異なり、ホスト部分のみに一致します。LAN/Tailscale 環境で便利です。 |
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL |
(未設定) | src/hooks/useLiveDashboard.ts |
ライブ Dashboard WebSocket の公開 URL(ブラウザ側)。WS サーバーの前段にリバースプロキシまたは Cloudflare Tunnel を配置する場合に設定します(例:wss://ws.my-ai.com/live-ws)。ブラウザは ws://hostname:20132 の代わりにこの URL に接続します。パス名部分は WebSocket のアップグレードパスとしても使用されます(デフォルト:/live-ws)。 |
OMNIROUTE_ENABLE_LIVE_WS |
true |
src/server/ws/liveServer.ts and scripts/start-ws-server.mjs |
リアルタイム WebSocket サーバーを無効にするには 0 または false に設定します(デフォルトでは有効で、ループバックにバインドされます)。スタンドアロンのライブ WebSocket ヘルパースクリプトを無効にする CI/ハーネス用トグルです。 |
RELAY_IP_PER_MINUTE |
30 |
src/app/api/v1/relay/chat/completions/route.ts |
(トークン、IP)ごとのリレー速度制限(リクエスト数/分)。インメモリかつインスタンス単位です。0 または負の値を指定すると IP 軸のゲートが無効になります(トークンごとの DB 制限は引き続き適用されます)。 |
NODE_ENV |
production |
Next.js コア | ログの詳細度、キャッシュ、エラー詳細の公開、および Next.js の最適化を制御します。 |
OMNIROUTE_USE_TURBOPACK |
1(Turbopack — コード上のデフォルト) |
package.json / Next.js 16 |
Turbopack は npm run dev および npm run build のデフォルトバンドラーです(ベンチマークではビルドが 2~3 倍高速)。Windows でネイティブバインディングやバンドラー互換性の問題が発生した場合、または RAM に制約のあるマシンでは、0 に設定して webpack にフォールバックしてください。この Next.js バージョン系列(16.2.x)の Turbopack プロダクションビルドは、大規模なモジュールグラフにおいて webpack よりもメモリ使用量のピークがはるかに高くなることがアップストリームで確認されています(Next 16.3 の Turbopack メモリ退避修正はまだ安定版ではありません)。webpack へのフォールバックではピークが大幅に低くなります。#6409 を参照してください。 |
OMNIROUTE_SKIP_DB_HEALTHCHECK |
(未設定) | src/lib/db/core.ts / src/lib/db/healthCheck.ts |
1 に設定すると、起動時の SQLite 整合性ヘルスチェックをスキップします。大規模なデータベースで起動を高速化する場合に役立ちます。 |
NOTIFY_SOCKET |
(未設定) | systemd(sd_notify プロトコル) | プロセスが sd_notify 統合を備えたサービスユニットの下で実行される場合に systemd によって設定されます。OmniRoute はこれを読み取り(OMNIROUTE_DISABLE_SD_NOTIFY を参照)、READY/WATCHDOG 通知を送信します。ユーザーが設定することはありません。 |
OMNIROUTE_DISABLE_SD_NOTIFY |
(未設定) | scripts/dev/systemd-notify.mjs |
systemd ユニットの下で実行している場合でも、1 に設定すると systemd の sd_notify(Type=notify / WatchdogSec=)を無効にします。systemd 外では、いずれの場合も通知機能は何も実行しません。 |
CREDENTIAL_HEALTH_CHECK_INTERVAL |
300000 |
open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts |
バックグラウンドの認証情報ヘルスチェックスケジューラーの間隔(ミリ秒)。最小値:10000(10 秒)。 |
CREDENTIAL_HEALTH_CACHE_TTL |
300000 |
open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts |
キャッシュされた認証情報のヘルスステータスの TTL(ミリ秒)。 |
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK |
false |
src/lib/credentialHealth/scheduler.ts |
1 または true に設定すると、プロバイダー接続のバックグラウンド定期テストを無効にします。検索プロバイダー(src/lib/providers/validation/searchProviders.ts 内の SEARCH_VALIDATOR_CONFIGS、例:tavily-search)は常に一括チェックの対象外です。その「検証」は実際に課金されるアップストリームクエリであるため、タイマーによるヘルスチェックは実行されません(#9970)。 |
HOST |
0.0.0.0 |
scripts/dev/run-next.mjs |
Next.js の開発/起動サーバーのバインドアドレス。設定されている場合、デフォルトの 0.0.0.0 を上書きします。 |
HOSTNAME |
127.0.0.1 |
scripts/dev/run-next-playwright.mjs |
Playwright ランナーが Next.js を起動するときに使用するバインドアドレス。再現性と隔離性を確保したテストのため、デフォルトは 127.0.0.1 です。omniroute serve には使用しないでください — 代わりに OMNIROUTE_SERVER_HOST を使用してください(POSIX シェルは HOSTNAME をマシン名に自動設定するため、.env では上書きできません)。 |
OMNIROUTE_SERVER_HOST |
0.0.0.0 |
bin/cli/commands/serve.mjs |
omniroute serve のバインドアドレス。POSIX シェルの HOSTNAME 変数(bash/zsh によって常にマシン名に設定される)との衝突を回避します。未設定の場合は 0.0.0.0 にフォールバックします。(#6194) |
ポートモード
Section titled “ポートモード”┌─────────────────────────── 単一ポート(デフォルト) ────────────────────────┐│ PORT=20128 ││ → ダッシュボード: http://localhost:20128 ││ → API: http://localhost:20128/v1/chat/completions │└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── ポートの分割 ────────────────────────────────────┐│ DASHBOARD_PORT=20128 ││ API_PORT=20129 ││ API_HOST=0.0.0.0 ││ → ダッシュボード: http://localhost:20128 ││ → API: http://0.0.0.0:20129/v1/chat/completions ││ ユースケース: ダッシュボードを localhost に制限しつつ、API を LAN に公開。│└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── Docker 本番環境 ─────────────────────────────────┐│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 ││ → docker-compose.prod.yml でコンテナのポートをホストのポートにマッピング。│└─────────────────────────────────────────────────────────────────────────────┘4. セキュリティと認証
Section titled “4. セキュリティと認証”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
MACHINE_ID_SALT |
endpoint-proxy-salt |
src/lib/auth |
マシンのフィンガープリント生成のためにハードウェア識別子と組み合わせるソルト。環境を分離するため、デプロイごとに変更してください。 |
OMNIROUTE_CLI_SALT |
(未設定 = インストールごとにランダムなソルトを生成し、<DATA_DIR>/cli-token-salt.json に永続化) |
src/lib/machineToken.ts |
ローカル CLI 認証トークンを導出するための HMAC ソルト。この値を設定すると、そのマシン上のすべての CLI トークンがローテーションされ、永続化されたソルトより常に優先されます。docs/security/CLI_TOKEN.md を参照してください。 |
AUTH_COOKIE_SECURE |
false |
src/lib/auth |
セッション Cookie に Secure フラグを設定します。HTTPS の背後で実行する場合は、必ず true にする必要があります。 |
REQUIRE_API_KEY |
false |
API ミドルウェア | true の場合、すべての /v1/* プロキシリクエストに有効な API キーを含める必要があります。このフラグは GET /v1/models へのアクセスを制御しません。代わりに、GET /v1/models はダッシュボードのログイン設定(requireAuthForModels)に従います。そのため、/v1/models から 401 が返されても、推論が保護されていることを意味するわけではありません。docs/security/INFERENCE_AUTH_POSTURE.md(#13695)を参照してください。 |
ALLOW_API_KEY_REVEAL |
false |
src/shared/constants/featureFlagDefinitions.ts |
ダッシュボード UI で API キーの完全な値を表示できるようにします。ダッシュボードの機能フラグから設定できますが、共有インスタンスではセキュリティリスクがあります。 |
NO_LOG_API_KEY_IDS |
(空) | src/lib/compliance/index.ts |
リクエストログへの記録を省略する API キー ID のカンマ区切りリスト(GDPR 準拠)。 |
DEFAULT_RATE_LIMIT_PER_DAY |
(未設定 = 無制限) | src/shared/utils/apiKeyPolicy.ts |
rate_limits 列が null の API キーに適用される、1 日あたりのフォールバックリクエスト上限。未設定または空の場合、暗黙的な上限はありません(#2289、#11017)。0 も同様に無制限です。正の整数 N を指定すると、N/日、5N/週、20N/月が有効になります。不正な空でない値の場合は、従来の 1000/日、5000/週、20000/月の期間別上限にフォールバックします。 |
MAX_BODY_SIZE_BYTES |
10485760 (10 MB) |
src/shared/middleware/bodySizeGuard.ts |
許可されるリクエスト本文の最大サイズ。この上限を超えるペイロードは拒否されます。 |
OMNIROUTE_CHAT_LARGE_BODY_BYTES |
262144 (256 KB) |
src/shared/middleware/chatBodyAdmission.ts |
このしきい値以上の実際のリクエスト本文は、JSON の解析前に、プロセスローカルなアトミック方式の高負荷処理用アドミッションリースを取得します(POST /v1/responses を含む BYTE パス)。構造的に高負荷な場合と同じ #10437 の健全なヘッドルームによるエスケープが適用されますが、#7849 の再発を防ぐため、引き続き OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110 によって制限されます。 |
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES |
52428800 (50 MB) |
src/shared/middleware/chatBodyAdmission.ts |
境界付き取り込み中に読み取られたバイト数に対して適用される、チャットルートのハード上限。Content-Length が欠落、不正、または偽装されているリクエストも対象となり、超過時には 413 が返されます。 |
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT |
(未設定 — リクエスト数の上限なし) | src/shared/middleware/chatBodyAdmission.ts |
#503-fanout: このレガシーなリクエスト数上限は、明示的に設定された場合にのみ適用されるようになりました。未設定(デフォルト)の場合、重量級チャットの受け入れは代わりに OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES によって制御されます。これは、1 プロセス(1 つの V8 ヒープ)におけるプロセスの実際のメモリ上限から自動算出されるバイト単位の予算です。約 750k トークンの /v1/responses が 2 件重なると、約 12 GiB のヒープが異常終了します(#7849)。これはメモリ予算に関する警告であり、製品上のハード上限が 2 であることを意味しません。正常なプロセス(ヒープがシェッド比率未満)では、OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM を介して、より多くの長時間 /v1/responses を同時に受け入れてもかまいません。長時間接続する SSE クライアントが数十(40~50)ある場合の制約は、ヒープ + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110 であり、「最大 2」ではありません。「ホストを使い切る」ためにこれをむやみに引き上げると、#7849 が再発します。N 個の独立した DATA_DIR(#11024)でヒープを増やしてください。1 つの SQLite ファイルに対して replicas>1 を使用してはいけません。 |
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES |
(自動算出) | src/shared/middleware/admissionBudget.ts |
#503-fanout: 自動算出される取り込みバイト予算(V8 と cgroup のうち厳しい方のメモリ上限の 25% を、一時的な 8 倍の増幅係数で除算)のオーバーライドです。算出値と明示値はいずれも 8 MiB~2 GiB の範囲に制限されます。実効予算を超える本文は、直ちに 413 body_exceeds_budget で失敗します。個別には処理可能な本文間の競合では、引き続き再試行可能な 503 が返されます。40~50 個の長時間 SSE クライアントに対する制約は、この予算 + ヒープであり、ハードな「最大 2」ではありません。調整前に、/api/monitoring/health で chatAdmission.maxInflightBytes / budgetSource / pressureSeverity を確認してください。 |
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO |
0.75 |
src/shared/middleware/chatBodyAdmission.ts |
BYTE および STRUCTURE の重量級受け入れに対する、ヒープ圧力のシェッド比率(heapUsed / heap_size_limit)です(#10183、#10268、#10437)。OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT を超える同時重量級リクエストが、再試行可能な 503 でシェッドされるのは、ヒープがこの比率以上でもある場合に限られます。ヒープが正常な場合は、healthy-headroom を介して受け入れられます。 |
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM |
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (デフォルト 1) |
src/shared/middleware/chatBodyAdmission.ts |
STRUCTURE と BYTE の両方(OMNIROUTE_CHAT_LARGE_BODY_BYTES 以上の本文を含む admitChatRequest)に適用される、正常なヒープ向け高速パス(#10437)の制限付き追加容量です。この制限がなければ、ヒープが正常な場合、ビジー状態のすべてのリクエストが上限なしで受け入れ制御を迂回していました。この数の同時リースが正常ヒープパスを通じてアクティブになると、それ以降のビジー状態のリクエストは、実際のヒープ圧力下で使用されるものと同じ、境界付き待機/シェッドパスへフォールスルーします。0 にするとバイパスが完全に無効になります。 |
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT |
200 |
src/shared/middleware/chatBodyAdmission.ts |
本文がバイトしきい値未満でも、チャットリクエストを重量級として分類するメッセージ数です。 |
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT |
64 |
src/shared/middleware/chatBodyAdmission.ts |
本文がバイトしきい値未満でも、チャットリクエストを重量級として分類するツール数です。 |
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS |
32000 |
src/shared/middleware/chatBodyAdmission.ts |
リクエストを重量級として分類する、文字列サイズに基づく保守的なトークン推定値です。これは受け入れコストの代理指標であり、プロバイダーの課金用トークン化ではありません。 |
OMNIROUTE_CHAT_HARD_MAX_MESSAGES |
0 (無効) |
src/shared/middleware/chatBodyAdmission.ts |
オプトインで設定できる、チャット履歴の上限です。デフォルトでは無効です。メッセージ数はデプロイメントポリシーであり、リクエストに普遍的に備わる属性ではありません。また、ここで上限を設けると、圧縮パイプラインによって処理可能になる前に、会話が終端的な 413 で拒否されます。ヒープの増加は、OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT とヒープ圧力シェッドによって制限されます。ハード上限が必要なメモリ制約の厳しいデプロイメントでは、正の値を設定してください。超過時には、compact-required を示す構造化された 413 が返されます。 |
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES |
67108864 (64 MB) |
open-sse/handlers/chatCore/nonStreamingResponseBody.ts |
メモリに完全にバッファリングされる、非ストリーミングのアップストリームレスポンスに対するハード上限です。これを超えるとアップストリームリーダーがキャンセルされ、ヒープが枯渇するまで文字列が無制限に増大する代わりに、リクエストが即座に失敗します。 |
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES |
768 |
open-sse/handlers/chatCore/responseHeaders.ts |
アップストリームのレスポンスヘッダーから転送する最大ワイヤーバイト数。上限を超えると、一般的なリバースプロキシのヘッダー制限内に収めるため、優先度の低いヘッダー(例: カスタム x-codex-*、x-oai-request-id)が削除されます。レスポンスヘッダーのサイズが大きくなる代わりに、より多くのアップストリームメタデータを転送するには、より大きな値を設定してください。 |
CORS_ORIGIN |
(未設定) | src/server/cors/origins.ts |
従来の単一オリジン用CORS許可リスト。新規デプロイでは CORS_ALLOWED_ORIGINS を推奨します。CORSはクロスオリジンのブラウザAPIクライアント専用です。認証済みダッシュボードからの書き込みでは、代わりに同一オリジンリクエストとセッションに紐づいたCSRF保護を使用します。 |
CORS_ALLOWED_ORIGINS |
(未設定) | src/server/cors/origins.ts |
カンマ区切りのCORS許可リスト。CORS_ALLOW_ALL=true が明示的に設定されていない限り、ワイルドカードは送信されません。 |
CORS_ALLOW_ALL |
false |
src/server/cors/origins.ts |
任意のブラウザ Origin をそのまま返す、開発環境専用の緊急回避設定です。共有環境または本番環境では有効にしないでください。 |
OUTBOUND_SSRF_GUARD_ENABLED |
true |
src/shared/network/outboundUrlGuard.ts |
プライベート/ループバック/リンクローカルIP範囲を対象とするプロバイダー呼び出しをブロックします。無効化するのは、隔離されたテスト環境のみにしてください。 |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
false |
src/shared/network/outboundUrlGuard.ts |
プライベート/ローカルネットワーク(localhost、192.168.x.x、10.x.x.xなど)を指すプロバイダーURLを許可します。セルフホスト型プロバイダーには必須です(LM Studio、Ollama、vLLM、Llamafile、Triton、SearXNG)。false の場合、ダッシュボードはローカルURLの検証を拒否します。 |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
true |
src/shared/network/outboundUrlGuard.ts |
ローカル/プライベートアドレス(127.0.0.1、localhost、LAN、プライベート範囲)上のプロバイダーの追加/検証を許可します。これはプロバイダー検証パスのみに適用されます。デフォルトは true(ローカル優先)。公開アドレス以外を厳格にブロックするには false に設定してください。クラウドメタデータエンドポイント(169.254.169.254、metadata.google.internal)は、この設定にかかわらずブロックされます。(#5066) |
AUDIO_REMOTE_PROVIDER_NODES |
false |
src/app/api/v1/_shared/audioProviderNodes.ts |
/v1/audio/* ルート(文字起こし、音声、翻訳)が、localhost外でホストされているOpenAI互換プロバイダーノードを使用できるようにします。デフォルトでは無効です。音声をリモートホストにルーティングすると送信元IDが変わるため、オペレーターによる明示的な判断が必要です。ループバック/プライベートノード(localhost、127.0.0.1、172.16-31.x)は常に許可され、この設定の影響を受けません。(#3963) |
RERANK_REMOTE_PROVIDER_NODES |
false |
src/app/api/v1/_shared/rerankProviderNodes.ts |
POST /v1/rerank(およびメモリエンジンのループバック再ランク処理)が、localhost外でホストされているOpenAI互換プロバイダーノード(TEI、Infinity、vLLMなどを実行するLAN上のマシンまたはTailscaleピア)を使用できるようにします。デフォルトでは無効です。リモートホストへのルーティングは送信元IDを変更するため、オペレーターによる明示的な判断が必要です。ループバックノード(localhost、127.0.0.1、172.16-31.x)は常に許可され、この設定の影響を受けません。リモートノードは、プロバイダーのアウトバウンドURLポリシー(OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS / OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS)にも合格する必要があります。クラウドメタデータホストには決してルーティングされません。 |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
false |
src/app/api/auth/login/route.ts |
OIDCが有効な場合、パスワードログインを無効にし、ユーザーがOIDCシングルサインオン経由でのみ認証できるようにします。短縮エイリアス OIDC_DISABLE_PASSWORD_LOGIN も使用できます。同じキーを持つダッシュボードの機能フラグが優先されます。(#10889) |
OIDC_DISABLE_PASSWORD_LOGIN |
false |
src/app/api/auth/login/route.ts |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN の短縮エイリアスです。(#10889) |
セキュリティ強化チェックリスト
Section titled “セキュリティ強化チェックリスト”# 本番環境における最低限のセキュリティ設定:AUTH_COOKIE_SECURE=true # HTTPSが必要REQUIRE_API_KEY=true # すべてのプロキシ呼び出しを認証ALLOW_API_KEY_REVEAL=false # UIでキーを決して公開しないCORS_ALLOWED_ORIGINS=https://your.domain.comMAX_BODY_SIZE_BYTES=5242880 # 5 MBの上限5. 入力サニタイズと PII 保護
Section titled “5. 入力サニタイズと PII 保護”OmniRoute は、リクエスト側のインジェクションスキャンとレスポンス側の PII 除去という、2 層の防御を提供します。
⚠️ 制限事項: これらのガードレールは完全なプロンプトインジェクションファイアウォールや PII DLP システムではなく、ベストエフォート型のヒューリスティック検出です。誤検知(無害なペルソナ/RPG プロンプトが検出される)や検出漏れ(リートスピーク、空白の挿入、英語以外のパターン)が発生する可能性があります。これらだけではコンプライアンス対応として十分ではありません。依存する前に、モードを調整し、実際のトラフィックに対してテストしてください。
リクエスト側: プロンプトインジェクションガード
Section titled “リクエスト側: プロンプトインジェクションガード”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
INPUT_SANITIZER_ENABLED |
true |
src/middleware/promptInjectionGuard.ts |
受信メッセージに対するプロンプトインジェクションパターンのスキャンを有効にします。 |
INPUT_SANITIZER_MODE |
warn |
src/middleware/promptInjectionGuard.ts |
インジェクションポリシー: warn = ログ記録のみ、block = リクエストを 400 で拒否します。従来の redact はインジェクションテキストを除去しません。リクエスト内の PII を書き換えるには PII_REDACTION_ENABLED を使用してください。 |
INJECTION_GUARD_MODE |
(未設定) | src/middleware/promptInjectionGuard.ts |
INPUT_SANITIZER_MODE の従来のエイリアスです。動作は同じです。 |
INPUT_SANITIZER_BLOCK_THRESHOLD |
high |
src/shared/utils/injectionSeverity.ts |
MODE=block が拒否する最低重大度: high(デフォルト)、medium、または low。しきい値を下げない限り、重大度が Medium のパターンは監視のみとなります。 |
INJECTION_GUARD_BLOCK_THRESHOLD |
(未設定) | src/shared/utils/injectionSeverity.ts |
INPUT_SANITIZER_BLOCK_THRESHOLD の従来のエイリアスです。動作は同じです。 |
PII_REDACTION_ENABLED |
false |
src/lib/guardrails/piiMasker.ts |
true の場合、受信リクエスト内の PII をマスキングします(インジェクションモードとは独立しています)。 |
CREDENTIAL_REDACTION_ENABLED |
false |
src/lib/guardrails/credentialMasker.ts |
リクエスト/レスポンスのペイロードから、既知の API キー/シークレットトークンのパターンをマスキングします。オプトイン方式で、PII_REDACTION_ENABLED と同様に動作します。 |
レスポンス側: PII サニタイザー
Section titled “レスポンス側: PII サニタイザー”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
PII_RESPONSE_SANITIZATION |
false |
src/lib/piiSanitizer.ts |
クライアントに返す前に、LLM のレスポンスに漏洩した PII が含まれていないかスキャンします。 |
PII_RESPONSE_SANITIZATION_MODE |
redact |
src/lib/piiSanitizer.ts |
redact = PII をマスキング、warn = ログ記録のみ、block = レスポンス全体を破棄します。 |
VS Code トークン化ルートのコンテキストサニタイザー
Section titled “VS Code トークン化ルートのコンテキストサニタイザー”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_VSCODE_SANITIZE_CONTEXT |
1 |
src/app/api/v1/vscode/contextSanitizer.ts |
/v1/vscode/[token]/* リクエストから、暗黙的なアクティブエディターのコンテキスト(editorContext、activeEditor、currentFile、selection、openTabs…)を除去し、明示的に添付された機密ファイルの内容をマスキングします。デフォルトで安全な設定です。無効にするには 0 に設定してください。 |
| シナリオ | 設定 |
|---|---|
| エンタープライズコンプライアンス | INPUT_SANITIZER_ENABLED=true、INPUT_SANITIZER_MODE=block、PII_REDACTION_ENABLED=true、PII_RESPONSE_SANITIZATION=true(インジェクションをブロックし、リクエスト/レスポンスの PII をマスキングします。各モードは独立しています) |
| 監視のみ | INPUT_SANITIZER_ENABLED=true、INPUT_SANITIZER_MODE=warn — ログには記録しますが、ブロックは行いません |
| 個人利用 | すべて無効のままにします — オーバーヘッドはゼロです |
6. ツールおよびルーティングポリシー
Section titled “6. ツールおよびルーティングポリシー”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
TOOL_POLICY_MODE |
disabled |
src/lib/toolPolicy.ts |
LLMのツール/関数呼び出しへのアクセスを制御します。allowlist = 一覧に記載されたツールのみ、denylist = 一覧に記載されたもの以外すべて、disabled = 制限なし。 |
OMNIROUTE_PAYLOAD_RULES_PATH |
./config/payloadRules.json |
open-sse/services/payloadRules.ts |
ペイロード操作ルールのJSONファイルへのパス(モデル/プロトコルごとのアップストリーム調整)。 |
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS |
5000 |
open-sse/services/payloadRules.ts |
ペイロードルールファイルをホットリロードする間隔(ミリ秒)。最小値は1000。 |
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS |
false |
open-sse/services/model.ts |
オプトイン設定:Claude Codeクライアントから送られるプロバイダープレフィックスなしのclaude-*モデルIDを、プロバイダープレフィックス必須とせず、Claude Code OAuthアカウント経由でルーティングします。明示的なプロバイダープレフィックスがある場合は、引き続きそちらが優先されます。Claudeプロバイダーページのダッシュボードトグルからも設定できます。 |
COMBO_CONCURRENCY_PER_MODEL |
3 |
open-sse/services/comboConfig.ts |
ラウンドロビンコンボのモデルごとの同時実行数上限(#9100)。ラウンドロビンコンボのセマフォは、上書き不可でモデルごとに同時リクエスト3件へハードキャップされていたため、それを超える同時実行トラフィックは上限の後ろで直列化されていました。>= 1で検証され、<= 32に制限されます。 |
DISABLE_CONTEXT_WINDOW_CHECKS |
false |
open-sse/handlers/chatCore.ts |
直接の単一モデルリクエストに対するOmniRouteのローカルコンテキストウィンドウ/最大入力トークンチェックをスキップする、危険なオプトイン設定です。アップストリームプロバイダーでは引き続き実際の上限が適用され、プロンプト圧縮とモデル自体の出力トークン上限も有効なままです。有効な優先順位は、Feature Flags DBによる上書き > 環境変数 > デフォルトです。再起動は不要です。 |
OMNIROUTE_SELF_HOSTED_PROVIDERS |
(未設定) | open-sse/services/selfHostedEntry.ts |
インラインYAMLのproviders:ドキュメント(RIC-738、D4)。設定すると(strategy:ブロックの有無にかかわらず)、/v1/chat/completionsはクラウドパイプラインではなく、セルフホストされた統合OpenAI互換エントリへ転送されます。未設定(デフォルト)の場合、ルートは既存のクラウドパイプラインへそのままフォールスルーします。docs/routing/SELF_HOSTED_OPENAI_ENTRY.mdを参照してください。 |
OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE |
(未設定) | open-sse/services/selfHostedEntry.ts |
インライン環境変数よりファイルを使用したいデプロイメント向けに、OMNIROUTE_SELF_HOSTED_PROVIDERSと同じproviders:ドキュメントを格納するYAMLファイルへのパスです。どちらか一方を設定すると、セルフホストエントリが有効になります。 |
OMNIROUTE_SELF_HOSTED_API_KEY |
(未設定 — オープンルート) | open-sse/services/selfHostedEntry.ts |
統合セルフホストエントリ用のオプションの共有APIキー(D5スキャフォールド、キーごとのクォータシステム用に予約)。設定した場合、リクエストにAuthorization: Bearer <key>を含める必要があります。未設定の場合、ルートはオープンとなり、既存のセルフホスト型ローカルプロバイダーパターン(ループバック/信頼済みネットワークへのデプロイ)と一致します。 |
OMNIROUTE_SELF_HOSTED_STRATEGY |
(未設定) | open-sse/services/routingStrategies.ts |
決定論的ルーティングエンジン用のインラインYAMLのstrategy:ドキュメント(M2/RIC-740、D3)— ブラックリスト/ホワイトリスト、クールダウンブレーカー、コスト優先、レイテンシー考慮、フォールバックチェーン。キーごとに、OMNIROUTE_SELF_HOSTED_PROVIDERS内にネストされたインラインstrategy:ブロックを上書きします。docs/routing/DETERMINISTIC_ROUTING.mdを参照してください。 |
OMNIROUTE_SELF_HOSTED_STRATEGY_FILE |
(未設定) | open-sse/services/routingStrategies.ts |
インライン環境変数よりファイルを使用したいデプロイメント向けに、OMNIROUTE_SELF_HOSTED_STRATEGYと同じstrategy:ドキュメントを格納するYAMLファイルへのパスです。 |
OMNIROUTE_DISABLE_CONVERSATION_TRACKING |
(未設定) | open-sse/services/conversationTracker.ts |
会話履歴の収集を停止するには 1 を設定します。resolveConversationId() は、SQLite の読み取りやメッセージ履歴の解析を行う前に、追跡対象外の結果を返します。クライアントから指定されたセッション ID も対象です。ルーティングセッションの処理は変更されず、既存のレコードも削除されません。ダッシュボードの会話ビューを使用せず、ターンテーブルの増加を止めたいデプロイ環境向けです。 |
7. URL とクラウド同期
Section titled “7. URL とクラウド同期”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
BASE_URL |
http://localhost:20128 |
src/lib/cloudSync.ts |
内部同期ジョブが /api/sync/cloud を呼び出すためのサーバー側 URL。アプリが公開プロキシ経由で提供されている場合でも、ループバック URL またはコンテナ URL のままにしてください。 |
CLOUD_URL |
(空) | src/lib/cloudSync.ts |
クラウドリレーエンドポイントの URL(プレミアム機能)。 |
CLOUD_SYNC_TIMEOUT_MS |
12000 |
src/lib/cloudSync.ts |
クラウド同期リクエストの HTTP タイムアウト。 |
OMNIROUTE_BUILD_PROFILE |
full |
Webpack ビルド設定 | ビルド時のプロファイル(権限付きモジュールをバンドルから物理的に除外するには minimal に設定)。 |
OMNIROUTE_STANDALONE_DIR |
.build/ スタンドアロン出力 | scripts/build/colocate-standalone.mjs |
ビルド後の併置処理で使用されるスタンドアロン出力ディレクトリのビルド時オーバーライド。ランタイム設定ではありません。 |
OMNIROUTE_CLOUD_SYNC_SECRET |
(空) | src/lib/cloudSync.ts |
Cloud Sync レスポンスの HMAC-SHA256 署名を検証するために使用される共有シークレット。 |
OMNIROUTE_CLOUD_SYNC_SECRETS |
false |
src/lib/cloudSync.ts |
Cloud Sync エンドポイントによるローカル認証情報の上書きを許可するには、true に設定します。デフォルトは false です。 |
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE |
false |
src/lib/cloudSync.ts |
ローカルシークレットが設定されていない場合に、署名のない Cloud Sync レスポンスを拒否するには、true に設定します(#13679)。このフラグに関係なく、署名が存在する場合は常に検証され、OMNIROUTE_CLOUD_SYNC_SECRET が未設定の場合は必ず拒否されます。v3.9 では、デフォルトで署名が必須になります。 |
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP |
false |
src/app/api/providers/zed/import/route.ts |
ユーザーの確認なしで、v3.8.5 のワンステップ式「すべてをインポート」動作にフォールバックするには、true に設定します。 |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
OAuth、ダッシュボード、同期 | OAuth の redirect_uri、ダッシュボードのリンク、および生成される公開 URL に使用する公開 URL。OAuth コールバックまたは生成されるブラウザーリンクで正規のリバースプロキシホストを使用する必要がある場合は、安定した公開 URL に設定します。 |
NEXT_PUBLIC_CLOUD_URL |
(空) | クライアント側 | CLOUD_URL のクライアント側ミラー。 |
NEXT_PUBLIC_APP_URL |
(未設定) | src/shared/services/cloudSyncScheduler.ts |
NEXT_PUBLIC_BASE_URL のレガシーフォールバック。 |
NEXT_PUBLIC_PORT |
(未設定 — PORT にフォールバック) |
src/shared/hooks/useDisplayBaseUrl.ts |
オリジンが不明な場合(SSR/テスト)に表示 URL で使用するクライアント側のフォールバックポート。PORT より先に読み取られます。 |
OMNIROUTE_PUBLIC_BASE_URL |
(未設定) | パブリックオリジンリゾルバー、画像 URL | パブリック URL の生成およびダッシュボード以外でのブラウザーオリジン検証に使用される、ブラウザー向け OmniRoute オリジンのうち最優先のもの。OpenWebUI または別のリレーが内部 URL で OmniRoute にアクセスする一方、ユーザーのブラウザーが LAN、トンネル、またはパブリックオリジンから生成済みメディアを取得する必要がある場合に設定します。/v1 は含めないでください。 |
OMNIROUTE_PROVIDER_MANIFEST_URL |
(未設定) | open-sse/config/providerPluginManifestUrl.ts |
サイドカークライアントに通知される、プロバイダープラグインマニフェストの絶対 URL。未設定の場合、OmniRoute はリクエストオリジンまたは HOST/PORT から /api/v1/provider-plugin-manifest を導出します。 |
OMNIROUTE_PUBLIC_PROTOCOL |
http |
open-sse/config/providerPluginManifestUrl.ts |
リクエストオリジンを使用せず、HOST/PORT からプロバイダープラグインマニフェスト URL を導出する際に使用するプロトコル。明示的な OMNIROUTE_PROVIDER_MANIFEST_URL が設定されていない状態で、TLS を終端するパブリックプロキシの背後に配置する場合は https に設定します。 |
OMNIROUTE_TRUST_PROXY |
(未設定) | src/server/origin/publicOrigin.ts |
転送されたパブリックオリジンヘッダーに対する任意の信頼モード。未設定 = セキュリティ上の判断で Forwarded / X-Forwarded-* を信頼しません。true / loopback は、トークンが付与されたループバックプロキシからの場合に限り、転送されたホスト/プロトコルを信頼します。private / lan は、プライベート LAN のプロキシピアも信頼します。本番環境では、明示的な NEXT_PUBLIC_BASE_URL を推奨します。 |
KIE_CALLBACK_URL |
(未設定) | open-sse/utils/kieTask.ts |
非同期 kie.ai ジョブ用のパブリックコールバック URL。OMNIROUTE_KIE_CALLBACK_URL および OMNIROUTE_PUBLIC_URL より優先される最優先のオーバーライド。 |
OMNIROUTE_KIE_CALLBACK_URL |
(未設定) | open-sse/utils/kieTask.ts |
KIE_CALLBACK_URL の別表記。主要変数が未設定の場合にフォールバックします。 |
OMNIROUTE_PUBLIC_URL |
(未設定) | open-sse/utils/kieTask.ts |
非同期コールバック URL の構成に使用するパブリックオリジン。kie.ai コールバックでは最も優先度の低いフォールバックであり、他のリレーの汎用パブリック URL としても使用されます。 |
OMNIROUTE_CROF_USAGE_URL |
https://crof.ai/usage_api/ |
open-sse/services/usage.ts |
Usage ページで使用される CrofAI クォータ照会エンドポイント。リレー/テストフィクスチャ向けにオーバーライドできます。 |
OMNIROUTE_OPENCODE_QUOTA_URL |
https://opencode.ai/zen/go/v1/usage |
open-sse/services/opencodeQuotaFetcher.ts |
Usage ページで使用される、API キー認証対応の公式 OpenCode Go 使用量エンドポイント。リレー/テストフィクスチャ向けにオーバーライドできます。 |
OPENCODE_SYNTHESIZE_CLI_HEADERS |
true |
open-sse/executors/opencode.ts |
クライアントが送信しなかった場合に、opencode-go/zen のアップストリームリクエストへ OpenCode CLI 識別ヘッダー(User-Agent、x-opencode-client/project、リクエスト/セッション UUID)を合成し、VPS からの送信を Cloudflare が受け入れられるようにします(#6210/#5997)。#10571 以降はデフォルトで有効です。無効にするには false/0/no/off を指定します。 |
OPENCODE_USER_AGENT |
opencode/1.18.31 |
open-sse/utils/opencodeHeaders.ts |
OPENCODE_SYNTHESIZE_CLI_HEADERS が有効で、プロバイダーごとの <PROVIDER>_USER_AGENT オーバーライドが設定されていない場合に使用されるデフォルトの User-Agent。opencode executor にのみ適用されます。アップストリームによって制限されるキーレスリクエストでは、設定値に opencode/<version >= 1.17> が含まれていない場合、拒否される代わりにこのデフォルト値へ置き換えられます。 |
OPENCODE_CLIENT |
desktop |
open-sse/executors/opencode.ts |
OPENCODE_SYNTHESIZE_CLI_HEADERS が有効な場合に、生成される x-opencode-client ヘッダーに使用する値。 |
OPENCODE_PROJECT |
global |
open-sse/executors/opencode.ts |
OPENCODE_SYNTHESIZE_CLI_HEADERS が有効な場合に、生成される x-opencode-project ヘッダーに使用する値。 |
OPENCODE_FREE_TIER_REQUEST_CONTRACT |
(未設定) | open-sse/executors/opencodeFreeTierContract.ts |
off に設定すると、キーなしの OpenCode リクエストのボディ(ストリーミングフラグとツールリスト)の調整を停止します。ヘッダーは引き続き適用されます。リクエストごとに読み込まれるため、変更は即座に反映されます。 |
OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS |
(未設定) | open-sse/executors/opencodeFreeTierContract.ts |
ツールを含まないキーなしの OpenCode リクエストに対して、そのモデルでまだ何も観測されていない場合に宣言するツール名のカンマ区切りリスト。空の場合は、モデルに呼び出さないよう指示される単一のプレースホルダーにフォールバックします。最大 32 エントリで、形式は [A-Za-z_][A-Za-z0-9_-]{0,63}。無効なエントリは無視されます。 |
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL |
https://ollama.com/settings |
open-sse/services/usage.ts |
クォータのスクレイピングに使用する Ollama Cloud の設定 URL。リレーやテストフィクスチャ用に上書きできます。 |
OLLAMA_USAGE_COOKIE |
(未設定) | open-sse/services/usage.ts |
設定ページからのクォータのスクレイピングに使用する Ollama Cloud の __Secure-session Cookie。機密情報です。複数のアカウントを設定する場合は、接続ごとのダッシュボードフィールドを使用してください。 |
OLLAMA_CLOUD_USAGE_COOKIE |
(未設定) | open-sse/services/usage.ts |
Ollama Cloud の __Secure-session Cookie 用の代替環境変数。機密情報です。複数のアカウントを設定する場合は、接続ごとのダッシュボードフィールドを使用してください。 |
OMNIROUTE_OLLAMA_USAGE_COOKIE |
(未設定) | open-sse/services/usage.ts |
短い別名より先に使用される、Ollama Cloud の __Secure-session Cookie 用の代替環境変数。機密情報です。複数のアカウントを設定する場合は、接続ごとのダッシュボードフィールドを使用してください。 |
OMNIROUTE_CODEWHISPERER_BASE_URL |
https://codewhisperer.us-east-1.amazonaws.com |
open-sse/services/usage.ts |
CodeWhisperer(AWS Kiro)の使用量制限エンドポイント。リレーやテストフィクスチャ用に上書きできます。 |
[!IMPORTANT] リバースプロキシ(nginx、Caddy)の背後にデプロイする場合、OAuth コールバックまたは生成される公開リンクでそのホスト名を使用する必要があるときは、
NEXT_PUBLIC_BASE_URLを安定した公開 URL(例:https://omniroute.example.com)に設定してください。これを設定しないと、redirect_uri が一致せず OAuth コールバックが失敗したり、生成された公開リンクが内部コンテナのオリジンを指したりする可能性があります。サーバー間ジョブでは、
BASE_URLを内部ループバック/コンテナ URL のままにしてください。認証情報を伴う内部セルフフェッチには、ブラウザーのOriginや公開ホスト名を使用しないでください。認証済みのダッシュボードからの書き込みには、静的な公開ベース URL は不要です。ダッシュボードは、セッションに紐付けられた CSRF トークンを使用して、同一オリジンの安全でないリクエストを送信します。OmniRoute は、ダッシュボード以外のブラウザー統合向けの公開オリジン検証を引き続き一元管理します。明示的な公開 URL の環境変数が最初に信頼されます。未加工の
Forwarded/X-Forwarded-*ヘッダーは、OMNIROUTE_TRUST_PROXYが有効で、かつ直近のプロキシピアがトークンによって信頼済みとしてマークされていない限り無視されます。同一オリジンのダッシュボードリクエストを修正するために CORS 設定を使用しないでください。CORS はクロスオリジンのブラウザークライアント専用です。
8. アウトバウンドプロキシ
Section titled “8. アウトバウンドプロキシ”送信制御、ジオルーティング、または IP マスキングのために、アップストリーム LLM プロバイダーへの呼び出しを HTTP または SOCKS5 プロキシ経由でルーティングします。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
ENABLE_SOCKS5_PROXY |
true |
open-sse/executors |
アップストリーム呼び出しに対して SOCKS5 プロキシエージェントを有効にします。false で無効化できます。 |
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY |
true |
クライアント側 | SOCKS5 が利用可能であることをクライアント側で認識できるようにします。 |
PROXY_SKIP_RECENTLY_FAILED |
false |
src/shared/utils/featureFlags.ts |
オプトインの機能フラグです(FEATURE_FLAGS.md を参照。ダッシュボードの DB オーバーライドが優先されます)。プロキシプールおよびアカウントごとのローテーションでは、直前に失敗したメンバー(TCP プローブが拒否された、またはそのメンバー経由で 429 が返された)を、失敗の繰り返しごとに上限まで倍増する期間中、再度割り当てません。true(または 1、yes)で有効になります。 |
HTTP_PROXY |
(未設定) | Node.js 標準 | アップストリーム呼び出し用の HTTP プロキシです。 |
HTTPS_PROXY |
(未設定) | Node.js 標準 | アップストリーム呼び出し用の HTTPS プロキシです。 |
ALL_PROXY |
(未設定) | Node.js 標準 | 汎用プロキシです(socks5:// をサポート)。 |
OMNIROUTE_PROXY_ECHO_URL |
(未設定) | src/lib/proxyEchoTarget.ts |
プロキシ送信プローブで使用するエコー IP のターゲットを単一の URL に固定します。未設定の場合、プローブは api64.ipify.org、次に api4.ipify.org を試行するため、IPv4 のみのトンネルが停止中と誤って報告されることはありません(#9694)。 |
NO_PROXY |
(未設定) | Node.js 標準 | プロキシをバイパスするホスト名/IP をカンマ区切りで指定します。 |
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS |
32 |
open-sse/utils/proxyDispatcher.ts |
キャッシュされた HTTP/SOCKS プロキシディスパッチャーごとの最大同時ソケット数です。複数のリクエストが同じアカウントレベルのプロキシを共有する場合、Codex /v1/responses などの長時間持続する SSE ストリームには複数の接続が必要です。256 を超える値は上限で制限されます。 |
SOCKS_HANDSHAKE_TIMEOUT_MS |
10000 |
open-sse/utils/socksConnectorWithFamily.ts |
SOCKS5 ハンドシェイク(接続)のタイムアウト(ミリ秒)です。単一の住宅用ゲートウェイホストに高い同時実行負荷(例: 100 件の同時リクエスト)がかかる場合は、この値を増やしてください。プロキシに到達可能であっても、飽和したプールでは実際のハンドシェイクが 10 秒を超えることがあり、そのままでは誤った [Proxy Fast-Fail] Proxy unreachable として現れます。上限は 120000 です。 |
PROXY_FAIL_OPEN |
false |
src/sse/handlers/chatHelpers.ts |
false(デフォルト)の場合、割り当てられたプロキシの解決に失敗したリクエストは、直接接続へフォールバックせずに 拒否(フェイルクローズ) されます。これにより、実 IP の漏えいを防止します。従来の DIRECT フォールバックを復元するには true に設定します。 |
ENABLE_TLS_FINGERPRINT |
false |
open-sse/executors |
wreq-js を使用して TLS フィンガープリントを偽装します(Chrome 124 を模倣)。JA3/JA4 によるブロックを回避します。 |
TLS_FINGERPRINT_PROVIDERS |
(未設定) | open-sse/utils/proxyFetch.ts |
新しいプロキシ経由の TLS ルーティング(open-sse/utils/proxyFetch.ts)で使用する、プロバイダーのカンマ区切り許可リスト。未設定の場合、直接 TLS は従来の動作を維持し、ここで指定したプロバイダーのみが Chrome-124 フィンガープリントブリッジを経由します。 |
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS |
false |
open-sse/services/claudeTurnstileSolver.ts |
Claude Turnstile の Playwright ブラウザーコンテキストで HTTPS 証明書エラーを無視できるようにします。 |
| シナリオ | 設定 |
|---|---|
| SSH トンネル経由の SOCKS5 | ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true |
| 企業 HTTP プロキシ | HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com |
| フィンガープリント対策 | ENABLE_TLS_FINGERPRINT=true — wreq-js(同梱)が必要 |
| 送信制御あり / 直接アクセス不可 | PROXY_FAIL_OPEN=false(デフォルト)のままにします。プロキシが利用できない場合、直接接続による漏えいを避けるため、リクエストは即座に失敗します。 |
| レガシー / 開発環境 — 直接接続へのフォールバックを許可 | PROXY_FAIL_OPEN=true。強化前の動作に戻し、プロキシの解決に失敗した場合は直接接続を使用します。 |
注記(NVIDIA 検証バイパス — #3226): NVIDIA の API キー検証エンドポイントは、 グローバルプロキシ/TLS パッチ適用済みの fetch(undici dispatcher → 504)経由でルーティングすると停止します。
src/lib/providers/validation.ts::directHttpsRequest()は、その 1 回の検証呼び出しに限り、safeOutboundFetch({ bypassProxyPatch: true })を使用して意図的にプロキシパッチをバイパスします。 これは文書化された限定的な例外であり、チャット/使用状況の送信には影響しません。 バイパスの適用範囲はtests/unit/proxy-bypass-scope-guard-3226.test.tsによって固定されています。
9. CLIツールの統合
Section titled “9. CLIツールの統合”OmniRoute が CLI サイドカー(Claude Code、Codex など)を検出して起動する方法を制御します。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
CLI_MODE |
auto |
src/shared/services/cliRuntime.ts |
auto = システムの PATH を検索します。manual = 明示的に指定されたパスのみを使用します。 |
CLI_EXTRA_PATHS |
(未設定) | src/shared/services/cliRuntime.ts |
CLI バイナリを検出するための追加の PATH エントリ(コロン区切り)。 |
CLI_CONFIG_HOME |
(未設定) | src/shared/services/cliRuntime.ts |
CLI 設定(~/.claude、~/.codex)の読み取りに使用するホームディレクトリを上書きします。絶対パスであり、プロセスのホーム内に存在する必要があります。または、コンテナ内ではバインドマウントされたパスも使用できます(/host-home はこの仕組みで動作します)。それ以外の場合はホームディレクトリにフォールバックします。 |
CLI_ALLOW_CONFIG_WRITES |
true |
src/shared/services/cliRuntime.ts |
OmniRoute による CLI 設定ファイルへの書き込み(トークンの更新、セッションデータ)を許可します。false に設定すると、CLI 設定へのすべての書き込みが明示的な「書き込みが無効です」というエラーで失敗します。 |
CLI_CLAUDE_BIN |
claude |
src/shared/services/cliRuntime.ts |
Claude CLI バイナリへのカスタムパス。 |
CLI_CODEX_BIN |
codex |
src/shared/services/cliRuntime.ts |
Codex CLI バイナリへのカスタムパス。 |
CLI_DROID_BIN |
droid |
src/shared/services/cliRuntime.ts |
Droid CLI バイナリへのカスタムパス。 |
CLI_OPENCLAW_BIN |
openclaw |
src/shared/services/cliRuntime.ts |
OpenClaw CLI バイナリへのカスタムパス。 |
CLI_CURSOR_BIN |
agent、次に cursor |
src/shared/services/cliRuntime.ts |
Cursor エージェントバイナリへのカスタムパス。指定しない場合、検出では最初に agent を試し、見つからなければ cursor にフォールバックします。 |
CLI_CLINE_BIN |
cline |
src/shared/services/cliRuntime.ts |
Cline CLI バイナリへのカスタムパス。 |
CLI_5DIVE_BIN |
5dive |
src/shared/services/cliRuntime.ts |
5dive CLI バイナリへのカスタムパス。 |
CLI_5DIVE_STATE_DIR |
/var/lib/5dive |
src/shared/services/cliRuntime.ts |
5dive のシステム状態ディレクトリ(root が所有する認証プロファイル)。5dive 自体の STATE_DIR のデフォルトと同じです。 |
CLI_CONTINUE_BIN |
cn |
src/shared/services/cliRuntime.ts |
Continue CLI バイナリへのカスタムパス。 |
CLI_QODER_BIN |
qodercli |
src/shared/services/cliRuntime.ts |
Qoder CLI バイナリへのカスタムパス。 |
CLI_QWEN_BIN |
qwen |
src/shared/services/cliRuntime.ts |
Qwen Code CLI バイナリへのカスタムパス。 |
CLI_AIDER_BIN |
aider |
src/shared/services/cliRuntime.ts |
Aider CLI バイナリへのカスタムパス。 |
CLI_GOOSE_BIN |
goose |
src/shared/services/cliRuntime.ts |
Goose CLI バイナリへのカスタムパス。 |
CLI_GEMINI_BIN |
gemini |
src/shared/services/cliRuntime.ts |
Google Gemini CLI バイナリへのカスタムパス。サーバー側の検出およびヘルスチェックにのみ使用されます。omniroute run gemini はシステムの PATH から gemini バイナリを解決します。 |
CLI_KILO_BIN |
kilocode |
src/shared/services/cliRuntime.ts |
Kilo Code CLI バイナリへのカスタムパス。 |
CLI_OPENCODE_BIN |
opencode |
src/shared/services/cliRuntime.ts |
OpenCode CLI バイナリへのカスタムパス。 |
CLI_HERMES_BIN |
hermes |
src/shared/services/cliRuntime.ts |
Hermes バイナリへのカスタムパス。両方のカタログエントリ(hermes および hermes-agent)で共有されます。 |
CLI_FORGE_BIN |
forge |
src/shared/services/cliRuntime.ts |
ForgeCode CLI バイナリへのカスタムパス。 |
CLI_JCODE_BIN |
jcode |
src/shared/services/cliRuntime.ts |
jcode CLI バイナリへのカスタムパス。 |
CLI_DEEPSEEK_TUI_BIN |
deepseek-tui |
src/shared/services/cliRuntime.ts |
DeepSeek TUI バイナリへのカスタムパス。 |
CLI_CODEWHALE_BIN |
codewhale |
src/shared/services/cliRuntime.ts |
CodeWhale CLI バイナリへのカスタムパス。 |
CLI_SMELT_BIN |
smelt |
src/shared/services/cliRuntime.ts |
Smelt CLI バイナリへのカスタムパス。 |
CLI_PI_BIN |
pi |
src/shared/services/cliRuntime.ts |
Pi(pi-coding-agent)バイナリへのカスタムパス。 |
CLI_CRUSH_BIN |
crush |
src/shared/services/cliRuntime.ts |
Crush CLI バイナリへのカスタムパス。 |
CLI_OMP_BIN |
omp |
src/shared/services/cliRuntime.ts |
Oh My Pi(omp)エージェントバイナリへのカスタムパス。 |
CLI_LETTA_BIN |
letta |
src/shared/services/cliRuntime.ts |
Letta CLI バイナリへのカスタムパス。 |
CLI_PRIME_AGENT_BIN |
prime-agent |
src/shared/services/cliRuntime.ts |
Prime Agent(Prime Intellect)バイナリへのカスタムパス。 |
CLI_WINDSURF_BIN |
(なし) | src/shared/services/cliRuntime.ts |
Windsurf バイナリへのカスタムパス。Windsurf にはデフォルトコマンドが付属していません。この値が設定されるまで、バイナリ検出は無効のままです。 |
CLI_DEVIN_BIN |
devin |
open-sse/executors/devin-cli.ts |
Devin CLI バイナリ(v3.8.0)へのカスタムパス。Windsurf/Devin エグゼキューターによって使用されます。 |
DEVIN_DESKTOP_VERSION |
3.6.27 |
open-sse/executors/devin-desktop.ts |
Devin Desktop の ide_version。オーバーライドには x.y.z 形式を使用する必要があります。無効な値の場合は、検証済みのデフォルト値にフォールバックします。 |
DEVIN_DESKTOP_EXTENSION_VERSION |
1.48.2 |
open-sse/executors/devin-desktop.ts |
バンドルされている Codeium/language-server の extension_version。Desktop の ide_version とは別のものです。オーバーライドには x.y.z を使用する必要があります。無効な値の場合は、バンドルされているデフォルト値が使用されます。 |
CLI_DEVIN_AGENTIC_BIN |
devin |
open-sse/executors/devin-cli-agentic.ts |
Agentic ブリッジ専用の Devin CLI オーバーライド。エグゼキューターは、ローカルの ACP stdio アップストリームのみを受け入れます。 |
DEVIN_AGENTIC_HOME |
(必須) | open-sse/executors/devin-cli-agentic.ts |
Agentic Devin サブプロセス用の絶対パスで指定する分離されたホーム。許可されるブリッジパスは /home/bridge およびタスクローカルの .sandbox パスです(Windows では C:\...\.sandbox\...)。 |
DEVIN_AGENTIC_ACP_TIMEOUT_MS |
120000 |
open-sse/executors/devin-cli-agentic.ts |
ブリッジが子プロセスを終了して明示的なタイムアウトを返すまでの、1 回の Devin ACP ターンの最大時間。 |
DEVIN_BRIDGE_MODEL |
devin-cli-agentic/swe-1-7 |
docker/devin-bridge/compose.yml |
分離されたブリッジ用のメイン Claude Code モデルエイリアス。ライブハーネスは、この例の値を現在の Devin アカウントから返されたモデルに置き換えます。 |
DEVIN_BRIDGE_SONNET_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Claude Code がデフォルトの Sonnet をリクエストしたときに使用される、分離されたブリッジのエイリアス。 |
DEVIN_BRIDGE_OPUS_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Claude Code がデフォルトの Opus をリクエストしたときに使用される、分離されたブリッジのエイリアス。 |
DEVIN_BRIDGE_HAIKU_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Claude Code がデフォルトの Haiku をリクエストしたときに使用される、分離されたブリッジのエイリアス。 |
DEVIN_BRIDGE_SUBAGENT_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Claude Code のサブエージェントに使用される、分離されたブリッジのエイリアス。 |
DEVIN_SEAT_API_URL |
https://server.codeium.com |
open-sse/services/usage/devinCli.ts |
Devin CLI のクォータ(GetUserStatus)で使用される Codeium シート管理 API のオプションのオーバーライド。 |
AUGGIE_BIN |
auggie |
open-sse/executors/auggie.ts |
ローカルの auggie プロバイダーで使用される Augment(Auggie)CLI バイナリの絶対パスによるオーバーライド。未指定の場合は CLI_AUGGIE_BIN、次に PATH 検索へフォールバックします。 |
CLI_AUGGIE_BIN |
auggie |
open-sse/executors/auggie.ts |
Augment(Auggie)CLI バイナリパスのエイリアスによるオーバーライド(AUGGIE_BIN の後に確認されます)。 |
ZCODE_BIN |
zcode |
open-sse/executors/zcode.ts |
ローカルの zcode プロバイダーの stdio クライアントに使用されるバイナリ。未指定の場合は PATH 上の zcode にフォールバックします。 |
ZCODE_ARGS |
— | open-sse/executors/zcode.ts |
cliTools 経由で起動するときに zcode バイナリへ渡される追加引数の JSON 配列(16 個以下の文字列)。 |
ZCODE_CWD |
process.cwd() |
open-sse/executors/zcode.ts |
ZCode アプリサーバーのサブプロセス用作業ディレクトリ。 |
ZCODE_PROVIDER_ID |
builtin:zai-coding-plan |
open-sse/executors/zcode.ts |
アプリサーバーへ送信されるプロバイダー ID のオーバーライド。 |
ZCODE_SERVER_RUNTIME_ROOT |
~/.zcode/server |
open-sse/executors/zcode.ts |
ZCode アプリサーバーランタイムのルート(バンドルされた node と zcode-server.cjs が配置される場所)。 |
ZCODE_SERVER_NODE |
<runtimeRoot>/node |
open-sse/executors/zcode.ts |
ZCode アプリサーバーのホストに使用される Node 実行可能ファイル。 |
ZCODE_SERVER_ENTRY |
<runtimeRoot>/zcode-server.cjs |
open-sse/executors/zcode.ts |
ZCode サーバーのホストに使用されるアプリサーバーのエントリースクリプト。 |
ZCODE_STARTUP_TIMEOUT_MS |
10000 |
open-sse/executors/zcode.ts |
ZCode アプリサーバーの起動が失敗したと見なされるまでの起動タイムアウト(ミリ秒)。 |
ZCODE_RPC_TIMEOUT_MS |
30000 |
open-sse/executors/zcode.ts |
ZCode アプリサーバー呼び出しに対するリクエスト単位の RPC タイムアウト(ミリ秒)。 |
ZCODE_TURN_TIMEOUT_MS |
120000 |
open-sse/executors/zcode.ts |
スーパーバイザーがタイムアウトさせるまでの 1 回の ZCode ターンの最大継続時間(ミリ秒)。 |
ZCODE_POLL_INTERVAL_MS |
250 |
open-sse/executors/zcode.ts |
ZCode ターンの完了を確認するポーリング間隔(ミリ秒)。 |
HERMES_HOME |
~/.hermes |
src/lib/cli-helper/config-generator/hermesHome.ts |
OmniRoute が Hermes CLI 設定を読み書きする Hermes Agent ホームディレクトリ。Windows で Hermes PowerShell インストーラーが設定する環境変数(%LOCALAPPDATA%\hermes)と一致します。 |
CLI プロファイルの自動同期
Section titled “CLI プロファイルの自動同期”これらの機能フラグはオプトインであり、デフォルトでは無効です。 CLI Code ダッシュボードから切り替えることもできます。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
false |
src/shared/constants/featureFlagDefinitions.ts |
プロバイダーモデルの同期後、ライブカタログに基づいて ~/.codex/*.config.toml プロファイルファイルを自動的に書き換えます。CLI_ALLOW_CONFIG_WRITES が必要です。アクティブ/デフォルトの Codex 設定、認証、Codex-lb 設定、またはプロバイダーの選択は変更しません。 |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
false |
src/shared/constants/featureFlagDefinitions.ts |
プロバイダーモデルの同期後、ライブカタログに基づいて ~/.claude/profiles/<name>/settings.json の Claude Code プロファイルファイルを自動的に書き換えます。CLI_ALLOW_CONFIG_WRITES が必要です。アクティブ/デフォルトの Claude 設定、認証、またはプロバイダーの選択は変更しません。 |
Docker の例
Section titled “Docker の例”# ホストのバイナリをコンテナにマウントし、その場所を OmniRoute に指定します:CLI_EXTRA_PATHS=/host-cli/binCLI_CONFIG_HOME=/host-homeCLI_ALLOW_CONFIG_WRITES=trueCLI_CLAUDE_BIN=/host-cli/bin/claudeCLI_CONFIG_HOME は、パスが実際にホストからバインドマウントされている場合にのみ有効です。~/.codex:/host-home/.codex:rw のようなマウントと組み合わせてください(docker-compose.yml の host プロファイルを参照)。コンテナユーザーのホーム内にもバインドマウント内にもないパスは無視されます。そこに書き込んでも、コンテナの再作成時に破棄されるためです。
イメージは USER node として実行されるため、マウントされていない /root は有効なオーバーライド先ではありません。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_CONTAINER |
(自動) | src/shared/utils/containerEnv.ts |
コンテナ検出を強制的に有効(1/true)または無効(0/false)にします。自動検出で検出できないランタイムでのみ必要です。 |
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE |
false |
src/shared/services/cliRuntime.ts |
マウントされていないコンテナパスへの CLI ツール設定の書き込みを許可します。CLI での同等の指定は --allow-container-write です。 |
CLI バイナリ(omniroute)のヘルパー
Section titled “CLI バイナリ(omniroute)のヘルパー”これらの変数は、omniroute CLI バイナリ自体の動作を調整します(上記のサイドカー検出とは異なります)。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_LANG |
(システム) | bin/cli/i18n.mjs |
CLI の出力言語を強制的に指定します。BCP-47 ロケール(例:en、pt-BR)。システムのロケール環境変数(LC_ALL、LC_MESSAGES)より優先されます。 |
OMNIROUTE_SHOW_LOG |
(未設定) | bin/cli/runtime/processSupervisor.mjs |
1 に設定すると、監視モードでサーバーの stdout/stderr をターミナルに転送します。omniroute serve の --log フラグと同等です。 |
OMNIROUTE_CLI_TOKEN |
(未設定) | bin/cli/api.mjs |
x-omniroute-cli-token ヘッダーとして注入されるマシン認証トークンです。タスク 8.12 で自動生成されます。 |
OMNIROUTE_HTTP_TIMEOUT_MS |
30000 |
bin/cli/api.mjs |
CLI → サーバーリクエストの試行ごとの HTTP タイムアウト(ミリ秒)です。 |
OMNIROUTE_READY_TIMEOUT_MS |
60000 |
bin/cli/utils/pid.mjs |
CLI がタイムアウト警告を表示するまでに、サーバーのヘルスエンドポイントを待機する最大時間(ミリ秒)です。遅いコールドスタート(例:Windows)に便利です。--ready-timeout でも設定できます。 |
OMNIROUTE_VERBOSE |
0 |
bin/cli/api.mjs |
1 に設定すると、CLI コマンドの実行中にリトライ/バックオフの診断情報を stderr に出力します。 |
OMNIROUTE_PLUGIN_PATH |
(未設定) | bin/cli/plugins.mjs |
CLI プラグイン検出用のカスタムディレクトリ(omniroute-cmd-* パッケージ)です。未設定時のデフォルトは ~/.omniroute/plugins/ です。CLI 専用であり、OMNIROUTE_PLUGINS_DIR(セクション 2)が指定するサーバー側のプラグインスキャナーには渡されません。 |
10. 内部エージェントと MCP の統合
Section titled “10. 内部エージェントと MCP の統合”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_BASE_URL |
自動検出 | open-sse/mcp-server/server.ts |
MCP/A2A ツールが OmniRoute にアクセスするための明示的な URL。localhost の自動検出を上書きします。 |
OMNIROUTE_API_KEY |
(未設定) | MCP/A2A モジュール | 内部 MCP ツールおよび A2A スキル呼び出し用の API キー。 |
OMNIROUTE_API_KEY_ID |
(未設定) | open-sse/mcp-server/audit.ts |
MCP 監査ログの帰属を示すキー ID。 |
ROUTER_API_KEY |
(未設定) | レガシー | OMNIROUTE_API_KEY のレガシーエイリアス。 |
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS |
30 |
src/lib/a2a/taskManager.ts |
日次パージで行が削除されるまで、A2A タスク履歴をローカルデータベースに保持する日数。未設定、数値以外、または <= 0 の場合は 30 にフォールバックします。 |
OMNIROUTE_A2A_MEMORY_HITS |
1 |
src/lib/a2a/taskExecution.ts |
A2A メモリヒット可観測性機能のキルスイッチ。0 に設定すると、タスクのメモリ再呼び出し検索を完全にスキップします。未設定を含むその他の値では有効なままになります。 |
OMNIROUTE_ISSUE_AGENT_ENABLED |
false |
src/app/api/issue-agent/runs/route.ts |
オフライン/ローカルの Issue Agent 記録済みトリアージエンドポイントを有効にします。ローカルの記録済みトリアージワークフローを明示的に実行する場合を除き、無効のままにしてください。 |
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS |
(未設定) | src/lib/issueAgent/execution.ts |
単一の Issue Agent 記録済みトリアージ実行のタイムアウト(ミリ秒)。内部の最大値に制限され、未設定または無効な場合は組み込みのデフォルト値にフォールバックします。 |
OMNIROUTE_CONTEXT |
(アクティブなコンテキスト) | bin/cli/program.mjs, bin/cli/api.mjs |
omniroute コマンドの CLI リモートモード用コンテキスト/プロファイル。ローカルのコンテキストストア内のアクティブなコンテキストを上書きします。--context <name> と同等です。 |
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED |
0 |
bin/cli/contexts.mjs |
CLI コンテキスト認証情報用のオプションの keytar OS キーチェーンバックエンドを無効にします。有効にすると、認証情報はモード 0600 の config.json に保持され、CLI はフォールバック警告を一度だけ出力します。意図的なヘッドレス/コンテナ運用を対象としています。 |
OMNIROUTE_MCP_ENFORCE_SCOPES |
false |
open-sse/mcp-server/server.ts |
MCP ツール呼び出しに対してスコープベースのアクセス制御を適用します。 |
OMNIROUTE_MCP_SCOPES |
(すべて) | open-sse/mcp-server/server.ts |
カンマ区切りのスコープ:admin、combos、health、models、routing、budget、metrics、pricing、memory、skills。 |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
false |
open-sse/mcp-server/descriptionCompressor.ts |
マニフェストをシリアライズする前に MCP ツールの説明を圧縮します。有効化する値:1、true、on。 |
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION |
rtk |
open-sse/mcp-server/descriptionCompressor.ts |
圧縮アルゴリズム/プロファイル。無効化する値:0、false、off。 |
OMNIROUTE_MCP_FETCH_TIMEOUT_MS |
10000 |
open-sse/mcp-server/fetchTimeout.ts |
MCP サーバー内部の管理読み取り(ヘルス、レジリエンス、コンボ、クォータ、使用量)に対する中止までの時間枠(ミリ秒)。 |
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS |
60000 |
open-sse/mcp-server/fetchTimeout.ts |
プロバイダーを待機する MCP ホップ(route_request、web_search、web_fetch)の中断タイムアウト(ミリ秒)。 |
OMNIROUTE_CORPUS_CACHE_SIZE |
5 |
src/lib/localCorpus/configured.ts |
メモリ内にキャッシュされるローカルコーパスのインデックスインスタンスの最大数(LRU、インデックス化されたルートディレクトリごとに 1 つ)。最小値 1 に制限されます。 |
MODEL_SYNC_INTERVAL_HOURS |
24 |
src/shared/services/modelSyncScheduler.ts |
モデルカタログの同期間隔(時間)。 |
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES |
70 |
src/lib/usage/providerLimits.ts |
プロバイダーのレート制限とクォータのポーリング間隔。 |
PROVIDER_LIMITS_SYNC_SPACING_MS |
1500 |
src/lib/usage/providerLimits.ts |
一括同期で OAuth クォータを連続取得する際の間隔(ミリ秒)。アップストリームへのアクセス集中を避けるため、OAuth 接続は一度に 1 つずつ取得されます。0 を指定すると無効(並行実行)になります。 |
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS |
250 |
open-sse/services/quotaFetchThrottle.ts |
リクエスト単位のプリフライト/監視パスで、アップストリームのクォータを連続取得する際の最小間隔(ミリ秒)。同一 IP 上の多数のアカウントからアップストリームへのアクセスが集中しないよう、並行ネットワーク呼び出しの間隔を空けます。Codex(/wham/usage)、DeepSeek、Bailian(両方の取得箇所)、OpenCode、および Crof のクォータ取得処理に組み込まれています(#6009、#6911)。汎用の usage.ts::getUsageForProvider ディスパッチパス(github/glm/minimax/nanogpt/xai/etc.)はまだ対象外で、別途追跡されています。キャッシュヒットには影響しません。0 で無効化され、0..5000 の範囲に制限されます。 |
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS |
5000 |
src/lib/usage/providerLimits.ts |
実際の使用イベント後、プロバイダー制限を更新するまでの遅延(ミリ秒)。アップストリームのクォータ API が消費量を反映するための時間を確保します。 |
OMNIROUTE_LOGIN_BROWSER_PATH |
自動検出 | open-sse/services/adobeFireflyBrowserLogin.ts |
Adobe Firefly の対話型サインインおよび画面外での更新に使用する、システムの Chrome または Edge 実行ファイルへの絶対パス。 |
ADOBE_FIREFLY_BROWSER_REFRESH |
有効 | open-sse/services/adobeFireflySession.ts |
アカウントスコープの Chrome CDP セッションを使用して、IMS とブラウザーリスク状態を最新に保ちます。ブラウザーによる更新を無効にするには 0 に設定します。 |
ADOBE_FIREFLY_SESSION_DISK |
有効 | open-sse/services/adobeFireflySession.ts |
修復された Adobe セッションを DATA_DIR 配下に永続化し、プロセスの再起動後も保持します。セッションをメモリ内のみに保持するには 0 に設定します。 |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
12000 |
open-sse/services/adobeFireflySession.ts |
Adobe Firefly の生成送信間の最小間隔(ミリ秒)。0 で間隔を無効にします。 |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
15000 |
open-sse/services/adobeFireflySession.ts |
Adobe への送信が 3 回成功するたびに設ける追加の待機時間(ミリ秒)。 |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
8000 |
open-sse/services/adobeFireflyClient.ts |
Adobe から一時的な 408 レスポンスを受信した後の基本バックオフ時間(ミリ秒)。最大 5 回の試行にわたり、送信間隔と組み合わせて適用されます。 |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
false |
src/instrumentation-node.ts |
すべてのバックグラウンドサービス(同期、価格設定、モデル更新)を無効にします。CI/テストに便利です。 |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
(未設定) | src/lib/config/runtimeSettings.ts |
自動テストが検出された場合でも、バックグラウンドタスクを強制的に有効にします。テスト判定を上書きするには 1 に設定します。 |
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS |
600000 |
src/lib/jobs/budgetResetJob.ts |
予算リセットの確認間隔(ミリ秒)。下限は 10000 です。 |
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS |
60000 |
src/lib/quota/connectionRecovery.ts |
プロアクティブな接続クールダウン復旧の実行間隔(ms):一時的な rate_limited_until が経過した接続を、リクエストのホットパス外で再検証します。下限は 5000。 |
OMNIROUTE_DISABLE_CONNECTION_RECOVERY |
false |
src/lib/quota/connectionRecovery.ts |
プロアクティブな接続クールダウン復旧スケジューラーを無効にします(getProviderCredentials での遅延復旧は引き続き適用されます)。 |
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS |
1800000 |
src/lib/jobs/reasoningCacheCleanupJob.ts |
推論キャッシュのクリーンアップ間隔(ms)。下限は 60000。 |
OMNIROUTE_REASONING_MIN_BUDGET |
未設定(無効) | open-sse/services/reasoningTokenBuffer.ts |
思考モデルの出力バジェットに対するオプトインの下限:呼び出し元の max_tokens が [256, floor) の範囲にある場合、下限まで引き上げられます(モデルの出力上限まで)。未設定の場合、クライアントのバジェットは拡大されません(#9507)。 |
OMNIROUTE_LOG_EXPORT_CRON |
0 * * * * |
src/lib/jobs/logExportJob.ts |
有効化されているすべてのログエクスポート先にコールログを排出するジョブの Cron 式(UTC)。 |
OMNIROUTE_CONFIG_HOT_RELOAD_MS |
5000 |
src/lib/config/hotReload.ts |
設定のホットリロードのポーリング間隔(ms)。1000 未満は拒否されます。 |
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE |
(有効) | src/lib/db/apiKeys.ts |
Redis ベースの API キー認証キャッシュを迂回するには 1 に設定します(DB 読み取りを強制します)。 |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
0 |
open-sse/services/compression/engines/rtk/filterLoader.ts |
ユーザー管理の RTK プロジェクトフィルタールールを、厳格な署名チェックなしで信頼します。 |
OMNIROUTE_LITE_MAX_TOOL_LENGTH |
2000 |
open-sse/services/compression/lite.ts |
lite.maxToolLength が未設定の場合に、Lite のプロアクティブなツール結果切り詰めに適用する文字数上限。範囲は 256~1000000。この環境変数よりもダッシュボード設定が優先されます。 |
OMNI_COMPRESSION_WORKERS |
2 |
open-sse/services/compression/compressionWorkerPool.ts |
同時実行可能な同期 RTK/Caveman ワーカーの最大数。超過したジョブは FIFO で待機します。 |
OMNI_COMPRESSION_WORKER_TIMEOUT_MS |
120000 |
open-sse/services/compression/compressionWorkerPool.ts |
ジョブごとのタイムアウト(ミリ秒)。タイムアウトしたワーカーは終了され、リクエストは変更されないままフェイルオープンします。 |
OMNI_COMPRESSION_WORKER_IDLE_MS |
60000 |
open-sse/services/compression/compressionWorkerPool.ts |
未使用の圧縮ワーカーが終了されるまでのアイドル時間(ミリ秒)。 |
COMPRESSION_PIPELINE_BREAKER_ENABLED |
false |
open-sse/services/compression/pipelineEngineBreaker.ts |
T02 スタック型パイプラインのエンジンごとのサーキットブレーカーを制御するマスタースイッチ。オプトイン(デフォルトではオフ) — オンの場合、リクエストをまたいで繰り返し例外をスローするエンジンは、クールダウン期間中スキップ(フェイルオープン)されます。オフの場合、従来の動作とバイト単位で同一です。 |
COMPRESSION_PIPELINE_BREAKER_THRESHOLD |
3 |
open-sse/services/compression/pipelineEngineBreaker.ts |
エンジンのブレーカーが開くまでに必要な、リクエストをまたぐ連続失敗回数。 |
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS |
30000 |
open-sse/services/compression/pipelineEngineBreaker.ts |
開いたエンジンがハーフオープンのプローブを実行するまでスキップされ続ける時間(ミリ秒)。 |
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR |
2 |
open-sse/services/compression/engines/ccr/index.ts |
T08/H8 CCR の取得フィードバックランプ:保存されたブロックが過去に取得されるたびに、その実効 minChars が線形に増加します(頻繁に取得されるコンテンツほど圧縮率が低くなり、取得回数が >=3 の場合は圧縮されません)。1 にするとランプが無効になります(しきい値でのバイナリスキップのみ)。 |
COMPRESSION_CCR_DURABLE_STORE |
true |
open-sse/services/compression/engines/ccr/index.ts |
CCR 永続ブロックストア(#9061)。インメモリストアを SQLite でバックアップすることで、LRU による退避、TTL、再起動、または別のインスタンスに到達した取得リクエストの後でもブロックが存続するようにします。ブロックをメモリ内のみに保持するには false に設定します。512KB を超えるブロックとクラウドランタイムでは、この設定にかかわらずメモリ内のみに保持されます。 |
COMPRESSION_PREFIX_FREEZE_ENABLED |
false |
open-sse/services/compression/prefixFreeze.ts |
T08/H5 の使用状況観測型プレフィックス固定のマスタースイッチ。オプトイン(デフォルトではオフ) — 有効にすると、>= しきい値の回数だけ観測されたシステムプロンプトは、安定したキャッシュ可能なプレフィックスとして扱われ、静的キャッシュヒューリスティックでは検出されないプロバイダーの場合でも圧縮対象から除外されます(固定は内容を保持するだけで、変更はしません)。 |
COMPRESSION_PREFIX_FREEZE_THRESHOLD |
3 |
open-sse/services/compression/prefixFreeze.ts |
システムプロンプトが固定された安定プレフィックスとして扱われるまでに必要な観測回数。 |
OMNIROUTE_BOOTSTRAPPED |
false |
src/app/(dashboard)/dashboard/page.tsx |
初期セットアップ後にブートストラップスクリプトによって true に設定されます。セットアップウィザードの表示を制御します。 |
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE |
0 |
open-sse/executors/antigravity.ts |
緊急回避策:リクエストボディによる Antigravity のプロジェクトフィールドの上書きを許可します。 |
ANTIGRAVITY_CREDITS |
off |
open-sse/services/antigravityCredits.ts |
Google One AI クレジットポリシー:off はクレジットを一切挿入せず、retry は対象となるクォータ超過の 429 の後に一度だけ挿入し、always は最初のリクエストで挿入します。 |
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS |
0 |
open-sse/translator/request/openai-to-gemini.ts |
アップストリームが実際の署名を拒否する場合に、Antigravity リクエストトランスレーターが厳格な CLI リクエスト署名検証をスキップできるようにします(デバッグ/旧式 CLI モード)。ゼロ以外の値でバイパスが有効になります。 |
AGY_TOKEN_FILE |
~/.gemini/antigravity-cli/antigravity-oauth-token |
src/app/api/providers/agy-auth/apply-local/route.ts |
ローカルログインの自動検出インポートに使用する Antigravity CLI(agy)のトークンファイルパスを上書きします。 |
OAuth CLI ブリッジ(内部)
Section titled “OAuth CLI ブリッジ(内部)”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_SERVER |
自動検出 | src/lib/oauth/config/index.ts |
CLI↔OmniRoute 認証ブリッジのサーバー URL。 |
OMNIROUTE_TOKEN |
(未設定) | src/lib/oauth/config/index.ts |
CLI ブリッジの認証トークン。 |
OMNIROUTE_USER_ID |
cli |
src/lib/oauth/config/index.ts |
CLI ブリッジセッションのユーザー ID。 |
SERVER_URL |
(未設定) | src/lib/oauth/config/index.ts |
OMNIROUTE_SERVER のレガシーエイリアス。 |
CLI_TOKEN |
(未設定) | src/lib/oauth/config/index.ts |
OMNIROUTE_TOKEN のレガシーエイリアス。 |
CLI_USER_ID |
(未設定) | src/lib/oauth/config/index.ts |
OMNIROUTE_USER_ID のレガシーエイリアス。 |
11. OAuthプロバイダーの認証情報
Section titled “11. OAuthプロバイダーの認証情報”localhost開発用の組み込み認証情報。リモートデプロイメントの場合は、各プロバイダーの開発者コンソールで独自のものを登録してください。
| 変数 | プロバイダー | 注記 |
|---|---|---|
CLAUDE_OAUTH_CLIENT_ID |
Claude Code (Anthropic) | パブリッククライアント — シークレットは不要です。 |
CLAUDE_CODE_REDIRECT_URI |
Claude Code | リダイレクトURIを上書きします。デフォルト: https://platform.claude.com/oauth/code/callback |
CODEX_OAUTH_CLIENT_ID |
Codex / OpenAI | パブリッククライアント。 |
GEMINI_OAUTH_CLIENT_ID |
Gemini (Google) | 一致する _SECRET が必要です。 |
GEMINI_OAUTH_CLIENT_SECRET |
Gemini (Google) | — |
KIMI_CODING_OAUTH_CLIENT_ID |
Kimi Coding (Moonshot) | パブリッククライアント。 |
MUSE_CODE_OAUTH_CLIENT_ID |
Muse Code (Meta) | パブリックMuse CLIデバイスフロークライアントIDのオプションの上書き。組み込みのパブリッククライアントを使用するには未設定のままにします。 |
ANTIGRAVITY_OAUTH_CLIENT_ID |
Antigravity (Google) | 一致する _SECRET が必要です。 |
ANTIGRAVITY_OAUTH_CLIENT_SECRET |
Antigravity (Google) | — |
GITHUB_OAUTH_CLIENT_ID |
GitHub Copilot | パブリッククライアント。 |
GHE_COPILOT_OAUTH_CLIENT_ID |
GHE Copilot | GitHub Enterprise CopilotのOAuthクライアントIDのオプションの上書き。未設定の場合、GITHUB_OAUTH_CLIENT_IDのパブリックデフォルトにフォールバックします。 |
COPILOT_INTEGRATION_ID |
GitHub Copilot | Copilot-Integration-IdおよびEditor-Plugin-Versionヘッダーで送信されるGitHub Copilotクライアント統合IDのオプションの上書き。デフォルトはcopilot-developer-cliです。 |
WINDSURF_API_KEY |
Windsurf / Devin (v3.8) | 接続ごとの認証情報が利用できない場合にopen-sse/executors/devin-cli.tsで使用されるAPIキーのフォールバック。オプション。 |
CLI_DEVIN_BIN |
Devin CLI (v3.8) | Devin CLIバイナリ (devin) へのカスタムパス。open-sse/executors/devin-cli.tsによって解決されます。 |
GITLAB_DUO_OAUTH_CLIENT_ID |
GitLab Duo (v3.8) | GitLab DuoのOAuthクライアントID。https://gitlab.com/-/profile/applicationsで、リダイレクトURIを<NEXT_PUBLIC_BASE_URL>/callback、スコープをapi, read_user, openid, profile, emailとしてアプリを登録してください。GITLAB_OAUTH_CLIENT_IDにフォールバックします。 |
GITLAB_DUO_OAUTH_CLIENT_SECRET |
GitLab Duo (v3.8) | GitLab DuoのOAuthクライアントシークレット。オプション — PKCEフローではシークレットは不要です。GITLAB_OAUTH_CLIENT_SECRETにフォールバックします。 |
GITLAB_DUO_BASE_URL |
GitLab Duo (v3.8) | GitLabベースURL (セルフホスト型GitLab) を上書きします。デフォルトはhttps://gitlab.comです。GITLAB_BASE_URLにフォールバックします。 |
GITLAB_BASE_URL |
GitLab Duo (v3.8) | GITLAB_DUO_BASE_URL のレガシーフォールバック。_DUO_ バリアントが設定されていない場合に使用されます。 |
GITLAB_OAUTH_CLIENT_ID |
GitLab Duo (v3.8) | src/lib/oauth/constants/oauth.ts で使用される GITLAB_DUO_OAUTH_CLIENT_ID のレガシーフォールバック。 |
GITLAB_OAUTH_CLIENT_SECRET |
GitLab Duo (v3.8) | src/lib/oauth/constants/oauth.ts で使用される GITLAB_DUO_OAUTH_CLIENT_SECRET のレガシーフォールバック。 |
QODER_OAUTH_CLIENT_SECRET |
Qoder | — |
QODER_OAUTH_AUTHORIZE_URL |
Qoder | Qoder OAuth を有効にするために設定します。 |
QODER_OAUTH_TOKEN_URL |
Qoder | — |
QODER_OAUTH_USERINFO_URL |
Qoder | — |
QODER_OAUTH_CLIENT_ID |
Qoder | — |
QODER_PERSONAL_ACCESS_TOKEN |
Qoder | 直接的な API キーフォールバック (OAuth をバイパスします)。 |
QODER_CLI_WORKSPACE |
Qoder | Qoder CLI のワークスペース ID。 |
OMNIROUTE_QODER_WORKSPACE |
Qoder | QODER_CLI_WORKSPACE のエイリアス。 |
QODER_CLI_CONFIG_DIR |
Qoder | Qoder CLI の設定ディレクトリを上書きします (分離された PAT セッションで、ブラウザログインの上書きを回避します)。 |
BLACKBOX_WEB_VALIDATED_TOKEN |
Blackbox Web | /api/chat で validated として送信するフロントエンドの tk トークン。Blackbox がトークンの一致を強制する場合に必要です。それ以外の場合、OmniRoute はランダムな UUID にフォールバックします。Issue #2252 を参照してください。 |
VISION_BRIDGE_BASE_URL |
Vision Bridge guardrail | Anthropic 以外の vision-bridge 呼び出し用の OpenAI 互換ベース URL。レガシーな OpenAI URL 環境変数または api.openai.com にデフォルト設定されます。OmniRoute の /v1 セルフループ、または任意の OpenAI 互換エンドポイント (Gemini OpenAI 互換、OpenRouter) を指します。Issue #2232。URL が OmniRoute 自身の /v1 である場合、記述サブ要求は x-omniroute-admission-bypass: internal を送信し、解決されたセルフループ認証情報 (ローカルモードでは sk_omniroute センチネル、または OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350) で認証されるため、REQUIRE_API_KEY=true のデプロイが機能します。 |
VISION_BRIDGE_API_KEY |
Vision Bridge guardrail | 上記 URL 用の API キー。Anthropic 以外の vision-bridge 呼び出しの場合、プロバイダーごとの OpenAI / Google 環境変数を上書きします。Anthropic モデルは専用の Anthropic キーパスを保持します。Issue #2232。 |
OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS |
Vision Bridge guardrail | 「利用可能な候補なし」というルーティング結果がキャッシュされる期間 (ミリ秒単位、デフォルト 30000)。無効な値または負の値はデフォルトにフォールバックします。0 はネガティブキャッシュを無効にします。ソース: src/lib/guardrails/visionBridgeRouter.ts。 |
[!WARNING]
- Google Cloud Console → 認証情報 に移動します。
- OAuth 2.0 クライアント ID (タイプ: 「Web アプリケーション」) を作成します。
- 承認済みリダイレクト URI としてサーバー URL を追加します。
.env内の認証情報値を置き換えます。
12. プロバイダーの User-Agent オーバーライド
Section titled “12. プロバイダーの User-Agent オーバーライド”各アップストリームプロバイダーへ送信される User-Agent ヘッダーをオーバーライドします。これは、実行時に executor の基底クラスによって動的に解決されます。
process.env[`${PROVIDER_ID}_USER_AGENT`]ソース:
open-sse/executors/base.ts→buildHeaders()
| 変数 | デフォルト値 | 更新するタイミング |
| –––––––––––––––– | ——————————————— | ———————————————————————————————— | —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— |
| CLAUDE_USER_AGENT | claude-cli/2.1.258 (external, cli) | Anthropic が新しい CLI バージョンをリリースしたとき |
| CLAUDE_DISABLE_TOOL_NAME_CLOAK | false | executors/base.ts + executors/cliproxyapi.ts | 1/true に設定すると、Anthropic に向かう両方の経路(ネイティブ OAuth および CLIProxyAPI)で、サードパーティ製ハーネスのツール名をそのまま Anthropic に転送します。デフォルトでは、executor は Claude Code 以外のツール名に決定論的なエイリアスを割り当て(Claude Code の標準マッピングが存在する場合はそれを使用し、それ以外は PascalCase を使用)、レスポンスでは _toolNameMap を介して元に戻します。これにより、snake_case のツールを使用するハーネスが、フィンガープリントされたサードパーティクライアントとして拒否されるのを防ぎます。デバッグ専用です。 |
| CODEX_USER_AGENT | codex-cli/0.155.0 (Windows 10.0.26200; x64) | OpenAI が Codex CLI を更新したとき |
| CODEX_CLIENT_VERSION | 0.155.0 | 完全な UA 文字列とは独立して Codex クライアントのバージョンをオーバーライドします |
| CLAUDE_CODE_CLIENT_VERSION | 2.1.258 | CLAUDE_USER_AGENT とは独立して、通知される Claude Code のバージョンをオーバーライドします。Anthropic はこの値に基づいて一部のモデルへのアクセスを制御します(#12417)。 |
| GITHUB_COPILOT_CLI_VERSION | 1.0.81-6 | GITHUB_USER_AGENT とは独立して、通知される Copilot CLI のバージョンをオーバーライドします |
| GITHUB_USER_AGENT | GitHubCopilotChat/0.54.0 | GitHub Copilot Chat が更新されたとき |
| ANTIGRAVITY_USER_AGENT | antigravity/2.0.1 darwin/arm64 | Antigravity IDE が更新されたとき |
| KIRO_USER_AGENT | AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 | Kiro IDE が更新されたとき |
| KIRO_OAUTH_CLIENT_ID | kiro-cli | Kiro のソーシャルデバイスコードの clientId(公開 ID)をオーバーライドします |
| KIRO_VERIFY_FULL_CRC | false | オプトイン: Kiro イベントストリームでフレームごとの完全なメッセージ CRC 検証を行います(破損したストリームのデバッグ用) |
| QODER_USER_AGENT | Qoder-Cli | Qoder CLI が更新されたとき |
| CURSOR_USER_AGENT | Cursor/3.3 | Cursor が更新されたとき |
[!TIP]
{PROVIDER_ID}_USER_AGENTというパターンを使用して、任意のプロバイダーに User-Agent オーバーライドを追加できます。executor は環境変数名を動的に構築します。
13. CLI フィンガープリント互換性
Section titled “13. CLI フィンガープリント互換性”有効にすると、OmniRoute は HTTP ヘッダーと JSON ボディのフィールドを並べ替え、公式 CLI ツールの正確なシグネチャに一致させます。これにより、プロキシ IP を維持しながら、アカウントがフラグ付けされるリスクを軽減します。
ソース: open-sse/config/cliFingerprints.ts、open-sse/executors/base.ts
プロバイダー別
Section titled “プロバイダー別”| 変数 | 有効化 | 効果 |
|---|---|---|
CLI_COMPAT_CODEX |
=1 |
Codex CLI のリクエストシグネチャを模倣 |
CLI_COMPAT_CLAUDE |
=1 |
Claude Code のリクエストシグネチャを模倣 |
CLI_COMPAT_GITHUB |
=1 |
GitHub Copilot のリクエストシグネチャを模倣 |
CLI_COMPAT_ANTIGRAVITY |
=1 |
Antigravity のリクエストシグネチャを模倣 |
CLI_COMPAT_CURSOR |
=1 |
Cursor のリクエストシグネチャを模倣 |
CLI_COMPAT_KIMI_CODING |
=1 |
Kimi Coding のリクエストシグネチャを模倣 |
CLI_COMPAT_KILOCODE |
=1 |
Kilo Code のリクエストシグネチャを模倣 |
CLI_COMPAT_CLINE |
=1 |
Cline のリクエストシグネチャを模倣 |
| 変数 | 有効化 | 効果 |
|---|---|---|
CLI_COMPAT_ALL |
=1 |
すべてのプロバイダーでフィンガープリント互換性を一括で有効にします。 |
Kimi Coding CLI の ID オーバーライド
Section titled “Kimi Coding CLI の ID オーバーライド”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
KIMI_CLI_VERSION |
1.36.0 |
src/lib/oauth/providers/kimi-coding.ts |
OAuth/API 呼び出し時に送信される Kimi CLI のバージョンを上書きします。 |
KIMI_CODING_DEVICE_ID |
(取得済みのデフォルト) | src/lib/oauth/providers/kimi-coding.ts |
クライアントヘッダーで使用される、取得済みの Kimi デバイス ID を上書きします。 |
[!NOTE] この機能は User-Agent オーバーライド(§12)と併用できます。フィンガープリントシステムはヘッダーとボディフィールドの順序を処理し、User-Agent オーバーライドは特定の UA 文字列を処理します。両方を個別に有効化できます。
14. API キープロバイダー
Section titled “14. API キープロバイダー”直接認証を使用するプロバイダー向けの API キーです。推奨設定: Dashboard → Providers → Add API Key。
Docker またはヘッドレスデプロイでは、代替手段として環境変数を使用して設定できます。
認識されるパターン: {PROVIDER_ID}_API_KEY
| 変数 | プロバイダー |
|---|---|
DEEPSEEK_API_KEY |
DeepSeek |
NVIDIA_API_KEY |
NVIDIA NIM |
JINA_AI_API_KEY |
Jina AI(Foundation API + Reader フォールバック) |
JINA_API_KEY |
Jina AI(JINA_AI_API_KEY のエイリアス) |
GEMINI_API_KEY |
Gemini(Google AI Studio)の埋め込み + チャットフォールバック |
GOOGLE_API_KEY |
Gemini(GEMINI_API_KEY のエイリアス) |
[!NOTE] Groq、xAI、Mistral、Perplexity、Together AI、Fireworks、Cerebras、Cohere、Nebius、Qianfan の静的な
${PROVIDER}_API_KEYエントリは、ランタイムで読み込まれなくなったため、v3.8.0 で削除されました。これらのプロバイダーは、Dashboard /data/provider-credentials.json/ 暗号化 DB のみに依存します。移行手順については、このドキュメントの末尾にある 監査: 削除済み / 無効な変数 セクションを参照してください。
[!TIP] Dashboard で設定されたキーは SQLite に暗号化して保存され、環境変数よりも優先されます。
Jina: Dashboard に
jina-ai(または共有のjina-reader)接続が存在する場合、jina-ai/…の埋め込み、再ランキング、分類、セグメント化、およびjina-searchでは、クラスターの環境変数キーに課金されることはありません。getProviderCredentialsは先着充足方式です。JINA_AI_API_KEY/JINA_API_KEYは、使用可能な Dashboard キーが存在しない場合にのみ使用されます。呼び出しログでは、環境変数へのフォールバックがconnection_id=env:JINA_AI_API_KEYとして記録されます。Reader カード(jina-reader、r.jina.ai)が/v1/embeddingsまたは/v1/rerankを処理することはありません。Gemini:
gemini/gemini-embedding-2(エイリアスgoogle/gemini-embedding-2)は、Dashboard のgemini接続を最初に使用します。GEMINI_API_KEY/GOOGLE_API_KEYは、使用可能な Dashboard キーが存在しない場合にのみ使用されます。呼び出しログでは、環境変数へのフォールバックがconnection_id=env:GEMINI_API_KEYとして記録されます。ネイティブのマルチモーダルトラフィックでは、:embedContent/:batchEmbedContentsに対してx-goog-api-keyが使用されます。N 個の OpenAIinput項目は N 個のベクトルになります。
15. タイムアウト設定
Section titled “15. タイムアウト設定”すべての値の単位は ミリ秒 です。設定の一元的な解決は src/shared/utils/runtimeTimeouts.ts で行われます。
タイムアウトの階層
Section titled “タイムアウトの階層”REQUEST_TIMEOUT_MS(グローバルオーバーライド)├─→ FETCH_TIMEOUT_MS(上流プロバイダー呼び出し、デフォルト: 600000)│ ├─→ FETCH_HEADERS_TIMEOUT_MS(FETCH_TIMEOUT_MS から継承)│ ├─→ FETCH_BODY_TIMEOUT_MS(FETCH_TIMEOUT_MS から継承)│ ├─→ TLS_CLIENT_TIMEOUT_MS(FETCH_TIMEOUT_MS から継承)│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS(独立、デフォルト: 10000)│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS(独立、デフォルト: 15000)│ ├── FETCH_CONNECT_TIMEOUT_MS(独立、デフォルト: 30000)│ └── FETCH_KEEPALIVE_TIMEOUT_MS(独立、デフォルト: 4000)├─→ STREAM_IDLE_TIMEOUT_MS(REQUEST_TIMEOUT_MS から継承、デフォルト: 600000)├─→ STREAM_ACTIVE_TIMEOUT_MS(独立、デフォルト: 1260000、0 で無効化)├─→ STREAM_READINESS_TIMEOUT_MS(REQUEST_TIMEOUT_MS から継承、デフォルト: 80000)├─→ STREAM_READINESS_MAX_TIMEOUT_MS(適応型の準備完了タイムアウト延長に上限を設定、デフォルト: 180000)└─→ API_BRIDGE_PROXY_TIMEOUT_MS(REQUEST_TIMEOUT_MS から継承、デフォルト: 30000) ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS(派生値、デフォルト: 300000) ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS(デフォルト: 60000) ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS(デフォルト: 5000) └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS(デフォルト: 0 = 無効)| 変数 | デフォルト | 説明 |
|---|---|---|
REQUEST_TIMEOUT_MS |
(未設定) | グローバルショートカット — FETCH_TIMEOUT_MS と STREAM_IDLE_TIMEOUT_MS の両方のデフォルト値を上書きします。 |
FETCH_TIMEOUT_MS |
600000 |
アップストリームプロバイダー呼び出しに対する HTTP リクエスト全体のタイムアウト。 |
STREAM_IDLE_TIMEOUT_MS |
600000 |
中断するまでに許容される、アップストリームからの生バイト間の最大無通信時間。拡張思考モデルが 90 秒を超えて停止することはほとんどありません。 |
STREAM_ACTIVE_TIMEOUT_MS |
1260000 |
アクティブな SSE ストリームの最大合計存続時間。アップストリームからバイトを受信してもリセットされず、REQUEST_TIMEOUT_MS から独立しています。レジストリ内で最大のモデル別 timeoutMs(1200000、Codex)に 60000 の余裕を加えて算出されるため、割り当てられた時間をすべて使用するモデルが応答途中で終了されることはありません。無効化するには 0 に設定します。 |
OMNIROUTE_SSE_COMMENTS |
(無効) | OmniRoute が SSE の : コメント行(例: : keepalive ハートビートや x-omniroute-* メタデータトレーラー)を送出できるかどうか。厳密な OpenAI 互換クライアントはすべての SSE 行に対して JSON.parse を実行し、: コメントでクラッシュするため、デフォルトでは無効です(#10524)。data: ハートビートには影響しません。再度有効にするには on/true/1/yes を設定します。open-sse/utils/sseHeartbeat.ts で使用されます。 |
STREAM_READINESS_TIMEOUT_MS |
80000 |
最初の非 ping SSE イベントを受信するまでの時間。REQUEST_TIMEOUT_MS が設定されている場合は、その値を継承します。 |
STREAM_READINESS_MAX_TIMEOUT_MS |
180000 |
大規模なリクエスト、ツールを多用するリクエスト、または高度な推論を行うストリーミングリクエストに対する、最初のイベントまでの適応型準備待機時間の上限。 |
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED |
true |
/goal ヒューリスティックのキルスイッチ。検出を完全に無効化するには false/0/off に設定します。これにより、リクエスト本文やヘッダーによって準備タイムアウトやストリーム復旧が引き上げられることがなくなり、クライアントが制御可能なタイムアウト増幅を軽減します。 |
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS |
600000 |
検出された /goal エージェント実行、または x-omniroute-agent-goal によって強制されたリクエストに対する、最初のイベントまでの準備待機時間の上限。 |
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY |
true |
検出された /goal エージェント実行に対して、早期ストリーム復旧を自動的に有効化します。goal 固有のオプトインを無効化するには false/0/off に設定します。これはオペレーターのデフォルト設定に復旧を追加することしかできず、明示的な STREAM_RECOVERY_ENABLED/DB 設定によるオプトアウトを上書きすることはありません。 |
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS |
true |
OpenAI SDK の responses.stream() を 502 エラーで失敗させる非標準の codex.* SSE イベント(例: codex.rate_limits)を除去します。デフォルトで有効です(#11014)。転送するには 0/false/no/off を設定します。 |
OMNIROUTE_CODEX_APPSERVER_WS |
(未設定) | Codex app-server トランスポートのオプトイン設定。ローカルの codex app-server サイドカーの WebSocket エンドポイント(ws:///wss://)。トークンとともに設定すると、Codex リクエストは HTTP Responses API の代わりに JSON-RPC 経由でサイドカーへルーティングされます。接続ごとに providerSpecificData.codexAppServerUrl でも設定できます。open-sse/executors/codex/appServerConfig.ts で使用されます。 |
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN |
(未設定) | app-server に提示するインラインのケイパビリティトークン/ベアラートークン。接続ごとのオーバーライド: providerSpecificData.codexAppServerToken。 |
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE |
(未設定) | app-server のケイパビリティトークン(codex app-server --ws-token-file から取得)を格納するファイルへのパス。OMNIROUTE_CODEX_APPSERVER_WS_TOKEN が未設定の場合に使用されます。接続ごとのオーバーライド: providerSpecificData.codexAppServerTokenFile。 |
OMNIROUTE_CODEX_APPSERVER_CWD |
/tmp |
app-server のターンが実行される作業ディレクトリ。接続ごとのオーバーライド: providerSpecificData.codexAppServerCwd。 |
OMNIROUTE_CODEX_APPSERVER_APPROVAL |
(未設定) | app-server のターンに渡される承認ポリシー(例: never、on-request)。接続ごとのオーバーライド: providerSpecificData.codexAppServerApprovalPolicy。 |
OMNIROUTE_CODEX_APPSERVER_SANDBOX |
(未設定) | app-server のターンに渡されるサンドボックスポリシー(例: read-only、workspace-write、danger-full-access)。未設定の場合、エグゼキューターのデフォルトは workspace-write です(強化済み。以前は danger-full-access)。接続ごとのオーバーライド: providerSpecificData.codexAppServerSandbox。 |
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE |
false |
app-server 自体の承認プロンプト(ホスト上でのコマンド/ファイル/権限の実行)を自動承認します。デフォルトではオフで、プロンプトは自動的に拒否されます。ハーネスのツール呼び出しには影響しません(別の item/tool/call パススルーを経由します)。true/1/yes を受け付けます。接続ごとのオーバーライド: providerSpecificData.codexAppServerAutoApprove。 |
FETCH_HEADERS_TIMEOUT_MS |
= FETCH_TIMEOUT_MS |
レスポンスヘッダーを受信するまでの時間。 |
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS |
30000(30秒) |
プロキシを使用しない各直接接続試行で、レスポンス開始を待機する最大時間(ms)。タイムアウト時は新しいソケットで1回再試行します。0 に設定すると上限が無効になり、従来の動作が維持されます。 |
OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS |
600000(10分) |
上記のプール済み接続による試行でレスポンス開始がタイムアウトした後に行う、新しいソケットでの RETRY 試行の上限(ms)(#13703)。呼び出し元が独自のデッドラインシグナル(解決済みの接続/モデル/プロバイダー/FETCH_TIMEOUT_MS のカスケード)をすでに設定している場合にのみ適用されます。このシグナルが実際の上限であり、想定された経路では先に発火するため、これは一律の上限ではなく余裕を持たせた最終的な安全策です。これがない場合、再試行ではプール済み接続による試行と同じ短い OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS の時間枠が再利用され、正常ではあるものの TTFB が遅い推論モデルで 504 が発生していました。上記の一律の下限を下回ることはありません。呼び出し元がデッドラインシグナルをまったく指定しない場合、再試行では一律の下限がそのまま維持されます。 |
FETCH_BODY_TIMEOUT_MS |
= FETCH_TIMEOUT_MS |
レスポンス本文全体を受信するまでの時間。 |
FETCH_CONNECT_TIMEOUT_MS |
30000 |
TCP 接続確立のタイムアウト。 |
FETCH_KEEPALIVE_TIMEOUT_MS |
4000 |
Keep-Alive ソケットのアイドルタイムアウト。 |
TLS_CLIENT_TIMEOUT_MS |
= FETCH_TIMEOUT_MS |
TLS フィンガープリントプロキシ(wreq-js)のタイムアウト。 |
TLS_FIRST_BYTE_WATCHDOG_MS |
10000 |
wreq-js TLS フィンガープリントトランスポートの本文に対する最初のバイトの受信時間を制限します。TLS_CLIENT_TIMEOUT_MS はヘッダーが到着するとすぐに完了するため、それだけでは停止した本文を検出できません(#12656)。タイムアウトすると wreq リーダーをキャンセルし、直接/プロキシディスパッチャーにフォールバックします。0 でウォッチドッグを無効にします。 |
RESPONSES_FIRST_BYTE_TIMEOUT_MS |
15000 |
OpenCode エグゼキューターでのみ、かつ OPENCODE_RESPONSES_STALL_ROTATION 機能フラグが有効な場合(デフォルトは無効)にのみ使用されます。ストリーミングされる Responses 応答のヘッダー到着後、本文の最初のバイトを待機する時間を制限します(#13484)。Responses ストリームは response.created で開始されるため、この時間枠を超えて何も受信されない場合は停止とみなされます。その場合、アカウントはクールダウン状態になり、リクエストは次のアカウントへ1回だけローテーションされます。2回目の停止では即座に失敗します。0 にすると、フラグが有効でもこのガードを無効にします。 |
OPENCODE_PARK_AND_RESUME |
false |
OpenCode エグゼキューターのみ:一時的な 429 が繰り返し発生した場合(または新しいプール負荷マーカーがある場合)、ハートビートを維持しながらリクエストを保留し、その後、フリート全体へ展開する代わりに、最大3つのアカウントを順番に試す上限付きの1区間を再実行します(#13924)。デフォルトでは無効です。無効時は従来どおり、429 が発生するたびに次のアカウントへローテーションします。 |
OPENCODE_POOL_STRAIN_MARKER_PATH |
(未設定) | OpenCode エグゼキューターのみ:保留前に読み取るプール負荷マーカー({since, reason, ttl_s}、デフォルトは /tmp/opencode-pool-strain.json、#13924)のパスを上書きします。新しいマーカーがある場合は再集計せずに保留します。マーカーが存在しないか古い場合は、バーストカウンターにフォールバックします。 |
API_BRIDGE_PROXY_TIMEOUT_MS |
30000 |
/v1 ブリッジリクエストのプロキシホップタイムアウト。 |
FIRECRAWL_BASE_URL |
https://api.firecrawl.dev |
Firecrawl Web フェッチエグゼキューターの接続先をセルフホストインスタンスに設定します(クラウド外では API キーは任意)。 |
FIRECRAWL_TIMEOUT_MS |
30000 |
Firecrawl Web フェッチエグゼキューターのリクエスト単位のタイムアウト。 |
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS |
300000 |
ブリッジのサーバーリクエスト全体のタイムアウト。 |
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS |
60000 |
ブリッジ経由でレスポンスヘッダーを送信するまでの時間。 |
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS |
5000 |
ブリッジの Keep-Alive アイドルタイムアウト。 |
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS |
0 |
Raw ソケットのタイムアウト(0 = 無効)。 |
SHUTDOWN_TIMEOUT_MS |
30000 |
SIGTERM/SIGINT の受信後、強制終了するまでの猶予期間。 |
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS |
120000 |
FETCH_TIMEOUT_MS が未設定の場合に src/shared/utils/fetchTimeout.ts で使用されるフォールバック値。 |
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS |
8000 |
src/shared/network/safeOutboundFetch.ts の validationRead および modelsProbe プリセットのタイムアウト(ms)。低速なエンドポイント(Cerebras、Cloudflare AI、Groq)では、ダッシュボード上で active/error 状態が頻繁に切り替わるのを防ぐため、値を増やしてください。無効な値(1000未満)または数値以外の値の場合は 8000ms にフォールバックします。 |
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS |
25000 |
open-sse/utils/proxyFetch.ts における Relay 固有の fetch タイムアウト(#9158)。ハングした Relay は、クライアント/エージェントのタイムアウト(約30秒)より前に失敗させる必要があります。これにより、呼び出し元には汎用的なアップストリームタイムアウトではなく、Relay 固有のエラーが通知されます。常に先に発動するよう、上限は 29000 です。 |
OMNIROUTE_RETRY_BACKOFF_MS |
10 |
open-sse/utils/proxyFetch.ts における direct/relay/proxy の1回限りの再試行パスで共有される再試行バックオフ(#9158)。0 = 即座に再試行します。 |
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS |
60000 |
ネイティブ wreq-js リクエストのタイムアウト(claudeTlsClient.ts)。 |
OMNIROUTE_CLAUDE_TLS_GRACE_MS |
10000 |
ネイティブタイムアウトに追加される、JS の絶対的なハードデッドラインの猶予時間。 |
OMNIROUTE_PPLX_TLS_TIMEOUT_MS |
30000 |
ネイティブ wreq-js リクエストのタイムアウト(perplexityTlsClient.ts)。 |
OMNIROUTE_PPLX_TLS_GRACE_MS |
10000 |
ネイティブタイムアウトに追加される、JS の絶対的なハードデッドラインの猶予時間。 |
OMNIROUTE_PPLX_SEARCH_HINT |
0(オフ) |
呼び出し元のシステムメッセージに「組み込みのウェブ検索を使用できます。検索結果を使って質問に直接回答してください。」を追加します(perplexity-web/protocol.ts)。デフォルトではオフです — Perplexity はいずれにしても検索を行い、コーディングクライアントではこの文がメタコメントとして応答に漏れ出すためです。元に戻すには 1/true/yes/on を設定してください。 |
OMNIROUTE_GROK_TLS_TIMEOUT_MS |
60000 |
ネイティブ wreq-js リクエストのタイムアウト(grokTlsClient.ts)。 |
OMNIROUTE_GROK_TLS_GRACE_MS |
10000 |
ネイティブタイムアウトに追加される、JS の絶対的なハードデッドラインの猶予時間。 |
OMNIROUTE_NOTION_TLS_TIMEOUT_MS |
30000 |
ネイティブ wreq-js リクエストのタイムアウト(notionTlsClient.ts)。notion-web では、生成に時間がかかる場合、リクエストごとに 180000 まで引き上げられます。 |
OMNIROUTE_NOTION_TLS_GRACE_MS |
10000 |
ネイティブタイムアウトに追加される、JS の絶対的なハードデッドラインの猶予時間。 |
OMNIROUTE_BROWSER_POOL |
on |
ブラウザベースの web-cookie チャット用の共有 Playwright ブラウザプール(browserPool.ts)。無効にするには off を設定します。 |
OBSCURA_BIN |
auto-detect |
ブラウザプールおよび Cloudflare Playground executor がプライマリエンジンとして使用する obscura バイナリへのパス(open-sse/services/obscura.ts)。未設定の場合はシステムの PATH から自動検出されます。 |
OBSCURA_CDP_ENDPOINT |
(未設定) | 新たに起動する代わりに、すでに実行中の Obscura(http://host:port)を指定します。このモジュールはそのプロセスを所有しません(open-sse/services/obscura.ts)。 |
OBSCURA_PORT |
ランダムな空きポート |
起動される obscura serve の明示的なポート。未設定の場合は空きポートが自動的に選択されます(open-sse/services/obscura.ts)。 |
WEB_COOKIE_USE_BROWSER |
0 |
web-cookie チャットリクエストでブラウザベースのパスを使用するようオプトインします(browserBackedChat.ts)。有効にするには 1 を設定します。 |
KIMI_WEB_BASE_URL |
https://www.kimi.ai |
Kimi Web(国際版 kimi.ai Connect-RPC)executor のベース URL(kimi-web.ts)。ミラー/プロキシエンドポイントを使用する場合にのみオーバーライドしてください。 |
KIMI_WEB_CHAT_URL |
<KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat |
Kimi Web executor の完全なチャットエンドポイント(kimi-web.ts)。 |
OMNIROUTE_LOGIN_BROWSER_PATH |
(自動検出) | Adobe Firefly の対話型ブラウザサインインで使用するシステム上の Chrome/Edge 実行可能ファイルへのパス(adobeFireflyBrowserLogin.ts)。OS ごとの自動検出をオーバーライドします。 |
OMNIROUTE_STANDALONE_DIR |
.build/ の standalone 出力 | ビルド後の同一配置ステップ(scripts/build/colocate-standalone.mjs)で使用される standalone 出力ディレクトリのビルド時オーバーライド。ランタイムではなく、ビルドツール用です。 |
combo ターゲットの試行は、解決済みのアップストリームリクエストタイムアウト(FETCH_TIMEOUT_MS、または
fetch のデフォルト値を提供する場合は REQUEST_TIMEOUT_MS)を継承します。combo、
combo のデフォルト、または provider のオーバーライドで targetTimeoutMs を設定するのは、
combo のフォールバックを高速化する場合だけにしてください。現在のアップストリームタイムアウトを超える値は、
アップストリームタイムアウトを上限として制限されます。
comboTimeoutMs は、フェイルオーバーターゲット全体にまたがる combo 全体の独立した実時間予算です。
無制限の反復を維持するには、未設定または 0 のままにしてください(
comboPredicates.ts にハードコードされた10分間のハング停止は引き続き適用されます)。
正の値を指定すると、combo ではそのセーフティネットが置き換えられます。
遅い最初のターゲットの後でもフェイルオーバーに時間を確保できるよう、comboTimeoutMs は
targetTimeoutMs より長く設定してください。
サーキットブレーカーのしきい値
Section titled “サーキットブレーカーのしきい値”provider レベルのサーキットブレーカー調整。デフォルト値には、v3.6 以降で500以上の接続に使用されているスケーリング済みの値が反映されています。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD |
8 |
open-sse/config/constants.ts |
ブレーカーが作動するまでの OAuth プロバイダーの連続失敗しきい値。 |
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS |
60000 |
open-sse/config/constants.ts |
OAuth プロバイダーのブレーカーのリセット期間(ms)。 |
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD |
12 |
open-sse/config/constants.ts |
API キープロバイダーの連続失敗しきい値。 |
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS |
30000 |
open-sse/config/constants.ts |
API キープロバイダーのブレーカーのリセット期間(ms)。 |
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD |
2 |
open-sse/config/constants.ts |
ローカルプロバイダー(Ollama、LM Studio など)の連続失敗しきい値。 |
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS |
15000 |
open-sse/config/constants.ts |
ローカルプロバイダーのブレーカーのリセット期間(ms)。 |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD |
10 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:OAuth プロバイダー全体がクールダウンに入るまでの期間内の失敗回数。 |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS |
900000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:OAuth プロバイダーのローリング失敗回数集計期間(ms)。 |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS |
300000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:OAuth プロバイダーがしきい値に達した後のクールダウン時間(ms)。 |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD |
5 |
open-sse/config/constants.ts |
OAuth プロバイダーが DEGRADED に移行する失敗回数。 |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER |
8 |
open-sse/config/constants.ts |
OAuth プロバイダーの resetTimeout 増加倍率の上限。 |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT |
2 |
open-sse/config/constants.ts |
OAuth プロバイダーでエスカレーションが発生するオープンサイクル数。 |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD |
15 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:API キープロバイダー全体がクールダウンに入るまでの期間内の失敗回数。 |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS |
1800000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:API キープロバイダーのローリング失敗回数集計期間(ms)。 |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS |
600000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:API キープロバイダーがしきい値に達した後のクールダウン時間(ms)。 |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD |
7 |
open-sse/config/constants.ts |
API キープロバイダーが DEGRADED に移行する失敗回数。 |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER |
4 |
open-sse/config/constants.ts |
API キープロバイダーの resetTimeout 増加倍率の上限。 |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT |
3 |
open-sse/config/constants.ts |
API キープロバイダーでエスカレーションが発生するオープンサイクル数。 |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD |
2 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:ローカルプロバイダー全体がクールダウンに入るまでの失敗回数。 |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS |
300000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:ローカルプロバイダーのローリング失敗回数集計期間(ms)。 |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS |
60000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:ローカルプロバイダーがしきい値に達した後のクールダウン時間(ms)。 |
PIN_DROP_BACKOFF_LEVEL |
2 |
open-sse/services/combo.ts |
コンテキストキャッシュのピンに紐づくプロバイダーが持続的に異常と見なされ、フェイルオーバーのためにピンが解除されるバックオフ深度。 |
PIN_DROP_GRACE_MS |
20000 |
open-sse/services/combo.ts |
コンテキストキャッシュのピンを解除する前に、短時間の一時的なクールダウンを許容するアンチフラップ期間(ms)。 |
| シナリオ | 設定 |
|---|---|
| 長時間実行されるコード生成 | REQUEST_TIMEOUT_MS=900000(15 分) |
| ストリームの合計存続時間を制限 | STREAM_ACTIVE_TIMEOUT_MS=1260000(21 分) |
| 本番 API の高速失敗 | API_BRIDGE_PROXY_TIMEOUT_MS=10000 |
| 拡張思考モデル | STREAM_IDLE_TIMEOUT_MS=300000(チャンク間 5 分) |
16. ロギング
Section titled “16. ロギング”ロギングシステムは、標準出力とローテーションされるログファイルの両方に書き込みます。すべての設定は src/lib/logEnv.ts によって読み込まれます。
| 変数 | デフォルト | 説明 |
|---|---|---|
APP_LOG_LEVEL |
info |
最小ログレベル:debug、info、warn、error。 |
APP_LOG_FORMAT |
text |
出力形式:text(人間が読みやすい形式)または json(構造化形式)。 |
APP_LOG_TO_FILE |
true |
標準出力に加えてログをファイルにも書き込みます。 |
APP_LOG_FILE_PATH |
logs/application/app.log |
ログファイルのパス(プロジェクトルートまたは DATA_DIR からの相対パス)。 |
APP_LOG_MAX_FILE_SIZE |
50M |
ローテーション前の最大ファイルサイズ。50M、1G、512K、または単純なバイト数を指定できます。 |
APP_LOG_RETENTION_DAYS |
7 |
ローテーションされたアプリケーションログファイルを保持する日数。 |
APP_LOG_MAX_FILES |
20 |
ローテーションされたログファイルのバックアップ最大数。 |
CALL_LOG_RETENTION_DAYS |
7 |
データベース内のリクエスト/呼び出しログエントリを保持する日数。 |
CALL_LOG_MAX_ENTRIES |
10000 |
メモリ内バッファに保持する呼び出しログエントリの最大数。 |
CALL_LOGS_TABLE_MAX_ROWS |
100000 |
削除処理が行われるまでの call_logs SQLite テーブルの最大行数。 |
ENABLE_REQUEST_LOGS |
(未設定) | ダッシュボード設定を上書きし、詳細なリクエストロギングを強制的にオンまたはオフにします。 |
MAX_PENDING_REQUEST_AGE_MS |
3600000(1 時間) |
メモリ内クリーンアップの対象となる、孤立したアクティブなリクエストログエントリの最大経過時間。 |
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS |
false |
call_log_pipeline_enabled=true の場合に、ストリームチャンクをパイプラインアーティファクトへ保存します。オプトイン(true)方式で、ディスク容量を節約するためデフォルトではオフです。 |
CALL_LOG_PIPELINE_MAX_SIZE_KB |
512 |
call_log_pipeline_enabled=true の場合のパイプライン呼び出しログアーティファクトの最大サイズ(KB)。 |
PROXY_LOGS_TABLE_MAX_ROWS |
100000 |
削除処理が行われるまでの proxy_logs SQLite テーブルの最大行数。 |
PROXY_LOG_INCLUDE_IPS |
false |
[ProxyEgress] コンソールログにクライアント/送信元 IP とアカウントプレフィックスを含めます。ダッシュボード/データベースのプロキシログレコードには、引き続き完全な詳細が保持されます。 |
APP_LOG_ROTATION_CHECK_INTERVAL_MS |
60000(1 分) |
src/lib/logRotation.ts がアクティブなログファイルのサイズを再確認する間隔。 |
CHAT_LOG_TEXT_LIMIT |
65536 |
チャットログアーティファクトに保持する文字列の最大長(デフォルトは 64 KB)。 |
CHAT_LOG_ARRAY_TAIL_ITEMS |
128 |
チャットログペイロードを切り詰める際に、末尾から保持する配列要素の数。 |
CHAT_LOG_MAX_DEPTH |
6 |
チャットログペイロードが切り詰められるまでの最大ネスト深度。 |
CHAT_LOG_MAX_OBJECT_KEYS |
80 |
チャットログペイロードに保持するオブジェクトキーの最大数(0 = 無制限)。 |
CHAT_LOG_MAX_BODY_KB |
1024 |
完全な複製の代わりに簡易要約へ置き換えられるまでの、リクエスト/レスポンス本文全体のサイズ(KB)。長時間のエージェント型会話で、実際のメッセージの代わりにプレースホルダーがダッシュボードに表示される場合は、この値を増やしてください。 |
CHAT_DEBUG_FILE |
false |
true の場合、serializeArtifactForStorage はサイズに基づく切り詰めをスキップします。デバッグ専用です。 |
17. メモリ最適化
Section titled “17. メモリ最適化”| 変数 | デフォルト | 説明 |
|---|---|---|
OMNIROUTE_MEMORY_MB |
自動(ベアメタル); Docker イメージでは 1024 |
Docker/スタンドアロン向けに推奨される V8 ヒープ上限(MB)。未設定の場合、動的に調整されます(システム RAM の約 35%、[512, 4096] の範囲に制限)。512 は、総メモリを読み取れない場合にのみ下限として使用されます。run-standalone.mjs(Docker CMD)では、明示的な値が --max-old-space-size として追加され、競合する NODE_OPTIONS のヒープフラグより優先されます(V8 では最後のフラグが有効)。omniroute serve は引き続き既存の NODE_OPTIONS ヒープ設定を優先します(#5238)。両方に異なる数値を設定しないでください。プロセスは両方の値と優先される値を明記した警告をログに出力します。公式 Docker イメージでは常に 1024 が設定されるため、動的調整は実行されません。 コーディングエージェントの /v1/responses には、cgroup の余裕分に加えて 8192~12288 が必要です。Docker ガイド — 実行時 RAMを参照してください。 |
PROMPT_CACHE_MAX_SIZE |
50 |
キャッシュするシステムプロンプトエントリの最大数。 |
PROMPT_CACHE_MAX_BYTES |
2097152 (2 MB) |
プロンプトキャッシュの合計最大サイズ。 |
PROMPT_CACHE_TTL_MS |
300000 (5 分) |
プロンプトキャッシュエントリの TTL。 |
SEMANTIC_CACHE_MAX_SIZE |
100 |
キャッシュする temperature=0 のレスポンスの最大数。 |
SEMANTIC_CACHE_MAX_BYTES |
4194304 (4 MB) |
セマンティックキャッシュの合計最大サイズ。 |
SEMANTIC_CACHE_TTL_MS |
1800000 (30 分) |
セマンティックキャッシュエントリの TTL。 |
OMNIROUTE_CORPUS_CACHE_SIZE |
5 |
ライブなインメモリインデックスを同時に保持するローカルコーパスのルート数(src/lib/localCorpus/configured.ts)。LRU: 上限に達すると、最も長く使用されていないルートのインデックスが削除され、次回のクエリ時に再構築されます。最小値は 1 に制限され、数値以外の値の場合はデフォルトに戻ります。 |
STREAM_HISTORY_MAX |
50 |
ダッシュボードのライブビューバッファに保持する直近のストリームイベントの最大数。 |
CONTEXT_LENGTH_DEFAULT |
128000 |
明示的な設定がないモデルに対する、グローバルな最大コンテキスト長のフォールバック値。 |
USAGE_TOKEN_BUFFER |
100 |
使用量クォータの追跡時に予約される追加のトークン余裕分。 |
| 変数 | デフォルト | 説明 |
|---|---|---|
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
未設定 | .rtk/trust.json ハッシュなしでプロジェクトの .rtk/filters.json を信頼します。管理されたローカル開発環境でのみ使用してください。 |
メモリエンジン(プラン 21)
Section titled “メモリエンジン(プラン 21)”メモリ、スキル、トークン更新のイベントループコスト(#10349)
Section titled “メモリ、スキル、トークン更新のイベントループコスト(#10349)”OmniRoute は単一の Node プロセスです。メモリの抽出/取得、スキルの注入、プロバイダートークンの更新は、GET /healthz およびダッシュボードと同じイベントループ上で実行されます。これらはワーカースレッドではありません。
| 処理 | コード | デフォルト | オペレーターによる制御 |
|---|---|---|---|
| メモリの抽出 / 取得 | src/lib/memory/ |
ダッシュボードの memoryEnabled(デフォルトでオン) | 設定 → メモリ でオフにします。設定で機能を無効化する以外に、独立した環境変数のキルスイッチはありません。 |
| スキルの注入 | src/lib/skills/injection.ts |
ダッシュボードの skillsEnabled(デフォルトでオン) | 設定 → メモリ/スキル(skillsEnabled)でオフにします。以下のサンドボックス設定は、注入がすでにオンになっている場合の実行範囲を制限するだけです。 |
| トークンの更新 | src/sse/services/tokenRefresh.ts |
接続済みの OAuth/Web プロバイダーではオン | プロバイダーを切断するか、トークンを有効な状態に保ちます。現時点では TOKEN_REFRESH=0 という環境変数はありません。 |
負荷のないマシンで /healthz が遅い場合は、まずメモリとスキルを無効にしてから、カタログ/圧縮の負荷を確認してください(#10303、#9685)。これらの機能は await ポイントで処理を譲りますが、それでも単一スレッドを奪い合います。
永続メモリサブシステム(src/lib/memory/)の埋め込みレイヤー、ベクトルストア、および再ランキング設定。
| 変数 | デフォルト | 説明 |
|---|---|---|
MEMORY_EMBEDDING_CACHE_TTL_MS |
300000(5 分) |
インメモリ埋め込みキャッシュの TTL(ソース/モデル/次元シグネチャごと)。 |
MEMORY_EMBEDDING_CACHE_MAX |
1000 |
埋め込みキャッシュに保持する LRU エントリの最大数。 |
MEMORY_TRANSFORMERS_MODEL |
Xenova/all-MiniLM-L6-v2 |
オプトインの @huggingface/transformers ローカル MiniLM パイプライン(約 23 MB、int8、RAM 約 400 MB)用の HF リポジトリ ID。 |
MEMORY_STATIC_MODEL |
minishlab/potion-base-8M |
静的な potion/Model2Vec ルックアップテーブル埋め込み器用の HF リポジトリ ID。キャッシュディレクトリへ遅延ダウンロードされます。 |
MEMORY_STATIC_CACHE_DIR |
<DATA_DIR>/embeddings |
静的 potion モデルファイルのキャッシュに使用するディレクトリ。未設定の場合は DATA_DIR 配下がデフォルトです。 |
HF_HUB_ENDPOINT |
https://huggingface.co |
staticPotion.ts が使用する Hugging Face Hub のベース URL を上書きします(例: エアギャップ環境向けのミラーエンドポイント)。 |
MEMORY_VEC_TOP_K |
20 |
src/lib/memory/vectorStore.ts 内の sqlite-vec 総当たりベクトル検索で使用するデフォルトの top-K。 |
MEMORY_RRF_K |
60 |
FTS5 とベクトルのハイブリッド検索における Reciprocal Rank Fusion の定数 k(sqlite-vec のレシピ)。 |
VECTOR_STORE_DISABLE_VEC |
false |
getVectorStore()(src/lib/memory/vectorStore.ts)のテスト/診断用シーム。true の場合、ベクトルストアを強制的に null にし(sqlite-vec のないクラウド/WASM 環境をシミュレート)、メモリ検索を FTS5 キーワード検索へフォールバックさせます。本番環境では未設定のままにしてください。 |
NOTION_API_KEY |
(未設定) | Notion バックエンド用の API キー(genericBackend.ts の既知のバックエンドプリセットで使用)。 |
NOTION_API_URL |
https://api.notion.com/v1 |
Notion API のベース URL(セルフホスト型の Notion 代替サービス向けに上書き可能)。 |
OBSIDIAN_API_KEY |
(未設定) | Obsidian Vault バックエンド用の API キー(genericBackend.ts の既知のバックエンドプリセットで使用)。 |
OBSIDIAN_API_URL |
http://localhost:27123 |
Obsidian Vault API のベース URL(リモート Vault 向けに上書き可能)。 |
MEMORY_TYPED_DECAY_ENABLED |
false |
TV6 の型付きメモリ減衰のマスタースイッチ。オプトイン(デフォルトでオフ) — スイープは減衰したメモリを削除します。オフの場合、access_count/last_accessed_at は純粋なテレメトリであり、何も削除されません。 |
MEMORY_TYPED_DECAY_EPISODIC_DAYS |
30 |
未使用の episodic メモリが減衰するまでの TTL(日数)。0 にすると episodic も減衰しません。永続タイプ(factual/procedural/semantic)は常に減衰しません。減衰時間は last_accessed_at を基準に再設定されます。 |
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY |
3 |
注入回数がこの値以上(>=)になったメモリは、タイプに関係なく減衰しなくなります。0 にするとアクセス回数による減衰免除が無効になります。 |
MEMORY_TYPED_DECAY_SWEEP_INTERVAL |
0(無効) |
src/lib/memory/typedDecay.ts のオプションの定期的な減衰スイープの間隔(秒)。0/未設定 = 定期スイープなし。二重のオプトイン方式であり、MEMORY_TYPED_DECAY_ENABLED=true も必要です。 |
OMNIROUTE_STRICT_SYSTEM_PROVIDERS |
(未設定) | system メッセージをインデックス 0 でのみ受け付ける、カンマ区切りのプロバイダー ID(大文字と小文字を区別しない)(src/lib/memory/injection.ts)。これらのプロバイダーでは、キャッシュに安全な配列中間へのメモリ挿入は複数ターンの会話で安全ではないため、代わりにメモリが先頭の system メッセージとしてマージ/先頭追加されます。デフォルトは xiaomi-mimo/mimo のみです。チャットテンプレートで同じ「先頭に単一の system メッセージ」という制約を適用する、セルフホスト型の OpenAI 互換エンドポイント(例: Qwen3.5+/3.6)向けに追加してください。 |
低 RAM Docker の例
Section titled “低 RAM Docker の例”128 はダッシュボード専用です。このヒープサイズでは、コーディングエージェントが長時間の /v1/responses 中に FATAL ERROR になります。この例を Claude/Codex/Grok ゲートウェイとして使用しないでください。
OMNIROUTE_MEMORY_MB=128PROMPT_CACHE_MAX_SIZE=20PROMPT_CACHE_MAX_BYTES=524288 # 512 KBSEMANTIC_CACHE_MAX_SIZE=25SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MBSTREAM_HISTORY_MAX=1018. 料金同期
Section titled “18. 料金同期”外部ソースからモデルの料金データを自動的に同期します。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
PRICING_SYNC_ENABLED |
false |
src/lib/pricingSync.ts |
定期的な料金同期をオプトインで有効にします。 |
PRICING_SYNC_INTERVAL |
86400 (24h) |
src/lib/pricingSync.ts |
同期間隔(秒単位)。 |
PRICING_SYNC_SOURCES |
litellm |
src/lib/pricingSync.ts |
カンマ区切りのデータソース。 |
Arena ELO 同期
Section titled “Arena ELO 同期”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
ARENA_ELO_SYNC_ENABLED |
true |
src/shared/constants/featureFlagDefinitions.ts |
Arena AI リーダーボードの ELO を定期的に同期します。Dashboard の Feature Flags から設定するか、false にしてオプトアウトできます。 |
MODELS_CATALOG_PREFIX_MODE |
dual |
src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts |
GET /v1/models のモデル ID に使用するプレフィックス形式。dual は、すべてのモデルについて短いエイリアスプレフィックスと正規プロバイダープレフィックスの両方を公開します(後方互換性のため、カタログのサイズはおよそ2倍になります)。alias はモデルごとに1つの ID を出力します。canonical は完全なプロバイダー ID プレフィックスのみを出力します(エイリアスがすでに正規 ID であるプロバイダーは、単一のエントリを維持します)。クライアントはリクエストごとに ?prefix=alias を指定して上書きできます。API_REFERENCE を参照してください。 |
ARENA_ELO_SYNC_INTERVAL |
86400 (24h) |
src/lib/arenaEloSync.ts |
同期間隔(秒単位)。 |
PromptQL Playground プロバイダー(非公式/実験的)
Section titled “PromptQL Playground プロバイダー(非公式/実験的)”prompt.ql.app 用にリバースエンジニアリングされた GraphQL セッションブリッジ(src/shared/constants/providers/web-cookie.ts)。すべて任意です。デフォルトでは公開 Playground エンドポイントを使用します。セルフホストまたは代替の PromptQL デプロイメントを使用する場合にのみ上書きしてください。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
PROMPTQL_GRAPHQL_ENDPOINT |
https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql |
open-sse/executors/promptql.ts |
チャット/セッション操作に使用する GraphQL エンドポイント。 |
PROMPTQL_CREDITS_ENDPOINT |
https://data.pro.ql.app/v1/graphql |
open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts |
クレジット残高/使用量の照会に使用する GraphQL エンドポイント。 |
PROMPTQL_TOKEN_REFRESH_URL |
https://auth.pro.ql.app/ddn/project/token |
open-sse/executors/promptql.ts |
ベストエフォート方式のトークン更新に使用するエンドポイント。 |
PROMPTQL_POLL_TIMEOUT_MS |
180000 |
open-sse/executors/promptql.ts |
タイムアウトするまで thread_events をポーリングする最大時間(ミリ秒)。 |
HyperAgent Web プロバイダー(非公式/実験的)
Section titled “HyperAgent Web プロバイダー(非公式/実験的)”hyperagent.com 向けにリバースエンジニアリングされたセッションブリッジ(src/shared/constants/providers/web-cookie.ts)。任意設定です。デフォルトでは公開の請求/使用量エンドポイントを参照します。セルフホスト環境または代替の HyperAgent デプロイメントを使用する場合にのみ上書きしてください。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
HYPERAGENT_USAGE_URL |
https://hyperagent.com/api/settings/billing/usage |
open-sse/services/usage/hyperagent.ts |
請求/使用量のクレジットブロックを取得するために使用されるエンドポイント。 |
Kilo Code 使用量クォータ
Section titled “Kilo Code 使用量クォータ”Kilo Code プロバイダー向けの個人 USD 残高および Kilo Pass 使用量の照会。任意設定です。デフォルトでは公開 Kilo API を参照します。リレーまたはテストフィクスチャを使用する場合にのみ上書きしてください。認証には、接続に既存の OAuth アクセストークンが使用されます。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
KILO_API_URL |
https://api.kilo.ai |
open-sse/services/usage/kilocode.ts |
Kilo Code の個人残高および Kilo Pass の使用量を取得するために使用されるベース URL。 |
Adobe Firefly Web プロバイダー(非公式/実験的)
Section titled “Adobe Firefly Web プロバイダー(非公式/実験的)”Adobe Firefly Web プロバイダー向けのブラウザー駆動型セッション更新
(open-sse/services/adobeFireflyBrowserLogin.ts、open-sse/services/adobeFireflySession.ts、
open-sse/services/adobeFireflyClient.ts)。任意設定です。すべてのデフォルト値は通常の
デスクトップインストール向けに調整されています。
#9255 で削除されました。 旧 CDP 接続型 Chrome ランタイム(adobeFireflyChromeRuntime.ts)は Playwright ブラウザーログインサービスに置き換えられ、その設定項目は存在しなくなりました。 ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART 変数、および ADOBE_FIREFLY_LOGIN_WAIT_MS と ADOBE_FIREFLY_FORTER_WAIT_MS はコードベース内の どこからも読み取られないため、設定しても効果はありません。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
ADOBE_FIREFLY_CHROME_HEADLESS |
0 |
open-sse/services/adobeFireflyBrowserLogin.ts |
真のヘッドレス Chrome を使用するには 1 に設定します(生成では動作しないことが既知であり、デバッグ専用です)。 |
ADOBE_FIREFLY_BROWSER_REFRESH |
1 |
open-sse/services/adobeFireflySession.ts |
事前のブラウザーウォームアップを有効化/無効化します。0 にすると事前ウォームアップが無効になります(バッチ途中の 408 リカバリーは引き続き適用されます)。 |
ADOBE_FIREFLY_SESSION_DISK |
1 |
open-sse/services/adobeFireflySession.ts |
Adobe Firefly セッションのディスクへの永続化を無効にするには 0 に設定します。 |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
(未設定) | open-sse/services/adobeFireflySession.ts |
連続する送信間に適用される最小間隔(ms)。組み込みのデフォルト値を上書きします。 |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
(未設定) | open-sse/services/adobeFireflySession.ts |
バッチ成功後に追加される待機時間(ms)。組み込みのデフォルト値を上書きします。 |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
(未設定) | open-sse/services/adobeFireflyClient.ts |
生成リクエストを送信する前の基本遅延(ms)。組み込みのデフォルト値を上書きします。 |
19. モデル同期(開発用)
Section titled “19. モデル同期(開発用)”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
MODELS_DEV_SYNC_ENABLED |
(未設定) | src/lib/modelsDevSync.ts |
models.dev の料金同期を強制的に上書きします。未設定 = 設定 > AI(modelsDevSyncEnabled)に従います。0/false/off/no は DB の設定より優先され、定期同期と getModelsDevPricing() による SQL/JSON スキャンの両方をスキップします(ダッシュボードが同じイベントループ上で停止した場合の復旧用)。1/true/on/yes を指定すると、同期が強制的に有効になります。料金の保存/消去時には引き続き backupDbFile("pre-write") が呼び出されますが、60 分間のスロットリング中、または DISABLE_SQLITE_AUTO_BACKUP が設定されている場合は何も実行されません。 |
MODELS_DEV_SYNC_INTERVAL |
86400(24時間) |
src/lib/modelsDevSync.ts |
開発時のモデルカタログ同期の間隔(秒単位)。 |
CONTEXT_WINDOW_RECONCILE_INTERVAL |
86400(24時間) |
src/lib/contextWindowResolver.ts |
自己修正型コンテキストウィンドウ調整処理(5004)の実行間隔(秒単位)。/models の検出によってプロバイダーから宣言されたウィンドウがカタログと異なる場合、それらを auto:discovery オーバーライドとして固定します。無効にするには 0 に設定します。同期済みのデータを再利用し(新たな取得は行いません)、manual オーバーライドを上書きすることはありません。 |
20. プロバイダー固有の設定
Section titled “20. プロバイダー固有の設定”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OPENROUTER_CATALOG_TTL_MS |
86400000(24時間) |
src/lib/catalog/openrouterCatalog.ts |
OpenRouterモデルカタログのキャッシュTTL。 |
MODEL_CATALOG_INCLUDE_NAMES |
true |
src/shared/constants/featureFlagDefinitions.ts |
/v1/modelsレスポンスに表示用のnameフィールドを含めます。IDのみを想定するクライアントでは無効にしてください。 |
CATALOG_BUILD_TIMEOUT_MS |
8000(8秒) |
src/app/api/v1/models/catalogCache.ts |
統合されたGET /v1/modelsカタログ再構築のコールドパス待機時間の上限(#12627)。タイムアウト時、正常な直近の200レスポンスが存在する場合は、それを返します。 |
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS |
2592000000(30日) |
src/lib/db/models/activeSyncedCatalog.ts |
接続で同期されたモデル一覧がルーティングの信頼できる情報源ではなくなり、レジストリへのフォールオープンが行われるまでの期間(#12849)。タイムスタンプが一度も設定されていない行は古いものと見なされます。 |
NANOBANANA_POLL_TIMEOUT_MS |
120000 |
open-sse/handlers/imageGeneration.ts |
NanoBanana画像生成ジョブの最大待機時間。 |
NANOBANANA_POLL_INTERVAL_MS |
2500 |
open-sse/handlers/imageGeneration.ts |
NanoBananaジョブのポーリング頻度。 |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
8000 |
open-sse/services/adobeFireflyUpscale.ts |
Adobe Fireflyアップスケール送信再試行における指数バックオフの基本遅延時間。 |
AWS_REGION |
(未設定) | src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts |
AWS Bedrockエンドポイント(Kiro、音声)の構築に使用するリージョン。 |
AWS_DEFAULT_REGION |
(未設定) | src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts |
AWS_REGIONが設定されていない場合のフォールバック。 |
CLOUDFLARE_ACCOUNT_ID |
(未設定) | open-sse/executors/cloudflare-ai.ts |
Cloudflare Workers AIのアカウントID。 |
CLOUDFLARE_PLAYGROUND_CHROME_PATH |
(未設定) | open-sse/executors/cloudflare-playground.ts |
Cloudflare AI Playgroundエグゼキューター用のデスクトップ版Chromeバイナリへの完全パス。ヘッドレスフィンガープリントチェックによってPlaywright同梱のChromiumがブロックされる場合に使用します。 |
CLOUDFLARE_API_BASE |
https://api.cloudflare.com/client/v4 |
src/app/api/settings/proxy/cloudflare-deploy/route.ts |
プロキシプールのWorkersリレーデプロイヤーが使用するCloudflare REST APIのベースURLを上書きします(#4640 / 9router#1360)。 |
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT |
omniroute-relay |
src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx |
プロキシプールの「Deploy Relay」モーダルで提案されるデフォルトのworkerプロジェクト名。 |
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED |
true |
src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx |
falseに設定すると、Proxy PoolタブでCloudflare Workersリレーオプションが非表示になります。 |
CLOUDFLARED_BIN |
自動検出 | src/lib/cloudflaredTunnel.ts |
cloudflaredバイナリへのカスタムパス。 |
CLOUDFLARED_PROTOCOL |
http2 |
src/lib/cloudflaredTunnel.ts |
トンネル転送プロトコル:http2(デフォルト)、quic、またはauto。 |
CLOUDFLARED_CONFIG |
(未設定) | src/lib/cloudflaredTunnel.ts |
ローカルで管理されるcloudflaredのconfig.yml(tunnel:、credentials-file:、ingress:を含む)へのパス。設定されている場合、OmniRouteは一時的なクイックトンネルの代わりにtunnel --config <path> run(名前付きトンネル)を実行します。 |
CLOUDFLARED_HOSTNAME |
(設定のingressから取得) | src/lib/cloudflaredTunnel.ts |
publicUrl/apiUrlとして報告される名前付きトンネルの公開ホスト名(例:ai.example.com)の上書き設定。未設定の場合、設定内の最初のingressホスト名から読み取られます。 |
DENO_DEPLOY_API_BASE |
https://api.deno.com/v2 |
src/app/api/settings/proxy/deno-deploy/route.ts |
プロキシプールのリレーデプロイヤーが使用する Deno Deploy REST API のベースを上書きします(#4643 / 9router#1437)。 |
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT |
omniroute-deno-relay |
src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx |
プロキシプールの「Deploy Relay」モーダルで提案される、デフォルトの Deno Deploy アプリ名です。 |
NEXT_PUBLIC_DENO_RELAY_ENABLED |
true |
src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx |
false に設定すると、Proxy Pool タブで Deno Deploy リレーオプションが非表示になります。 |
SEARCH_CACHE_TTL_MS |
300000(5分) |
open-sse/services/searchCache.ts |
検索 API(Perplexity、Brave など)のレスポンスキャッシュの TTL です。 |
ENABLE_CC_COMPATIBLE_PROVIDER |
false |
src/shared/utils/featureFlags.ts |
Claude Code 専用リレー向けの実験的な CC 互換プロバイダー UI を表示します。 |
NINEROUTER_HOST |
127.0.0.1 |
open-sse/executors/ninerouter.ts |
組み込み 9router インスタンスがリッスンするホストを上書きします。 |
NINEROUTER_PORT |
20130 |
open-sse/executors/ninerouter.ts |
組み込み 9router インスタンスがリッスンするポートを上書きします。 |
EMBED_WS_PROXY_HOST |
127.0.0.1 |
src/lib/services/embedWsProxy.ts |
組み込みサービスの WebSocket プロキシをバインドするホストです(デフォルトではループバックのみ)。 |
EMBED_WS_PROXY_PORT |
20131 |
src/lib/services/embedWsProxy.ts |
組み込みサービスの WebSocket プロキシサーバー用ポートです。 |
CLIPROXYAPI_HOST |
127.0.0.1 |
open-sse/executors/cliproxyapi.ts |
CLIProxyAPI ブリッジのホストです(レガシー統合)。 |
CLIPROXYAPI_PORT |
5544 |
open-sse/executors/cliproxyapi.ts |
CLIProxyAPI ブリッジのポートです。 |
CLIPROXYAPI_API_KEY |
(空) | open-sse/handlers/chatCore/cliproxyapiCredentials.ts |
cliproxyapi_api_key 設定が存在しない場合に使用するデータプレーンキーのフォールバックです。 |
CLIPROXYAPI_MANAGEMENT_KEY |
(空) | src/lib/services/cliproxyAccountHealth.ts |
外部管理されている CLIProxyAPI インスタンスからアカウントの正常性情報を読み取るための管理キーです。 |
CLIPROXYAPI_CONFIG_DIR |
~/.cli-proxy-api |
src/lib/versionManager/processManager.ts |
CLIProxyAPI の設定ディレクトリです。 |
CLIPROXY_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
docker-compose が cliproxyapi サイドカーを公開するホストインターフェースです(#12578)。そのデータボリュームにはプロバイダーの OAuth/API 認証情報が保持され、固定されたイメージには環境変数ベースのデータプレーン api-keys 上書き機能がなく(マウントされた config.yaml のみ)、0.0.0.0 にすると認証情報を保持するサービスが LAN 全体に公開されます。 |
MUX_SERVICE_PORT |
8322 |
src/lib/services/bootstrap.ts |
組み込み Mux(coder/mux)エージェントオーケストレーションデーモンがリッスンするポートを上書きします(常に 127.0.0.1)。 |
OPENWA_SERVICE_PORT |
8323 |
src/lib/services/bootstrap.ts |
組み込み open-wa(WhatsApp Web 自動化)デーモンがリッスンするポートを上書きします(常に 127.0.0.1)。 |
DARIO_HOST |
127.0.0.1 |
open-sse/executors/dario.ts |
Dario 組み込みサービスのバインド/接続ホストです(デフォルトではループバックのみ)。 |
DARIO_PORT |
3456 |
open-sse/executors/dario.ts |
Dario 組み込みサービスのポートです。 |
DARIO_HOST |
127.0.0.1 |
open-sse/executors/dario.ts |
Dario 組み込みサービスのバインド/接続ホストです(デフォルトではループバックのみ)。 |
DARIO_PORT |
3456 |
open-sse/executors/dario.ts |
Dario 組み込みサービスのポート。 |
LOCAL_HOSTNAMES |
(空) | open-sse/config/providerRegistry.ts |
「ローカル」として扱う追加のホスト名(Docker サービス名など)。カンマ区切りで指定します。 |
ENABLE_CC_COMPATIBLE_PROVIDER は、Claude Code クライアントのみを受け付けるサードパーティ製リレー専用です。
OmniRoute は、それらのリレーがリクエストを受け付けられるようにリクエストを書き換えます。Claude Code CLI のみを使用する場合や、
これらのリレーが何かわからない場合は、この設定を無効のままにし、代わりに通常の Anthropic 互換プロバイダーを追加してください。
21. プロキシのヘルスチェック
Section titled “21. プロキシのヘルスチェック”| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
PROXY_FAST_FAIL_TIMEOUT_MS |
2000 |
src/lib/proxyHealth.ts |
高速失敗ヘルスチェックのタイムアウト。 |
PROXY_LATENCY_WINDOW_HOURS |
3 |
src/lib/db/proxies.ts |
レイテンシー最適化プール戦略で、候補プロキシの平均レイテンシーを計算するための時間枠(時間単位)。 |
PROXY_HEALTH_CACHE_TTL_MS |
30000 |
src/lib/proxyHealth.ts |
ヘルスチェック結果のキャッシュ TTL。 |
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS |
2000 |
src/lib/proxyHealth.ts |
失敗したプロキシヘルスプローブのキャッシュ TTL。一時的なプロキシタイムアウトが高い同時実行数のもとで発生した場合に、完全に停止しているプロキシに対する高速失敗を無効にすることなく迅速に再試行できるよう、PROXY_HEALTH_CACHE_TTL_MS より短く設定してください。 |
PROXY_HEALTH_ENABLED |
true |
src/lib/proxyHealth/scheduler.ts |
登録済みプロキシを定期的にプローブするバックグラウンドプロキシヘルススケジューラーを無効にするには、false に設定します。 |
PROXY_HEALTH_INTERVAL_MS |
600000 |
src/lib/proxyHealth/scheduler.ts |
バックグラウンドヘルススケジューラーのスイープ間隔(ミリ秒単位、最小値は 60000)。 |
PROXY_HEALTH_RECOVERY_INTERVAL_MS |
600000 |
src/lib/proxyHealth/scheduler.ts |
バックグラウンド復旧パスの間隔(ミリ秒):以前に異常と判定されたプロキシを再プローブする頻度を指定し、復旧したプロキシが再起動なしでローテーションに戻れるようにします。60000 未満の値はデフォルト値にフォールバックします。 |
PROXY_HEALTH_TEST_URL |
https://httpbin.org/ip |
src/lib/proxyHealth/probeTarget.ts |
スケジューラーおよび /api/settings/proxies/auto-test エンドポイントで使用される到達可能性プローブのターゲットです。公開されているデフォルトのターゲットを使用しないようにするには、内部またはセルフホストの URL を指定してください。 |
PROXY_HEALTH_TEST_CONCURRENCY |
10 |
src/lib/proxyHealth/probeTarget.ts |
バッチごとに同時に開始されるプローブ数です。スケジューラーと /api/settings/proxies/auto-test エンドポイントで共有されます。最小値は 1、最大値は 50 です。 |
PROXY_HEALTH_TEST_STAGGER_MS |
100 |
src/lib/proxyHealth/probeTarget.ts |
バッチ内で 2 つのプローブを送信する間の遅延(ミリ秒)です。これがない場合、バッチ全体が同時に送信されるため、共有の送信元 IP によってレート制限のあるターゲットの制限に抵触する可能性があります。間隔を無効にするには 0 を設定します。最大値は 5000 です。 |
PROXY_HEALTH_USE_PROVIDER_TARGET |
true |
src/lib/proxyHealth/providerProbeTarget.ts |
プロキシに割り当てられたプロバイダーの実際のホスト(GET /models、API キーなし)へのプローブを停止し、代わりに常に PROXY_HEALTH_TEST_URL を使用するには、“false” に設定します。 |
PROXY_HEALTH_AUTO_DEACTIVATE |
false |
src/lib/proxyHealth/statusPolicy.ts |
false(デフォルト)の場合、自動到達可能性プローブ(スケジューラーと /api/settings/proxies/auto-test の「Test All」ボタン)は読み取り専用であり、プロキシのステータスを書き換えることはありません。アクティブ/非アクティブを設定できるのはオペレーターのみとなるため、不安定なプローブによって割り当て済みのプロキシが使用不能になることを防げます(#6246)。従来のテストと設定を行う動作に戻すには、true に設定します。 |
FLUSH_EMPTY_RETRY_ENABLED |
false |
src/shared/utils/featureFlags.ts |
オプトインの機能フラグです(FEATURE_FLAGS.md を参照。ダッシュボードの DB オーバーライドが優先されます)。true(または 1、yes)に設定すると、空の 200 またはコンテンツが空の 502 を返す代わりに、空の変換済みストリーミングターンを通常の認証情報パス経由で再試行します(最大 STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX 回)。 |
PROXY_POOL_EGRESS_OBSERVATION |
false |
src/shared/utils/featureFlags.ts |
オプトインの機能フラグです(FEATURE_FLAGS.md を参照。ダッシュボードの DB オーバーライドが優先されます)。true(または 1、yes)に設定すると、ダッシュボードのプロキシプール配下に読み取り専用の送信元観測情報が表示されます(プロキシログに基づく、過去 24 時間の一意な送信元 IP、接続数、および 1 つの IP の背後で最も多く観測された接続数)。ルーティングには一切使用されません。 |
PROXY_AUTO_REMOVE |
false |
src/lib/proxyHealth/scheduler.ts |
true に設定すると、連続して繰り返し失敗したプロキシをスケジューラーが自動的に削除します。 |
PROXY_AUTO_REMOVE_AFTER |
3 |
src/lib/proxyHealth/scheduler.ts |
スケジューラーがプロキシを自動削除するまでの連続失敗回数(PROXY_AUTO_REMOVE=true の場合)。 |
PROXY_AUTO_DISABLE |
false |
src/lib/proxyHealth/scheduler.ts |
true に設定すると、連続して繰り返し失敗したプロキシを削除する代わりに、スケジューラーがソフト無効化(ステータスは dead、削除はされない)します。PROXY_AUTO_REMOVE に代わる非破壊的な選択肢です。プロキシはプール/ローテーションの解決対象から即座に除外され(スコーププール解決で使用される稼働ステータスフィルターにより、すでに除外されます)、プローブに再び合格し始めると自動的に再有効化されます。しきい値は PROXY_AUTO_REMOVE_AFTER と共通です。両方のフラグが true の場合は、PROXY_AUTO_REMOVE が優先されます。 |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
false |
src/shared/constants/featureFlagDefinitions.ts |
プロキシ到達可能性の事前チェックに失敗した場合、OAuth およびプロバイダー検証フローが固定されたプロキシをバイパスし、直接接続することを許可します。実際の優先順位は、Feature Flags DB のオーバーライド > 環境変数 > デフォルトです。 |
RATE_LIMIT_MAX_WAIT_MS |
30000(30秒) |
src/lib/resilience/settings.ts |
デフォルトのキュー待機時間枠:リクエストが拒否されてアップストリームに到達しなくなるまでに、プロバイダースロットを待機し、キューに留まることができる時間です。ジョブの実行が開始されるとタイマーは解除されます。実行時間は RATE_LIMIT_EXECUTION_MAX_WAIT_MS によって別途制限されます。環境変数で設定されるのはデフォルト値のみです。永続化された resilienceSettings.requestQueue.maxWaitMs、次に接続ごとの rateLimitOverrides.maxWaitMs が、それぞれこの値より優先されます。 |
RATE_LIMIT_EXECUTION_MAX_WAIT_MS |
600000(10分) |
open-sse/services/rateLimitManager.ts |
許可されたリクエストが、レート制限の予約期限が切れるまで実行状態に留まることができる時間の上限です。キュー待機時間枠とは分離されているため、非インクリメンタルゲートウェイでフェッチ開始が遅い場合でもタイムアウトしません(#12027)。 |
RATE_LIMIT_MAX_QUEUE_DEPTH |
0(無効) |
open-sse/services/rateLimitManager.ts |
キュー受付数の上限:すでにこの数のリクエストがキューに入っている場合、429 queue_full で拒否します。0 = 無制限(デフォルト)。 |
RATE_LIMIT_AUTO_ENABLE |
(未設定) | open-sse/services/rateLimitManager.ts |
永続化された Dashboard 設定に関係なく、レート制限の自動有効化セーフティネットを強制的にオン/オフします。強制的にオンにするには true/1/on、強制的にオフにするには false/0/off を指定できます。 |
PROVIDER_COOLDOWN_ENABLED |
(未設定 → オフ) | open-sse/services/providerCooldownTracker.ts |
リクエストをまたぐグローバルなプロバイダー/接続クールダウン追跡をオプトインで有効にします。デフォルトではオフです(接続クールダウン/プロバイダーサーキットブレーカーと機能が重複します)。有効にするには true/1/on を指定します。 |
PROVIDER_COOLDOWN_MIN_MS |
5000 |
open-sse/services/providerCooldownTracker.ts |
障害が発生したプロバイダー/接続を再試行するまでの最小クールダウン時間(ms)。連続した失敗回数に応じて指数関数的に延長されます。PROVIDER_COOLDOWN_ENABLED が有効な場合にのみ使用されます。 |
PROVIDER_COOLDOWN_MAX_MS |
300000(5分) |
open-sse/services/providerCooldownTracker.ts |
障害が発生したプロバイダー/接続を再試行するまでの最大クールダウン時間(ms)の上限。この時間を経過すると、ほかの条件にかかわらず再試行されます。PROVIDER_COOLDOWN_ENABLED が有効な場合にのみ使用されます。 |
STREAM_RECOVERY_ENABLED |
(未設定 → オフ) | src/lib/resilience/settings.ts(初期値)→ open-sse/services/streamRecovery.ts(ロジック) |
**概要:**切り詰められたアップストリームストリームを透過的に復旧します(free-claude-codeからの移植)。最初のSSEウィンドウを最大STREAM_RECOVERY.HOLDBACK_MS(750 ms)まで保留することで、クライアントにバイトが到達する前に発生した_コミット前_の切断を、透過的に再オープンして再試行します。**有効にする場合:**不安定なアップストリームや、ストリーム開始時に0バイトで頻繁に切断されるアップストリームで有効にします。すべてのストリームで最初のトークンが返るまでに最大750 msの遅延が追加されることを許容できない場合は、オフのままにしてください。true/1/on で有効になります。永続化されるResilience設定の初期値として使用されます。設定後はDashboardの設定が優先されます。 |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
(未設定 → オフ) | src/lib/resilience/settings.ts(初期値)→ open-sse/services/streamRecovery.ts(ロジック) |
**概要:**ストリーム途中からの継続(フェーズ4.4)。_コミット後_に切り詰めが発生した場合(すでにバイトがクライアントに到達している場合)、部分的なテキストをassistant prefillとして再リクエストし、不足している接尾部分を結合します。プレーンテキストのOpenAI互換ストリームのみが対象で、ツール呼び出しの処理中には実行されません。**有効にする場合:**長い生成が回答の途中で切断され、復旧された末尾部分がトークン単位ではなく一括で到着することを許容できる場合に有効にします。STREAM_RECOVERY_ENABLED とは独立しています(リスク特性が異なります)。true/1/on で有効になります。 |
STREAM_THROUGHPUT_WATCHDOG_ENABLED |
(未設定 → オフ) | src/lib/resilience/settings.ts → open-sse/services/throughputWatchdog.ts |
アクティブなストリームの有用な出力を監視するウォッチドッグをオプトインで有効にします。チャンクを送信し続けていても、設定されたassistant出力レートを下回っているストリームを検出します。ハートビート、使用量イベント、空のdelta、ツール/reasoningフェーズは進捗として扱われません。アイドルタイムアウトおよびハードデッドラインタイムアウトとは別の機能です。 |
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS |
30000 |
src/lib/resilience/settings/normalize.ts |
スループット評価を開始するまでの猶予期間。0~600000 msの範囲に制限されます。 |
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS |
30000 |
src/lib/resilience/settings/normalize.ts |
有用な出力を測定するローリングウィンドウ。1000~600000 msの範囲に制限されます。中断するには、1つの完全なウィンドウが必要です。 |
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND |
4 |
src/lib/resilience/settings/normalize.ts |
assistant出力の最小UTF-8バイトレート(保守的なトークン換算値)。1~1000000の範囲に制限されます。 |
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES |
1 |
src/lib/resilience/settings/normalize.ts |
測定可能とみなされる、ゼロではない有用な出力サンプルの最小サイズ。1~1000000バイトの範囲に制限されます。 |
HEALTHCHECK_STAGGER_MS |
3000 |
src/lib/tokenHealthCheck.ts |
起動時にプロバイダートークンのヘルスチェックを実行する間隔(ms)。 |
HEALTHCHECK_JITTER_MIN_MS |
500 |
src/lib/tokenHealthCheck.ts |
バーストを防ぐため、プロバイダートークンのヘルスチェック間で HEALTHCHECK_STAGGER_MS に加えて適用されるランダム化ジッターの最小値(ms)(Issue #1220)。 |
HEALTHCHECK_JITTER_MAX_MS |
5000 |
src/lib/tokenHealthCheck.ts |
バーストを防ぐため、プロバイダートークンのヘルスチェック間で HEALTHCHECK_STAGGER_MS に加えて適用されるランダム化ジッターの最大値(ms)(Issue #1220)。 |
HEALTHCHECK_BATCH_SIZE |
20 |
src/lib/tokenHealthCheck.ts |
起動時のトークンヘルスチェック走査における同時チェックのバッチサイズ。値を大きくすると、より多くの接続を並列にチェックし、値を小さくするとバースト負荷を軽減します(Issue #7875、#7719 のリグレッション)。 |
REQUEST_RETRY |
2 |
src/sse/services/cooldownAwareRetry.ts |
モデル単位のクールダウン応答を受けた際、クライアントにエラーを返す前に自動的に再試行する回数。 |
MAX_RETRY_INTERVAL_SEC |
30 |
src/sse/services/cooldownAwareRetry.ts |
クールダウンの再試行間におけるバックオフ間隔の最大値(秒)。上流の Retry-After にかかわらず、この値が上限となります。 |
HEADROOM_URL |
http://localhost:8787 |
src/lib/headroom/detect.ts |
Headroom トークン節約プロキシの URL。ダッシュボードのライフサイクル(api/headroom/*)では、デフォルトでローカルの headroom-ai CLI をループバック上に起動します。外部の Docker サイドカープロキシを指定する場合にのみ上書きしてください。 |
ストリーム復旧の調整用定数
Section titled “ストリーム復旧の調整用定数”復旧時のホールドバック動作は、
open-sse/config/constants.ts(STREAM_RECOVERY)内のハードコードされた定数によって調整されます。参考として以下に示します。
これらを変更するには、環境変数ではなくコードの編集が必要です。
STREAM_RECOVERY.HOLDBACK_MS = 750— 開始時の SSE ウィンドウを保持する時間。 クライアントにバイトが送信される前に、早期切断が発生した場合に再試行できるようにします。STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536— 保持されるウィンドウの厳格な上限。タイマーにかかわらず、 このバイト数が蓄積された時点で直ちにコミット(フラッシュ+パススルー)します。STREAM_RECOVERY.EARLY_RETRY_MAX = 4— ホールドバックがまだコミットされていない間に、 上流ストリームを透過的に再オープンできる最大回数。
プロバイダー単位のスライディングウィンドウ方式レート制限(環境変数なし): FCC から移植された プロバイダー単位のスライディングウィンドウ方式レート制限の_フォールバック_はコード内に存在します (
open-sse/services/providerDefaultRateLimit.ts。open-sse/services/rateLimitManager.tsを介して接続されています)が、デフォルトのマップは空の状態で提供されており、 現時点では運用者向けの環境変数はありません。テストフックまたはコード編集によってのみ有効化されます。 そのため、意図的に上の表には記載していません。設定項目が_存在する_、(token, IP)単位の リレーリミッターはRELAY_IP_PER_MINUTE(§3 ネットワークとポート)です。
22. デバッグ
Section titled “22. デバッグ”[!CAUTION] これらの変数は詳細な出力を生成し、機密データを漏えいさせる可能性があります。本番環境では絶対に有効にしないでください。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
CURSOR_DEBUG |
(未設定) | open-sse/executors/cursor.ts |
1 に設定すると、Cursor executor の詳細ログ(デコード済み SSE チャンクなど)が有効になります。 |
CURSOR_STREAM_DEBUG |
(未設定) | open-sse/executors/cursor.ts |
CURSOR_DEBUG の後方互換エイリアスです。 |
CURSOR_DUMP_FILE |
(未設定) | open-sse/executors/cursor.ts |
CURSOR_DEBUG=1 の場合に、生のデコード済み Cursor チャンクを出力する任意のファイルパスです。 |
CURSOR_STREAM_TIMEOUT_MS |
300000 |
open-sse/executors/cursor.ts |
Cursor executor のストリームアイドルタイムアウト(ミリ秒)です。 |
CURSOR_KV_GRACE_MS |
2000 |
open-sse/executors/cursor.ts |
バイトがバッファーに残っている場合に、composer の kv_after_text ソフトターミネーターの後に設ける猶予時間(ミリ秒)です。末尾の exec_mcp ツール呼び出しがフレームを完了するための時間を確保します。 |
CURSOR_TOOL_DIRECTIVE |
有効(!== "0") |
open-sse/executors/cursor.ts |
composer-2.5 が確実にツール呼び出しを発行するようにするツールコミットディレクティブです。無効にするには 0 に設定します。 |
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND |
(未設定) | open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts |
変換後にシステムメッセージへ追加される、オペレーター定義のシステムプロンプトテキストです(変換後インジェクション)。codex/Responses および /v1/messages のパスに適用されます。また、エコーされたシステムプリアンブルブロックから除去するディレクティブのプレフィックスとしても使用されます。無効にする場合は未設定のままにしてください。 |
OMNIROUTE_STRIP_SYSTEM_PREAMBLE |
0(オフ) |
open-sse/translator/response/openai-to-claude.ts, open-sse/utils/directivePreambleStripper.ts |
1 に設定すると、openai→claude ストリームの先頭から、エコーされたシステムプロンプトのプリアンブルブロックを除去します。デフォルトではオフです。ヒューリスティクスは英語の散文を前提としており、レスポンスのペイロードを変更するため、正当にそのようなセクションで始まる応答では、そのセクションが失われます。 |
CURSOR_IMAGE_FETCH_TIMEOUT_MS |
15000 |
open-sse/utils/cursorImages.ts |
リモート image_url ビジョン入力に対する画像ごとの取得タイムアウト(ミリ秒)です。 |
CURSOR_STATE_DB_PATH |
(探索) | open-sse/utils/cursorVersionDetector.ts |
IDE のバージョン検出に使用する Cursor IDE 状態 DB の検索先を上書きします。 |
CURSOR_AGENT_CLI_VERSION |
(検出 / 固定) | open-sse/utils/cursorAgentCliVersion.ts |
Agent Run の x-cursor-client-version: cli-… に使用する Agent CLI ビルド ID(YYYY.MM.DD-<hash>)です。 |
CURSOR_AGENT_BIN |
(未設定) | open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
画像生成に使用する Cursor Agent バイナリへのパスです。未設定の場合、ハンドラーは providerSpecificData.agentBin、次に PATH を使用します。 |
CURSOR_IMG_TIMEOUT_MS |
210000 |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Cursor Agent の画像ジョブにおける画像ごとの実経過時間の上限(ミリ秒)です。 |
CURSOR_IMG_MAX_CONCURRENT |
2 |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Cursor 画像ジョブに対する共有シートの同時実行数制限です。 |
CURSOR_IMG_MODEL |
リクエスト / auto |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
画像ジョブに使用する Cursor CLI の --model を上書きします。 |
UC_IMAGE_POLL_INTERVAL_MS |
2000 |
open-sse/handlers/imageGeneration/providers/ucImage.ts |
UC(uncensored.com)画像生成結果のポーリング間隔(ミリ秒)です。 |
UC_IMAGE_POLL_TIMEOUT_MS |
60000 |
open-sse/handlers/imageGeneration/providers/ucImage.ts |
UC 画像生成結果のポーリングにおける実経過時間の上限(ミリ秒)です。 |
UC_VIDEO_POLL_INTERVAL_MS |
3000 |
open-sse/handlers/videoGeneration/providers/ucVideo.ts |
UC(uncensored.com)動画生成結果のポーリング間隔(ミリ秒)です。 |
UC_VIDEO_POLL_TIMEOUT_MS |
300000 |
open-sse/handlers/videoGeneration/providers/ucVideo.ts |
UC 動画生成結果のポーリングにおける実経過時間の上限(ミリ秒)です。 |
CURSOR_DATA_DIR |
(探索) | open-sse/utils/cursorAgentCliVersion.ts |
Cursor Agent CLI のデータディレクトリ(…/versions/<id>)を上書きします。公式 Agent が使用するものと同じ変数です。 |
CURSOR_TOKEN |
(未設定) | scripts/ad-hoc/cursor-tap.cjs |
開発者向けツールで使用される直接指定の Cursor bearer token です。 |
OMNIROUTE_LOG_REQUEST_SHAPE |
無効("1" でオプトイン) |
src/app/api/v1/chat/completions/route.ts |
"1" が設定されている場合、大きなチャットペイロードの content-type/length マーカーをログに記録します。ログノイズを減らすため、デフォルトではオフです。 |
DEBUG_RESPONSES_SSE_TO_JSON |
(未設定) | open-sse/handlers/responseTranslator.ts |
true に設定すると、Responses API の SSE→JSON 変換の詳細をログに記録します。 |
DEBUG_CLAUDE_NONSTREAM |
(未設定) | open-sse/handlers/responseTranslator.ts |
true に設定すると、Claude レスポンスの変換パスで空の textContent チャンクを表面化します(デバッグ専用)。 |
NEXT_PUBLIC_OMNIROUTE_E2E_MODE |
(未設定) | E2E テストハーネス | true に設定すると、E2E テストモード(認証の緩和、テストフック)が有効になります。 |
23. GitHub 連携
Section titled “23. GitHub 連携”ユーザーがダッシュボードから直接問題を報告できるようにします。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
GITHUB_ISSUES_REPO |
(未設定) | src/app/api/v1/issues/report/route.ts |
owner/repo 形式のリポジトリ。 |
GITHUB_ISSUES_TOKEN |
(未設定) | src/app/api/v1/issues/report/route.ts |
issues:write スコープを持つ GitHub Personal Access Token。 |
GITHUB_TOKEN |
(未設定) | Issue トリアージ / クラウドエージェントヘルパー | GITHUB_ISSUES_TOKEN のフォールバックとして使用され、src/lib/cloudAgent/* 内のクラウドエージェントヘルパーによって利用される汎用 GitHub アクセストークン。 |
デプロイシナリオ
Section titled “デプロイシナリオ”リレーバックエンドのSREガイダンス(ts/bifrost/autoの動作、9routerとCLIProxyAPIの配置、高スループット時のフォールバック戦略)については、リレーバックエンド戦略を参照してください。
最小限のローカル開発
Section titled “最小限のローカル開発”JWT_SECRET=$(openssl rand -base64 48)API_KEY_SECRET=$(openssl rand -hex 32)INITIAL_PASSWORD=dev123PORT=20128NODE_ENV=developmentDocker本番環境
Section titled “Docker本番環境”JWT_SECRET=<generated>API_KEY_SECRET=<generated>INITIAL_PASSWORD=<generated>STORAGE_ENCRYPTION_KEY=<generated>DATA_DIR=/dataPORT=20128API_PORT=20129NODE_ENV=productionAUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://localhost:20128OMNIROUTE_MEMORY_MB=8192CORS_ORIGIN=https://your-frontend.example.comエアギャップ環境 / CI
Section titled “エアギャップ環境 / CI”JWT_SECRET=test-jwt-secret-for-ciAPI_KEY_SECRET=test-api-key-secret-for-ciINITIAL_PASSWORD=testpassNODE_ENV=productionOMNIROUTE_DISABLE_BACKGROUND_SERVICES=trueAPP_LOG_TO_FILE=falseリバースプロキシ(nginx + Cloudflare)を使用したVPS
Section titled “リバースプロキシ(nginx + Cloudflare)を使用したVPS”JWT_SECRET=<generated>API_KEY_SECRET=<generated>STORAGE_ENCRYPTION_KEY=<generated>PORT=20128AUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://127.0.0.1:20128CORS_ORIGIN=https://omniroute.example.comENABLE_TLS_FINGERPRINT=trueCLI_COMPAT_ALL=124. Skills サンドボックス(v3.8.0+)
Section titled “24. Skills サンドボックス(v3.8.0+)”Skills フレームワーク(src/lib/skills/)がサンドボックス環境でユーザー定義の自動処理を実行する際に適用される制限および安全性の設定です。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
SKILLS_SANDBOX_TIMEOUT_MS |
10000(10 秒) |
src/lib/skills/builtins.ts |
サンドボックス化されたスキルコードに対する、実行ごとの実時間タイムアウト。ハード上限であり、これを超える処理は強制終了されます。 |
SKILLS_EXECUTION_TIMEOUT_MS |
(SKILLS_SANDBOX_TIMEOUT_MS にフォールバック) |
src/lib/skills/ |
高レベルのスキルオーケストレーションのタイムアウト。複数ステップのワークフローを許可するには、SKILLS_SANDBOX_TIMEOUT_MS より大きい値を設定します。 |
SKILLS_MAX_FILE_BYTES |
1048576(1 MB) |
src/lib/skills/builtins.ts |
スキルがサンドボックス内の単一ファイルから読み取れる最大バイト数。 |
SKILLS_MAX_HTTP_RESPONSE_BYTES |
256000(250 KB) |
src/lib/skills/builtins.ts |
スキル内の単一 HTTP レスポンスから取得できる最大バイト数。 |
SKILLS_MAX_SANDBOX_OUTPUT_CHARS |
100000 |
src/lib/skills/builtins.ts |
サンドボックス呼び出しから返される stdout/stderr の文字数のハード上限。 |
SKILLS_SANDBOX_NETWORK_ENABLED |
false |
src/lib/skills/builtins.ts |
サンドボックス内からのアウトバウンドネットワーク通信を許可するには、1/true に設定します。安全のため、デフォルトでは分離されています。 |
SKILLS_ALLOWED_SANDBOX_IMAGES |
(空) | src/lib/skills/builtins.ts |
サンドボックス実行を許可するコンテナイメージのカンマ区切り許可リスト。空の場合は、組み込みのデフォルトのみが許可されます。 |
SKILLS_SANDBOX_DOCKER_IMAGE |
(組み込みのデフォルト) | src/lib/skills/ |
Docker ベースのサンドボックスを起動する際に使用するコンテナイメージ。カスタムの強化済みベースイメージに固定するには上書きします。 |
SKILLS_SANDBOX_RUNTIME |
auto |
src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts |
スキルのサンドボックス化に使用するコンテナランタイム:auto | docker | apple | wsl | orbstack | podman。auto はホスト OS ごとにインストール済みの最適なランタイム(macOS では Apple Container/OrbStack、Windows では WSL Container、Linux では Podman)を選択し、利用できない場合は Docker にフォールバックします。 |
[!CAUTION]
SKILLS_SANDBOX_NETWORK_ENABLED=trueを有効にすると、任意のスキルコードから外部への通信経路が開かれます。共有デプロイ環境では、OUTBOUND_SSRF_GUARD_ENABLED=trueおよび厳格なCORS_ORIGIN/プロキシポリシーと組み合わせてください。
25. プロバイダーのクォータ、トンネル、バックアップ、その他のランタイム設定
Section titled “25. プロバイダーのクォータ、トンネル、バックアップ、その他のランタイム設定”プロバイダーのクォータエンドポイント、ネットワークトンネル(Tailscale、Ngrok、MITM デバッグプロキシ)、1Proxy の外向き通信プール、データベースバックアップ、および executor レイヤーまたはスクリプトから参照される機能ごとの小規模なオーバーライド。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
REDIS_URL |
redis://localhost:6379 |
src/shared/utils/rateLimiter.ts |
レートリミッターのバックエンドに使用する Redis 接続文字列。 |
ALIBABA_CODING_PLAN_HOST |
(本番ホスト) | open-sse/services/bailianQuotaFetcher.ts |
Alibaba Bailian の coding-plan クォータの取得に使用するホストをオーバーライドします。 |
ALIBABA_CODING_PLAN_QUOTA_URL |
ホストから導出 | open-sse/services/bailianQuotaFetcher.ts |
Alibaba Bailian の完全なクォータ URL をオーバーライドします。 |
QWEN_CLOUD_COOKIE |
(未設定) | open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Qwen Cloud / Model Studio の個人向け Token Plan クォータゲートウェイ用のコンソールセッション Cookie(推論 API キーでは読み取れません)。home.qwencloud.com › Billing › Subscription(F12 › Network)で、cs-data.qwencloud.com への任意の api.json 呼び出しから、login_qwencloud_ticket を含む Cookie リクエストヘッダー全体をコピーします。機密情報であり、セッション単位で有効です。接続ごとの Dashboard フィールド qwenCloudCookie の使用を推奨します。 |
QWEN_CLOUD_SEC_TOKEN |
(未設定) | open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Token Plan コンソールゲートウェイ用の sec_token を手動でオーバーライドします。機密情報です。未設定の場合、フェッチャーは Cookie を使用してダッシュボードの HTML から解決します。 |
QWEN_TOKEN_PLAN_HOST |
https://cs-data.qwencloud.com |
open-sse/services/qwenTokenPlanQuotaFetcher.ts |
個人向け Token Plan クォータフェッチャーのゲートウェイホストをオーバーライドします(例:Model Studio コンソールの場合は bailian-singapore-cs.alibabacloud.com)。 |
QWEN_TOKEN_PLAN_DASHBOARD_URL |
https://home.qwencloud.com/ |
open-sse/services/qwenTokenPlanQuotaFetcher.ts |
ログイン済みの HTML から sec_token を解決するために使用するダッシュボード URL。 |
ALIBABA_FREE_TIER_VISION_FE_PATH |
/costing-balance/free-quota-image-video |
open-sse/services/alibabaFreeTierQuotaFetcher.ts |
Alibaba Model Studio の無料枠のビジョン/メディアクォータを取得するための、コンソールフロントエンドパスをオーバーライドします。 |
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH |
/costing-balance/free-quota-multimodal |
open-sse/services/alibabaFreeTierQuotaFetcher.ts |
Alibaba Model Studio の無料枠マルチモーダルクォータを取得するための、コンソールフロントエンドパスのオーバーライド。 |
ALIBABA_FREE_TIER_AUDIO_FE_PATH |
/costing-balance/free-quota-audio |
open-sse/services/alibabaFreeTierQuotaFetcher.ts |
Alibaba Model Studio の無料枠オーディオクォータを取得するための、コンソールフロントエンドパスのオーバーライド。 |
ALIBABA_FREE_TIER_ALLOWLIST_PATH |
(未設定) | open-sse/services/alibabaFreeTierAllowlist.ts |
組み込みの Alibaba 無料枠テキストモデル許可リストをオーバーライドする、ローカル JSON ファイルへのオプションのパス。$DATA_DIR/alibaba-free-tier-allowlist.json、次に config/alibaba-free-tier-allowlist.json へフォールバックします。 |
CONTEXT_RESERVE_TOKENS |
1024 |
open-sse/services/contextManager.ts |
プロンプトのトークン予算を計算する際に、補完出力用として予約されるトークン数。 |
CONTEXT_KEEP_LATEST_IMAGES |
2 |
open-sse/services/contextManager.ts |
コンテキストウィンドウに収まるよう古いインライン画像を削除する際に、保持する最新のインライン画像数(#8560)。 |
MODEL_ALIAS_COMPAT_ENABLED |
有効 | open-sse/services/model.ts |
古いクライアントで使用されるレガシーなモデルエイリアス互換レイヤーの切り替え。 |
OMNIROUTE_EMERGENCY_FALLBACK |
有効 | open-sse/services/emergencyFallback.ts |
予算枯渇により失敗したリクエストを無料の nvidia/openai/gpt-oss-120b モデルへ再ルーティングする緊急フォールバックを無効にするには、false(または 0)を設定します。有効な優先順位は、Feature Flags DB のオーバーライド > 環境変数 > デフォルトです。利用できない場合、サービスは未加工の環境変数値へフォールバックします。 |
COMMAND_CODE_CALLBACK_PORT |
(未設定) | src/app/api/providers/command-code/auth/shared.ts |
Command Code CLI ヘルパーからの OAuth 形式のコールバックに使用するローカルポート。 |
COMMAND_CODE_VERSION |
0.33.2 |
open-sse/executors/commandCode.ts |
Command Code アップストリームへ x-command-code-version ヘッダーとして送信される値。CLI バージョンを上げる場合はオーバーライドします。 |
COMMANDCODE_API_URL |
https://api.commandcode.ai |
open-sse/services/usage/command-code.ts |
スマートフォンクォータ取得機能のテレメトリで使用される、Command Code 使用量/クォータアップストリームのベース URL。セルフホストまたは代替の Command Code API を使用する場合はオーバーライドします。 |
MITM_LOCAL_PORT |
443 |
src/mitm/server.cjs |
MITM デバッグプロキシのローカルバインドポート。 |
MITM_DISABLE_TLS_VERIFY |
0 |
src/mitm/server.cjs |
アップストリームの TLS 検証を無効にするには 1 に設定します(開発環境のみ)。 |
MITM_IDLE_TIMEOUT_MS |
60000 |
src/mitm/socketTimeouts.ts, src/mitm/server.cjs |
プロキシ接続のアイドルソケットタイムアウト(ミリ秒)。半開きトンネルのリークを防ぐため、この時間を超えてアイドル状態のソケットは切断されます。 |
BRIDGE_PORT |
20129 |
bin/antigravity-bridge.mjs |
Antigravity MITM ブリッジがリッスンするポート。 |
ROUTER_URL |
http://127.0.0.1:20128/v1/antigravity |
bin/antigravity-bridge.mjs |
ブリッジが Antigravity トラフィックを転送するルーターエンドポイント。 |
CERT_DIR |
~/.omniroute/mitm |
bin/antigravity-bridge.mjs |
ブリッジの TLS リスナー用の server.key/server.crt を格納するディレクトリ。いずれかが存在しない場合、ブリッジは終了します。 |
MITM_VERBOSE |
1 |
src/mitm/server.cjs, src/mitm/_internal/bypass.cjs |
ルーティング決定ログの詳細度。0 ではログを出力せず、値を大きくするとバイパス/ルート決定のログがより多く出力されます。 |
MITM_ROOT_CA_ENABLED |
false |
src/mitm/manager.ts |
ルート CA とホストごとのリーフ証明書を使用するモデル(#6684)をオプトインするには true に設定します。新規インストールでは自動的に有効になります。既存の信頼済みレガシーリーフ証明書があるインストールでは、オプトインしない限り、従来の固定 SAN 証明書が維持されます。 |
MITM_CERT_MODE |
legacy |
src/mitm/manager.ts, src/mitm/server.cjs |
起動されたプロキシプロセスに対して MITM マネージャーが設定します(root-ca | legacy)。証明書の移行に関する決定を反映するもので、手動で設定することは想定されていません。 |
OMNIROUTE_NO_SUDO |
0 |
src/mitm/systemCommands.ts |
MITM 証明書信頼コマンドの先頭にある sudo を削除するには、1(真値)に設定します。これは、オペレーターが CA を手動で信頼する、root 権限なし/ユーザー名前空間を使用するデプロイ向けです(例:Node の追加 CA 証明書メカニズムを使用する場合)。 |
SKIP_ANTIGRAVITY_DNS |
(未設定) | src/mitm/dns/provision.ts |
Antigravity プロキシのホスト名に対する /etc/hosts DNS エントリのプロビジョニングを完全にスキップするには、true に設定します。sudo/root を利用できないコンテナ向けです。 |
OMNIROUTE_SKIP_DNS_WRITE |
(未設定) | src/mitm/dns/dnsConfig.ts |
DNS エントリの追加/削除時に hosts ファイルへの書き込みをスキップするには、1 に設定します。サンドボックス化された、または読み取り専用のテスト環境向けです。 |
OMNIROUTE_SKIP_SYSTEM_TRUST |
0 |
src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts |
テスト/CI 専用のガードです。1 に設定すると、証明書の信頼設定のインストール/アンインストールが何も行わなくなり、テストスイートが OS の信頼ストアを変更することを防ぎます。テストのセットアップおよび CI ワークフローによって自動的に設定されます。 |
CHANGELOG_BASE_REF |
(自動) | scripts/check/check-changelog-integrity.mjs |
CHANGELOG の不正な削除を防止するゲート用のベース参照を明示的に指定します(デフォルトは CI では PR のベースブランチ、それ以外では最上位の release/v*)。 |
FREE_PROXY_AUTO_SYNC_ENABLED |
false |
src/lib/freeProxyProviders/scheduler.ts |
バックグラウンドで無料プロキシプールを自動同期するスケジューラを有効にするには、true に設定します。オプトイン方式で、デフォルトでは無効です。 |
FREE_PROXY_AUTO_SYNC_INTERVAL_MS |
1800000 |
src/lib/freeProxyProviders/scheduler.ts |
自動同期間隔(ミリ秒単位、デフォルトは 30 分)。 |
FREE_PROXY_1PROXY_ENABLED |
true |
src/lib/freeProxyProviders/oneproxy.ts |
1proxy の無料プロキシソースを有効にします。無効にするには false に設定します。 |
FREE_PROXY_1PROXY_API_URL |
(oneproxy.ts を参照) | src/lib/freeProxyProviders/oneproxy.ts |
1proxy API URL のオーバーライド。 |
FREE_PROXY_1PROXY_MAX |
500 |
src/lib/freeProxyProviders/oneproxy.ts |
1proxy から 1 回の同期で取得するプロキシの最大数。 |
FREE_PROXY_1PROXY_MIN_QUALITY |
50 |
src/lib/freeProxyProviders/oneproxy.ts |
1proxy からインポートする際の最低品質スコアしきい値。 |
FREE_PROXY_PROXIFLY_ENABLED |
true |
src/lib/freeProxyProviders/proxifly.ts |
Proxifly の無料プロキシソースを有効にします。無効にするには false に設定します。 |
FREE_PROXY_PROXIFLY_QUANTITY |
100 |
src/lib/freeProxyProviders/proxifly.ts |
Proxifly の 1 回の同期で取得するプロキシ数。 |
FREE_PROXY_PROXIFLY_ANONYMITY |
elite |
src/lib/freeProxyProviders/proxifly.ts |
Proxifly の匿名性レベルフィルター(elite、anonymous、transparent)。 |
FREE_PROXY_IPLOCATE_ENABLED |
false |
src/lib/freeProxyProviders/iplocate.ts |
IPLocate の無料プロキシソースを有効にします。オプトイン専用です。 |
FREE_PROXY_IPLOCATE_BASE_URL |
https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols |
src/lib/freeProxyProviders/iplocate.ts |
IPLocate プロキシリストのベース URL を上書きします。 |
FREE_PROXY_WEBSHARE_ENABLED |
true |
src/lib/freeProxyProviders/webshare.ts |
Webshare プロキシプールソースを有効にします。無効にするには false に設定します。また、FREE_PROXY_WEBSHARE_API_KEY の設定も必要です。 |
FREE_PROXY_WEBSHARE_API_KEY |
(なし) | src/lib/freeProxyProviders/webshare.ts |
Webshare アカウントの API トークン(Authorization: Token <key>)。必須です。設定されていない場合、プロバイダーは無効のままです。 |
FREE_PROXY_WEBSHARE_API_URL |
https://proxy.webshare.io/api/v2/proxy/list/ |
src/lib/freeProxyProviders/webshare.ts |
Webshare プロキシリスト API の URL を上書きします。 |
FREE_PROXY_WEBSHARE_MAX |
500 |
src/lib/freeProxyProviders/webshare.ts |
Webshare の同期ごとにインポートするプロキシの最大数。 |
NEXT_PUBLIC_VERCEL_RELAY_ENABLED |
true |
src/app/(dashboard)/…/ProxyPoolTab.tsx |
プロキシプールタブで「Deploy Vercel Relay」ボタンの表示/非表示を切り替えます。 |
VERCEL_API_BASE |
https://api.vercel.com |
src/app/api/settings/proxy/vercel-deploy/route.ts |
Vercel API のベース URL を上書きします(テスト用)。 |
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT |
omniroute-relay |
src/app/(dashboard)/…/VercelRelayModal.tsx |
Vercel Relay のデプロイモーダルにあらかじめ入力されるデフォルトのプロジェクト名。 |
TAILSCALE_BIN |
(自動検出) | src/lib/tailscaleTunnel.ts |
tailscale バイナリへの明示的なパス。 |
TAILSCALED_BIN |
(自動検出) | src/lib/tailscaleTunnel.ts |
tailscaled デーモンバイナリへの明示的なパス。 |
TAILSCALE_AUTHKEY |
(未設定) | src/lib/tailscaleTunnel.ts |
非対話型/ヘッドレスの tailscale up 用の事前共有 Tailscale 認証キー(--auth-key= 経由で渡されます)。未設定の場合、ログインは対話型のブラウザ認証 URL にフォールバックします。 |
NGROK_AUTHTOKEN |
(未設定) | src/lib/ngrokTunnel.ts |
外向きの ngrok トンネルを認証します。 |
DB_BACKUP_MAX_FILES |
20 |
src/lib/db/backup.ts |
手動/スケジュール済みバックアップのクリーンアップで保持される SQLite バックアップファイルの最大数。移行スナップショットはコンテンツアドレス方式で、同一の DB 状態に対して再利用されます。同時移行ウィンドウ内では削除されません。[設定]→[データベースバックアップの保持]で保存された値を上書きします。 |
DB_BACKUP_RETENTION_DAYS |
0 |
src/lib/db/backup.ts |
手動/スケジュール済みバックアップのクリーンアップで保持される最大期間(日数)。0 にすると、経過日数に基づく削除が無効になります。移行スナップショットは同時移行ウィンドウ内では削除されません。[設定]→[データベースバックアップの保持]で保存された値を上書きします。 |
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS |
30000 |
src/lib/jobs/backupScheduleJob.ts |
backup-schedule.json を実行するサーバー側ジョブのティック間隔(ミリ秒)。cron の最小粒度である 1 分を十分に下回る値にする必要があります。5000 未満の値、または解析できない値は 30000 にフォールバックします。 |
CONTAINER_HOST |
docker |
scripts/check-permissions.sh |
エントリーポイントの権限チェック用のコンテナランタイム指定。Podman を使用する構成では podman に設定します。コンテナからは、エンジンがローカルにあるのか Podman Machine 経由で接続されているのかを判別できないため、警告では特定の構成を前提とせず、contrib/podman/README.md を参照先として示します。 |
QUOTA_STORE_DRIVER |
sqlite |
src/lib/quota/storeFactory.ts |
クォータ共有の消費量を保存するストアのバックエンド:sqlite(デフォルト)または redis。 |
QUOTA_STORE_REDIS_URL |
(未設定) | src/lib/quota/storeFactory.ts |
QUOTA_STORE_DRIVER=redis の場合に使用される Redis 接続文字列(例:redis://localhost:6379)。 |
QUOTA_SATURATION_THRESHOLD |
0.5 |
src/lib/quota/enforce.ts |
プール飽和率(0..1)。この値以上になると、プールは厳格モード(借用なし)に移行します。 |
QUOTA_SOFT_DEPRIORITIZE_FACTOR |
0.7 |
open-sse/services/combo.ts |
ソフトクォータポリシーによってターゲットの優先度が下げられる際に適用されるスコア倍率(0..1)。 |
STATUS_SOFT_DEPRIORITIZE_FACTOR |
0.5 |
open-sse/services/combo/autoStrategy.ts |
プリフライトクォータカットオフが OFF の場合(#4540)、自動コンボのスコアリングで上限に達したプロバイダー(credits_exhausted/rate_limited)に適用されるスコア倍率(0..1)。 |
QUOTA_CONSUMPTION_RETENTION_DAYS |
14 |
src/lib/db/quotaConsumption.ts |
GC(gcQuotaConsumption)実行前に quota_consumption バケットを保持する期間(日数)。 |
QUOTA_PREFLIGHT_CUTOFF_ENABLED |
false |
src/lib/resilience/settings.ts |
オプトイン(デフォルトは OFF):スコアリング前にクォータ残量の少ない候補を除外する、自動ルーティングのハードクォータカットオフを有効にします。 |
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL |
false |
open-sse/services/autoCombo/virtualFactory.ts |
オプトイン(デフォルトは OFF):auto/<category>:<tier> フィルターに一致する接続済み候補がない場合、空のプールを返す代わりに、完全な(フィルターされていない)プールへフォールバックする従来の動作に戻します。デフォルトの OFF では、:free は「無料ティアのみ」を意味します。 |
OMNIROUTE_CHAOS_MAX_PANEL |
5 |
open-sse/services/autoCombo/virtualFactory.ts |
auto/*:chaos ブロードキャストバリアントのパネルサイズ上限(1~10 に制限)。1 件のリクエストが最大でこの数の、プロバイダーの異なるモデルへファンアウトされます。 |
OMNIROUTE_CHAOS_MIN_PANEL |
(エンジンのデフォルト) | open-sse/services/autoCombo/virtualFactory.ts |
chaos ブロードキャストハンドラーに渡される最小パネルサイズの調整値。未設定の場合はエンジンのデフォルトが維持されます。 |
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS |
(エンジンのデフォルト) | open-sse/services/autoCombo/virtualFactory.ts |
chaos パネル全体のファンアウトに対するハードタイムアウト(ミリ秒)。未設定の場合はエンジンのデフォルトが維持されます。 |
GROK_AUTH_PATH |
~/.grok/auth.json |
open-sse/services/grokQuotaFetcher.ts |
grok-web の週間クォータ取得に使用する Grok CLI の auth.json のパス。テストまたは標準外の CLI インストールではオーバーライドします。 |
AGENTBRIDGE_UPSTREAM_CA_CERT |
(未設定) | src/mitm/manager.ts |
AgentBridge のアップストリーム TLS 接続で信頼する追加の CA 証明書(PEM)。 |
INSPECTOR_BUFFER_SIZE |
1000 |
src/mitm/inspector/buffer.ts |
Traffic Inspector のリングバッファに保持されるキャプチャ済みリクエストの最大数。 |
INSPECTOR_MAX_BODY_KB |
1024 |
src/mitm/inspector/buffer.ts |
切り捨て前にキャプチャされるリクエスト/レスポンス本文の最大サイズ(KB)。 |
INSPECTOR_HTTP_PROXY_PORT |
8080 |
src/mitm/inspector/httpProxyServer.ts |
Traffic Inspector HTTP プロキシのローカルポート。 |
INSPECTOR_HTTP_PROXY_AUTOSTART |
false |
src/mitm/inspector/httpProxyServer.ts |
起動時に Inspector HTTP プロキシを自動起動する。 |
INSPECTOR_TLS_INTERCEPT |
false |
src/lib/inspector/captureState.ts |
キャプチャ対象の HTTPS トラフィックに対して TLS インターセプト(MITM)を有効にする。 |
INSPECTOR_LLM_HOSTS_EXTRA |
(未設定) | src/lib/inspector/captureState.ts |
キャプチャ対象の LLM エンドポイントとして扱う追加のホスト名(カンマ区切り)。 |
INSPECTOR_MASK_SECRETS |
true |
src/mitm/inspector/buffer.ts |
キャプチャされたトラフィック内のシークレット(認証ヘッダー/API キー)をマスクする。 |
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES |
30 |
src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts |
システムプロキシガードが OS のプロキシ設定を自動的に元に戻すまでの時間(分)。 |
INSPECTOR_INTERNAL_INGEST_TOKEN |
(自動) | src/app/api/tools/traffic-inspector/internal/ingest/route.ts |
Inspector への内部キャプチャ取り込みを認証するトークン。 |
PLAYGROUND_COMPARE_MAX_COLUMNS |
4 |
src/app/(dashboard)/dashboard/playground/ |
Playground の比較モードで横並びに表示できる列の最大数。 |
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL |
(未設定) | src/app/(dashboard)/dashboard/playground/ |
Playground の「プロンプトを改善」アクションで使用するデフォルトモデル(未設定の場合はアクティブなモデルにフォールバック)。 |
BIFROST_ENABLED |
1 |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Bifrost サイドカープロキシのマスターキルスイッチ。0 に設定すると、ルートは X-Bifrost-Killswitch ヘッダー付きの 503 を返し、処理を TS パスへ切り替えます。再デプロイせずにサイドカーを無効化する場合(Tier 1 ルーターのインシデント、キーのローテーション)に使用します。 |
BIFROST_BASE_URL |
(未設定) | src/app/api/v1/relay/chat/completions/bifrost/route.ts |
設定すると、Bifrost サイドカープロキシルートは /v1/chat/completions トラフィックを TS リレーハンドラーではなく、この Go ゲートウェイに転送します。未設定 → フォールバック付きの 503。末尾のスラッシュは削除されます。 |
BIFROST_PORT |
8080 |
src/lib/services/bootstrap.ts |
OmniRoute が Bifrost サイドカーのライフサイクルを管理する場合に、監視対象の Bifrost 組み込みサービスがバインドするポート(127.0.0.1:<port>)。デフォルトは 8080。 |
BIFROST_API_KEY |
(未設定) | src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Bifrost ゲートウェイ用の API キー(Authorization: Bearer ... として送信)。未設定の場合、ルートはリクエストに有効な OmniRoute API キーが含まれていることを期待します。このキーはゲートウェイ側の認証専用です。 |
BIFROST_STREAMING_ENABLED |
true |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
true の場合、Bifrost サイドカールートは TS ストリーミングエグゼキューターではなく、ゲートウェイを介して SSE でレスポンスをストリーミングします。ゲートウェイを介して非ストリーミングの JSON レスポンスを強制するには 0 に設定します。 |
BIFROST_TIMEOUT_MS |
30000 |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Bifrost ゲートウェイへのプロキシ時におけるリクエスト単位のタイムアウト(ミリ秒)。タイムアウト時、ルートは X-Bifrost-Fallback ヘッダーを介して TS リレーパスを返します。 |
OMNIROUTE_BIFROST_KEY |
(未設定) | src/app/api/v1/relay/chat/completions/bifrost/route.ts |
BIFROST_API_KEY のエイリアス(OMNIROUTE_* を介して環境変数を読み取るスクリプトで使用)。両方が設定されている場合は BIFROST_API_KEY が優先されます。 |
OMNIROUTE_RELAY_BACKEND |
ts / auto |
src/app/api/v1/relay/chat/completions/routingBackend.ts |
/api/v1/relay/chat/completions のリレーバックエンド:ts | bifrost | auto。ts = TypeScript リレー(Bifrost が未設定の場合のデフォルト)。auto は、BIFROST_BASE_URL が設定され、かつ BIFROST_ENABLED ≠ 0 の場合に Bifrost を選択し、サイドカーに到達できない場合は自動的に TS にフォールバックします。bifrost は Bifrost を強制します(厳格モード、フォールバックなし)。認証、レート制限、インジェクションガード、許可リストは、常に最初に Next ルートで実行されます。レスポンスには X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason が含まれます。 |
RELAY_ROUTING_BACKEND |
(未設定) | src/app/api/v1/relay/chat/completions/routingBackend.ts |
OMNIROUTE_RELAY_BACKEND の別名として使用できます(値は同じく ts | bifrost | auto)。両方が設定されている場合は、OMNIROUTE_RELAY_BACKEND が優先されます。 |
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS |
5000 |
src/app/api/v1/relay/chat/completions/bifrostCooldown.ts |
auto モードで Bifrost サイドカーへのホップが失敗した後、リレーがサイドカーへの接続を再試行するまでのクールダウン時間(ミリ秒)。クールダウン中は TS パスへ直接ルーティングし、終了後に再度プローブします。0 で無効になります。OMNIROUTE_RELAY_BACKEND=auto の場合にのみ適用されます。 |
OMNIROUTE_TLS_CERT |
(未設定) | bin/cli/commands/serve.mjs |
omniroute serve を HTTPS で提供するための PEM TLS 証明書へのパス(--tls-cert と同等)。OMNIROUTE_TLS_KEY と併せて指定する必要があります。指定すると、スタンドアロンサーバーが同じリスナーで TLS を終端します(wss:// も変更なしで動作します)。未設定の場合はプレーン HTTP になります。証明書または鍵の一方のみを指定した場合、あるいはパスを読み取れない場合は、警告をログに記録して HTTP のまま動作します。 |
OMNIROUTE_TLS_KEY |
(未設定) | bin/cli/commands/serve.mjs |
omniroute serve を HTTPS で提供するための PEM TLS 秘密鍵へのパス(--tls-key と同等)。OMNIROUTE_TLS_CERT と併せて指定する必要があります。OMNIROUTE_TLS_CERT を参照してください。 |
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED |
0 |
src/lib/security/localEndpoints.ts |
/api/local/* ルートのマスタースイッチ。未設定または 0 の場合、本番環境ではすべての /api/local/* ルートが 503 を返します。Redis ランチャーや同様のワンクリック式ローカルサービス起動機能を有効にするには、ループバック以外のデプロイ環境で 1 に設定する必要があります。isLocalOnlyPath() のルートガード分類(src/server/authz/routeGuard.ts の LOCAL_ONLY_API_PREFIXES)と組み合わせた二重の安全策です。 |
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN |
(未設定) | src/lib/security/localEndpoints.ts |
ループバック上にない /api/local/* 呼び出し元(デスクトップアプリなど)向けの Bearer トークン。設定されている場合、ループバック以外の IP からのリクエストには Authorization: Bearer <token> を含める必要があります。ループバック以外のデプロイ環境で OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 を設定する場合に必須です。 |
OMNIROUTE_REDIS_CONTAINER_NAME |
omniroute-redis |
bin/cli/commands/redis.mjs |
ワンクリック Redis ランチャー(omniroute redis up)のコンテナ名。CLI と RedisLauncherPanel GUI の両方で使用されます。 |
OMNIROUTE_REDIS_HOST_PORT |
6379 |
bin/cli/commands/redis.mjs |
ワンクリック Redis ランチャーのホストポート。ホストがすでに 6379 を使用している場合は変更してください。コンテナの内部ポートは 6379 のままです。 |
OMNIROUTE_REDIS_BIND_HOST |
127.0.0.1 |
bin/cli/commands/redis.mjs |
ワンクリック Redis ランチャーを公開するホストインターフェース。ランチャーはパスワードなしで Redis を起動するため、0.0.0.0 にバインドすると LAN 上のすべてのホストから未認証の Redis にアクセスできるようになります。この範囲を広げるのは、インスタンスに自分でパスワードも設定する場合のみにしてください。 |
REDIS_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
docker-compose が Redis サイドカーを公開するホストインターフェース(#9286)。compose の Redis は requirepass なしで実行され、アプリコンテナは compose ネットワーク経由(redis:6379)で接続します。公開ポートはホスト側ツール専用です。0.0.0.0 を指定すると、未認証の Redis が LAN 全体に公開されます。 |
REDIS_PORT |
6379 |
docker-compose.yml |
Compose の Redis サイドカー用ホストポート。 |
APP_BIND_HOST |
127.0.0.1 |
docker-compose.yml, docker-compose.prod.yml |
docker-compose がアプリ独自のダッシュボード/API/live-WS ポートを公開するホストインターフェース(#12568)。.env.example のデフォルトでは REQUIRE_API_KEY=false で提供されるため、0.0.0.0 にすると匿名の /v1 LLM プロキシが LAN/WAN 全体に公開されます。REQUIRE_API_KEY=true にするか、前段のリバースプロキシで独自の認証を強制する場合にのみ、公開範囲を広げてください。 |
QDRANT_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
docker-compose が Qdrant メモリサイドカーを公開するホストインターフェース(#12578)。LAN への公開に関する考慮事項は REDIS_BIND_HOST と同じです。 |
BIFROST_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
docker-compose が Bifrost ルーターサイドカーを公開するホストインターフェース(#12578)。LAN への公開に関する考慮事項は REDIS_BIND_HOST と同じです。 |
REDIS_KEY_PREFIX |
omniroute: |
src/shared/utils/rateLimiter.ts |
すべての OmniRoute Redis キー(レートリミッター、認証キャッシュ、クォータストア、ウォームアップ用サーキットブレーカー)に適用される名前空間プレフィックス。Redis インスタンスを他のアプリと共有する場合のキー衝突を防ぎます(#11042)。 |
OMNIROUTE_INTERNAL_SERVICE_TOKEN |
(未設定 — メカニズムは無効) | src/lib/api/internalServiceAuth.ts |
呼び出し元の識別情報を維持する内部 REST ホップ用の共有シークレット(#9260)。OmniRoute コンポーネントがローカルの別の OmniRoute ルートを呼び出す際に x-omniroute-internal-service-token として送信し、元の呼び出し元の識別情報を維持します。timingSafeEqual を使用して比較されます。 |
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE |
(未設定) | src/lib/api/internalServiceAuth.ts |
内部サービストークンのシークレットファイル版。トークンとして使用する、前後の空白を除去した内容を含むファイルへのパスです。インライン変数が未設定の場合にのみ参照されます。 |
OPENROUTER_PROVIDER_STATS_ENABLED |
true |
src/lib/catalog/openrouterProviderStats.ts |
ダッシュボードのプロバイダー一覧に OpenRouter の週間ランキング統計を追加します(#9324)。デフォルトで有効です。バックグラウンド取得を完全に省略するには false に設定してください(ノンブロッキングで、致命的エラーになることはありません)。 |
OPENROUTER_PROVIDER_STATS_TTL_MS |
86400000 (24h) |
src/lib/catalog/openrouterProviderStats.ts |
OpenRouter プロバイダー統計スナップショットのキャッシュ TTL(ミリ秒単位)。 |
OMNIROUTE_REDIS_IMAGE |
redis:7-alpine |
bin/cli/commands/redis.mjs |
ワンクリック Redis ランチャーで使用する Redis イメージ。必要に応じて redis:8-alpine またはプライベートレジストリのミラーに上書きできます。 |
QDRANT_HOST |
qdrant |
(オプトインのクラスタープロファイル) | --profile memory が有効な場合の Qdrant サイドカーのホスト名。デフォルトではネットワーク内の qdrant サービス名を参照します。外部デプロイメントの場合は上書きしてください。コード内で qdrantEnabled が true の場合にのみ使用されます(src/lib/memory/vectorStore.ts:108)。 |
QDRANT_PORT |
6333 |
(オプトインのクラスタープロファイル) | Qdrant サイドカーの REST ポート。 |
QDRANT_GRPC_PORT |
6334 |
(オプトインのクラスタープロファイル) | Qdrant サイドカーの gRPC ポート。ストリーミング操作で REST よりも gRPC を優先するクライアントライブラリによって使用されます。 |
QDRANT_API_KEY |
(未設定) | (オプトインのクラスタープロファイル) | Qdrant Cloud または認証済みオンプレミスインスタンス用のオプションの API キー。空の場合、api-key ヘッダーは送信されません。 |
QDRANT_COLLECTION |
omniroute-memory |
(オプトインのクラスタープロファイル) | OmniRoute の会話メモリエンベディング用コレクション名。初回実行時に QDRANT_VECTOR_SIZE の次元数で作成されます。 |
QDRANT_EMBEDDING_MODEL |
text-embedding-3-small |
(オプトインのクラスタープロファイル) | Qdrant コレクションのメタデータに記録されるデフォルトのエンベディングモデル名。実際のエンベディングは、OmniRoute の設定にある embeddingModel フィールドが参照するプロバイダーによって生成されます。 |
QDRANT_VECTOR_SIZE |
1536 |
(オプトインのクラスタープロファイル) | エンベディングベクトルの次元数。使用するエンベディングモデルと一致させる必要があります(text-embedding-3-small → 1536、ada-002 → 1536、nomic-embed-text → 768)。 |
QDRANT_HNSW_EF_CONSTRUCT |
128 |
(オプトインのクラスタープロファイル) | HNSW インデックス構築時の精度。値が高いほど構築は遅くなりますが、検索は高速になります。 |
OMNIROUTE_ROTATION_ENABLED |
true |
open-sse/services/rotationConfig.ts |
オペレーターが設定可能なアカウントローテーションのマスタースイッチ。false の場合、以下の OMNIROUTE_ROTATE_* クラスはいずれもアカウントのフォールバックをトリガーしません(マスターがオフの状態では、デフォルトで有効な 429/500/502 クラスもブロックされます)。これにより、監視側のフロントエンド(例: VibeProxy デスクトップアプリ)は、独自のローテーションルールをバックエンドのアカウントフォールバックエンジンに反映できます。 |
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS |
0 |
open-sse/services/rotationConfig.ts |
アップストリームから明示的なリセット情報が提供されない場合に、レート制限を受けたアカウントへ適用されるクールダウン(秒)。0 = 固定の上書き値ではなく、エンジンのデフォルトクールダウンを使用します。 |
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET |
true |
open-sse/services/rotationConfig.ts |
フロントエンドの「リセット時刻がない場合はレート制限としてタグ付けしない」設定を反映します。 |
OMNIROUTE_ROTATE_ON_429 |
true |
open-sse/services/rotationConfig.ts |
429 エラーに対するステータス別フォールバックを有効にします。false の場合(かつ OMNIROUTE_ROTATION_ENABLED=true の場合)、429 ではアカウントのローテーションがトリガーされなくなり、代わりにクライアントへ返されます。 |
OMNIROUTE_ROTATE_429_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
アカウントがローテーションされるまでに、OMNIROUTE_ROTATE_429_WINDOW_SECONDS 内で発生する必要がある 429 エラーの数です。1(デフォルト)の場合は即座にローテーションされ、従来の動作が維持されます。 |
OMNIROUTE_ROTATE_429_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
OMNIROUTE_ROTATE_429_THRESHOLD に対して 429 エラーをカウントするスライディングウィンドウ(秒)です。 |
OMNIROUTE_ROTATE_ON_500 |
true |
open-sse/services/rotationConfig.ts |
5xx サーバーエラー(独自のクラスを持つ 502 を除く)に対するステータス別フォールバックを有効にします。false の場合、これらのエラーではアカウントのローテーションがトリガーされなくなります。 |
OMNIROUTE_ROTATE_500_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
アカウントがローテーションされるまでに、OMNIROUTE_ROTATE_500_WINDOW_SECONDS 内で発生する必要がある 5xx エラーの数です。1(デフォルト)の場合は即座にローテーションされます。 |
OMNIROUTE_ROTATE_500_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
OMNIROUTE_ROTATE_500_THRESHOLD に対して 5xx エラーをカウントするスライディングウィンドウ(秒)です。 |
OMNIROUTE_ROTATE_ON_502 |
true |
open-sse/services/rotationConfig.ts |
502(不正なゲートウェイ)エラーに対するステータス別フォールバックを有効にします。false の場合、502 ではアカウントのローテーションがトリガーされなくなります。 |
OMNIROUTE_ROTATE_502_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
アカウントがローテーションされるまでに、OMNIROUTE_ROTATE_502_WINDOW_SECONDS 内で発生する必要がある 502 エラーの数です。1(デフォルト)の場合は即座にローテーションされます。 |
OMNIROUTE_ROTATE_502_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
OMNIROUTE_ROTATE_502_THRESHOLD に対して 502 エラーをカウントするスライディングウィンドウ(秒)です。 |
OMNIROUTE_ROTATE_ON_400 |
false |
open-sse/services/rotationConfig.ts |
オプトイン(デフォルトはオフ):true の場合、通常の 400(不正なリクエスト)でもアカウントローテーションがトリガーされます。これは既存動作への追加のみです。このフラグにかかわらず、レート制限またはクォータに関するテキストを含む 400 では常にフォールオーバーするというエンジンの既存動作を妨げることはありません。 |
OMNIROUTE_ROTATE_400_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
アカウントがローテーションされるまでに、OMNIROUTE_ROTATE_400_WINDOW_SECONDS 内で必要となる 400 エラーの数(OMNIROUTE_ROTATE_ON_400=true の場合にのみ参照されます)。 |
OMNIROUTE_ROTATE_400_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
OMNIROUTE_ROTATE_400_THRESHOLD に向けて 400 エラーをカウントするスライディングウィンドウ(秒)。 |
Claude ウォームアップスケジューラー
Section titled “Claude ウォームアップスケジューラー”オプトインした Anthropic OAuth 接続向けの cron 駆動ウォームアップです。これにより、5 時間のレート制限ウィンドウが最初の実際のリクエストではなく、スケジュールされた軽微なリクエストによって開始されます(#8848)。OMNIROUTE_WARMUP_ENABLED が真として評価され、かつ接続が settings.claudeWarmup.connections で指定されていない限り、スケジューラーは無効です。接続リストが空の場合、環境変数が有効でも何もウォームアップされません。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_WARMUP_ENABLED |
(未設定 → オフ) | src/lib/warmupScheduler.ts |
ウォームアップスケジューラーのマスタースイッチ。1/true/yes/on を受け付けます(大文字と小文字を区別せず、前後の空白は除去されます)。その他の値、または未設定の場合、スケジューラーは無効のままです。 |
OMNIROUTE_WARMUP_CRON |
0 7 * * * |
src/lib/warmupScheduler.ts |
ウォームアップ実行用の 5 フィールド cron 式。ホストの時計にかかわらず、America/Los_Angeles(Anthropic のリセットタイムゾーン)で評価されます。 |
OMNIROUTE_WARMUP_CONCURRENCY |
3 |
src/lib/warmupScheduler.ts |
各実行で並列にウォームアップする接続数。1~10 の範囲に制限されます。数値以外の値の場合は 3 にフォールバックします。 |
OMNIROUTE_WARMUP_MODEL |
claude-3-5-haiku-20241022 |
src/lib/warmupScheduler.ts |
ウォームアップリクエストに使用するモデル。デフォルトがご利用のプランで使用できない場合にのみ上書きしてください。ウィンドウを開始できる最も安価なモデルを選択してください。 |
ブラウザログイン用 VNC セッションとデータディレクトリのエイリアス
Section titled “ブラウザログイン用 VNC セッションとデータディレクトリのエイリアス”対話型ブラウザログインで認証情報を取得するために使用する、コンテナ化された Chromium+VNC(/api/vnc-session)と、従来の DATA_DIR エイリアスです。すべて任意です。VNC のデフォルト設定では、同梱の omniroute-vnc-chromium:local イメージが対象となり、カスタムコンテナイメージ、ポート、またはライフサイクル調整が必要な場合にのみ上書きします。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_VNC_IMAGE |
omniroute-vnc-chromium:local |
src/lib/vncSession/manifest.ts |
Chromium+VNC ログインコンテナ用の Docker イメージタグ。docker/vnc-browser/chromium をビルドするか、カスタムイメージを指定します。 |
OMNIROUTE_DOCKER_BIN |
docker |
src/lib/vncSession/manifest.ts |
VNC コンテナの起動に使用するコンテナランタイムのバイナリ(例:podman に設定)。 |
OMNIROUTE_VNC_CONTAINER_VNC_PORT |
3000 |
src/lib/vncSession/manifest.ts |
コンテナ内で公開される VNC/noVNC ポート。 |
OMNIROUTE_VNC_CONTAINER_CDP_PORT |
9223 |
src/lib/vncSession/manifest.ts |
コンテナ内の Chrome DevTools Protocol ポート。 |
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR |
/config |
src/lib/vncSession/manifest.ts |
コンテナ内の Chromium プロファイルディレクトリのパス。 |
OMNIROUTE_VNC_PROFILE_DIR |
$HOME/.omniroute/browser-login-profiles |
src/lib/vncSession/manifest.ts |
永続化されたブラウザログインプロファイルを保持するホスト側ディレクトリ。 |
OMNIROUTE_VNC_IDLE_MS |
600000(10 分) |
src/lib/vncSession/manifest.ts |
非アクティブな VNC セッションが破棄されるまでのアイドルタイムアウト(ミリ秒)。 |
OMNIROUTE_VNC_MAX_MS |
1800000(30 分) |
src/lib/vncSession/manifest.ts |
1 つの VNC セッションの存続時間に対する上限(ミリ秒)。 |
OMNIROUTE_VNC_MAX_SESSIONS |
4 |
src/lib/vncSession/manifest.ts |
同時実行可能な VNC セッションの最大数。 |
OMNIROUTE_VNC_READY_MS |
45000 |
src/lib/vncSession/manifest.ts |
コンテナ化されたブラウザが CDP 対応状態になるまで待機するタイムアウト(ミリ秒)。 |
OMNIROUTE_VNC_HARVEST_MS |
20000 |
src/lib/vncSession/manifest.ts |
ログイン完了後、キャプチャされたセッションおよび Cookie を収集する際のタイムアウト(ミリ秒)。 |
OMNIROUTE_VNC_CHROMIUM_ARGS |
--remote-debugging-port=9222 --no-first-run --no-default-browser-check |
src/lib/vncSession/manifest.ts |
コンテナ化された Chromium に渡される追加のコマンドラインフラグ。 |
OMNIROUTE_VNC_NETWORK |
omniroute-vnc-browser-login |
src/lib/vncSession/manifest.ts |
VNC ログインコンテナがデフォルトブリッジの代わりに参加する専用 Docker ネットワーク(#12571)。これにより、同階層のコンテナから CDP ブリッジポートへアクセスできなくなります。 |
VIBEPROXY_DATA_DIR |
(未設定) | open-sse/services/notionThreadSessions.ts |
DATA_DIR のレガシーエイリアス。DATA_DIR と OMNIROUTE_DATA_DIR の両方が未設定の場合にのみ確認されます。Notion Web スレッドのセッションキャッシュ(<dir>/notion-web-thread-sessions.json)の場所を指定します。 |
26. テスト & E2E ハーネス
Section titled “26. テスト & E2E ハーネス”scripts/dev/run-next-playwright.mjs、scripts/dev/smoke-electron-packaged.mjs、
scripts/dev/run-ecosystem-tests.mjs、および scripts/build/uninstall.mjs で使用されます。本番環境へのデプロイでは、以下のすべての値を未設定のままにしてください。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_E2E_BOOTSTRAP_MODE |
auth |
scripts/dev/run-next-playwright.mjs |
Playwright ランナーの E2E ブートストラップモード(auth、fresh、reuse)。 |
OMNIROUTE_E2E_PASSWORD |
INITIAL_PASSWORD にフォールバック |
scripts/dev/run-next-playwright.mjs |
Playwright 環境に注入される管理者パスワード。 |
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
true |
scripts/dev/run-next-playwright.mjs |
Playwright の実行中、ローカルヘルスチェックのポーリングを無効にします。 |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
true |
scripts/dev/run-next-playwright.mjs |
テスト中、OAuth トークンのヘルスチェックループを無効にします。 |
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS |
(未設定) | src/lib/tokenHealthCheck.ts |
プロアクティブなトークン更新スイープから除外するプロバイダーをカンマ区切りで指定します(例:codex,openai)。ヘルスチェックを完全に無効化する代わりとなる対象限定の設定です。TTL が短いプロバイダーは更新を継続し、カスケードプロバイダーはリアクティブな更新のみを行います。 |
OMNIROUTE_HIDE_HEALTHCHECK_LOGS |
true |
scripts/dev/run-next-playwright.mjs |
Playwright の標準出力に含まれるヘルスチェックのノイズを抑制します。 |
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD |
0 |
scripts/dev/run-next-playwright.mjs |
Playwright の起動前に行われる Next.js の本番ビルドをスキップします(CI の最適化)。 |
OMNIROUTE_SKIP_UNINSTALL_HOOK |
0 |
scripts/build/uninstall.mjs |
OmniRoute のアンインストールフックをスキップします(CI で node_modules を維持するために使用)。 |
ECOSYSTEM_SERVER_WAIT_MS |
180000 |
scripts/dev/run-ecosystem-tests.mjs |
エコシステム/プロトコルテストを実行する前に、サーバーが正常になるまで待機する時間(ミリ秒)。 |
ELECTRON_SMOKE_URL |
http://127.0.0.1:20128/login |
scripts/dev/smoke-electron-packaged.mjs |
Electron スモークハーネスが、パッケージ化されたアプリによって提供されることを想定する URL。 |
ELECTRON_SMOKE_TIMEOUT_MS |
45000 |
scripts/dev/smoke-electron-packaged.mjs |
スモークハーネスが処理を断念するまでの合計タイムアウト(ミリ秒)。 |
ELECTRON_SMOKE_SETTLE_MS |
2000 |
scripts/dev/smoke-electron-packaged.mjs |
ページ読み込み後の安定化待機時間(ミリ秒)。 |
ELECTRON_SMOKE_APP_EXECUTABLE |
(自動) | scripts/dev/smoke-electron-packaged.mjs |
パッケージ化された Electron 実行可能ファイルへの明示的なパス。 |
ELECTRON_SMOKE_DATA_DIR |
(tmpdir) | scripts/dev/smoke-electron-packaged.mjs |
Electron スモーク実行用のデータディレクトリ。 |
ELECTRON_SMOKE_KEEP_DATA |
0 |
scripts/dev/smoke-electron-packaged.mjs |
実行後もスモークテストのデータディレクトリを保持するには、1 に設定します。 |
ELECTRON_SMOKE_STREAM_LOGS |
0 |
scripts/dev/smoke-electron-packaged.mjs |
実行中に Electron のログを stdout にストリーミングするには、1 に設定します。 |
ELECTRON_SMOKE_COLD_RESTART |
0 |
scripts/dev/smoke-electron-packaged.mjs |
#7592: 同じデータディレクトリを使用して再起動し、2 回目の起動でネイティブ SQLite ドライバーが選択されることを確認します。 |
CLI_DEVIN_BIN |
(PATH 検索) | open-sse/executors/devin-cli.ts |
Devin CLI バイナリのパスを上書きします。 |
ドキュメント翻訳パイプライン
Section titled “ドキュメント翻訳パイプライン”scripts/i18n/run-translation.mjs(npm run i18n:run コマンド)で使用されます。
5 つの変数はすべてデフォルトでは未設定です。ドキュメント翻訳ツールを実行できるようにする
マシンでのみ、.env に設定してください。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_TRANSLATION_API_URL |
(未設定) | scripts/i18n/run-translation.mjs |
翻訳バックエンド用の OpenAI 互換ベース URL。 |
OMNIROUTE_TRANSLATION_API_KEY |
(未設定) | scripts/i18n/run-translation.mjs |
翻訳バックエンド用の Bearer トークン(ログには決して記録されません)。 |
OMNIROUTE_TRANSLATION_MODEL |
(未設定) | scripts/i18n/run-translation.mjs |
モデル ID(例: gpt-4o-mini または cx/gpt-5.4-mini)。 |
OMNIROUTE_TRANSLATION_TIMEOUT_MS |
60000 |
scripts/i18n/run-translation.mjs |
リクエストごとのタイムアウト(ミリ秒)。 |
OMNIROUTE_TRANSLATION_CONCURRENCY |
4 |
scripts/i18n/run-translation.mjs |
複数のファイルやロケールを処理する際の並列翻訳リクエスト数。 |
27. Radar フィード(セルフホスティング)
Section titled “27. Radar フィード(セルフホスティング)”RADAR_ENABLED 機能フラグによって制御されるオプションのアドオンです(デフォルトはオフ — 環境変数ではなく、Settings/DB 経由で切り替える機能フラグです。docs/frameworks/RADAR.md を参照してください)。
以下の最初の4つの変数は、セルフホストまたはフォークしたフィード、およびサポーターキーのフローに対するオプションのオーバーライドです。5つ目の RADAR_ADMIN_URL は、所有者の非公開運用パネルへの、デフォルト値を持たない独立したリンクです。モジュールの完全なドキュメントと
エンドツーエンドの有効化およびガイド付きセットアップ手順については、docs/frameworks/RADAR.md を参照してください。
汎用の Home/Changelog お知らせリーダーは環境変数で設定されず、RADAR_ENABLED 機能フラグにも依存しません。src/shared/utils/releaseNotes.ts で宣言された公開リポジトリの
news.json URL を GET のみで読み取ります。非表示にしたお知らせの ID は、引き続きブラウザーのローカルストレージに保存されます。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
RADAR_FEED_URL |
https://radar.omniroute.online |
src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts |
個別に署名されたカタログ、紹介、サポーター向けオファー、および Intel フィードで共有されるベース URL。セルフホストまたはフォークしたサービスを指定するにはオーバーライドします。 |
RADAR_FEED_PUBKEY |
(固定されたデフォルトキー) | src/lib/radar/pinnedKeys.ts |
カスタムフィードからのフィード署名を検証するために使用される Ed25519 公開鍵(base64-DER SPKI または PEM)。 |
RADAR_CONTRIBUTOR_CLAIM_URL |
https://radar.omniroute.online/auth/github |
src/lib/radar/links.ts |
ダッシュボードの「コントリビューターです」ボタンで開く URL(GitHub OAuth サポーターキー申請フロー)。 |
RADAR_SUPPORTER_PLANS_URL |
https://radar.omniroute.online/planos |
src/lib/radar/links.ts |
ダッシュボードの「プロジェクトを支援」ボタンで開く URL(支払い/プランページ)。 |
RADAR_ADMIN_URL |
(未設定) | src/lib/radar/links.ts |
所有者専用の非公開運用パネルへのリンク。HTTP ループバック SSH 転送を除き、HTTPS が必須です。未設定または無効な値の場合、ナビゲーション項目は作成されません。 |
監査:削除済み/未使用の変数
Section titled “監査:削除済み/未使用の変数”以下の変数は以前のバージョンの .env.example に存在していましたが、現在のコードベースでは実行時に参照されていません。これらは削除されました。
| 変数 | 理由 |
|---|---|
STORAGE_DRIVER=sqlite |
どのソースファイルからも読み取られません。SQLite が唯一サポートされているドライバーであるため、選択は不要です。 |
INSTANCE_NAME=omniroute |
古いドキュメントや環境変数テンプレートには存在しますが、実行時には使用されません。将来のマルチインスタンス機能で再導入される可能性があります。 |
SQLITE_MAX_SIZE_MB=2048 |
ソースコードから参照されていません。データベースサイズは人為的に制限されません。 |
SQLITE_CLEAN_LEGACY_FILES=true |
ソースコードから参照されていません。レガシーファイルのクリーンアップ機能は削除された可能性があります。 |
CLI_ROO_BIN |
src/shared/services/cliRuntime.ts に登録されていません。 |
CLI_KIMI_CODING_BIN |
src/shared/services/cliRuntime.ts に登録されていません(Kimi Coding は CLI バイナリではなく OAuth を使用します)。 |
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET |
ソースコード内のどこからも参照されていません。 |
CEREBRAS_API_KEY / COHERE_API_KEY / FIREWORKS_API_KEY / GROQ_API_KEY / MISTRAL_API_KEY / NEBIUS_API_KEY / PERPLEXITY_API_KEY / TOGETHER_API_KEY / XAI_API_KEY |
v3.8.0 で削除されました。ランタイムはこれらの環境変数を読み取らなくなりました。認証情報は Dashboard / data/provider-credentials.json / 暗号化 DB から取得されます。 |
CURSOR_PROTOBUF_DEBUG |
v3.8.0 で削除されました。Cursor executor は CURSOR_DEBUG / CURSOR_STREAM_DEBUG を使用します(§22 を参照)。 |
CLI_COMPAT_KIRO |
v3.8.0 で削除されました。Kiro は CLI_COMPAT_OMITTED_PROVIDER_IDS に含まれているため、この切り替え設定は効果がありません。 |
QIANFAN_API_KEY |
v3.8.0 で、他の未使用プロバイダー API キーのスタブとともに削除されました。 |
デフォルト値の修正
Section titled “デフォルト値の修正”| 変数 | 旧 .env.example の値 |
実際のコード上のデフォルト値 | 修正内容 |
|---|---|---|---|
APP_LOG_RETENTION_DAYS |
90 |
7 |
✅ 誤解を招く値を削除し、デフォルト値が 7 であると明記 |
CALL_LOG_RETENTION_DAYS |
90 |
7 |
✅ 誤解を招く値を削除し、デフォルト値が 7 であると明記 |
OpenCode 設定の再生成(アドホックツール)
Section titled “OpenCode 設定の再生成(アドホックツール)”scripts/ad-hoc/regen-opencode-config.ts で使用され、実行中の
OmniRoute インスタンスから取得した正確な limit.context および limit.output
の値を使用して opencode.json を再生成します。これらは通常の動作には
必要ありません。このスクリプトは開発者向けツールとしてのみ使用されます。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_URL |
http://localhost:20128 |
scripts/ad-hoc/regen-opencode-config.ts |
/v1/models を照会する OmniRoute インスタンスのベース URL。 |
OMNIROUTE_KEY |
(未設定) | scripts/ad-hoc/regen-opencode-config.ts |
OmniRoute の /v1/models エンドポイントに対する認証用 API キー。未設定の場合は OPENCODE_API_KEY にフォールバックします。 |
OPENCODE_API_KEY |
(未設定) | scripts/ad-hoc/regen-opencode-config.ts |
再生成された opencode.json に書き込まれる OpenCode 形式の API キー(sk-...)。未設定の場合は OMNIROUTE_KEY にフォールバックします。 |
圧縮オフライン評価ハーネス(アドホックツール)
Section titled “圧縮オフライン評価ハーネス(アドホックツール)”オフライン圧縮評価 CLI である scripts/compression-eval/index.ts によって使用されます。
通常の運用には不要で、開発者向けツールでのみ使用されます。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_EVAL_CREDENTIALS |
{}(空) |
scripts/compression-eval/index.ts |
オフライン圧縮評価 CLI でテストするプロバイダー用にオペレーターが指定する JSON 認証情報(JSON.parse で解析)。ドライランの場合は未設定のままにしてください。 |
VNC ブラウザーセッション
Section titled “VNC ブラウザーセッション”ブラウザー自動化プロバイダー向けの Docker ベースのヘッドレス Chromium セッションを設定するために、src/lib/vncSession/manifest.ts によって使用されます。すべて任意です。デフォルト値を以下に示します。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_DOCKER_BIN |
docker |
src/lib/vncSession/manifest.ts |
VNC コンテナの起動に使用する Docker バイナリへのパス。 |
OMNIROUTE_VNC_IMAGE |
omniroute-vnc-chromium:local |
src/lib/vncSession/manifest.ts |
VNC Chromium コンテナ用の Docker イメージ。 |
OMNIROUTE_VNC_CHROMIUM_ARGS |
(組み込みフラグ) | src/lib/vncSession/manifest.ts |
コンテナ内のブラウザーに渡す追加の Chromium CLI 引数。 |
OMNIROUTE_VNC_CONTAINER_VNC_PORT |
3000 |
src/lib/vncSession/manifest.ts |
コンテナ内の VNC ポート。 |
OMNIROUTE_VNC_CONTAINER_CDP_PORT |
9223 |
src/lib/vncSession/manifest.ts |
コンテナ内の Chrome DevTools Protocol ポート。 |
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR |
/config |
src/lib/vncSession/manifest.ts |
コンテナ内のプロファイルディレクトリ。 |
OMNIROUTE_VNC_PROFILE_DIR |
(未設定) | src/lib/vncSession/manifest.ts |
永続的なブラウザープロファイル用のホスト側ディレクトリ。 |
OMNIROUTE_VNC_IDLE_MS |
600000 |
src/lib/vncSession/manifest.ts |
VNC セッションが回収されるまでのアイドルタイムアウト(ミリ秒)。 |
OMNIROUTE_VNC_MAX_MS |
1800000 |
src/lib/vncSession/manifest.ts |
セッションの最大継続時間(ミリ秒)。 |
OMNIROUTE_VNC_MAX_SESSIONS |
4 |
src/lib/vncSession/manifest.ts |
同時に実行できる VNC セッションの最大数。 |
OMNIROUTE_VNC_READY_MS |
45000 |
src/lib/vncSession/manifest.ts |
ブラウザーの準備完了タイムアウト(ミリ秒)。 |
OMNIROUTE_VNC_HARVEST_MS |
20000 |
src/lib/vncSession/manifest.ts |
回収/クリーンアップのタイムアウト(ミリ秒)。 |
OMNIROUTE_VNC_NETWORK |
omniroute-vnc-browser-login |
src/lib/vncSession/manifest.ts |
コンテナが参加する専用 Docker ネットワーク(#12571)。デフォルトブリッジは使用しません。 |
VIBEPROXY_DATA_DIR |
(未設定) | open-sse/services/notionThreadSessions.ts |
Notion スレッドセッションを永続化するディレクトリ。 |
内部サービス認証
Section titled “内部サービス認証”| 変数 | デフォルト | 説明 |
|---|---|---|
OMNIROUTE_INTERNAL_SERVICE_TOKEN |
– | 管理プレーンのサービス間認証に使用するインライン形式のトークン。 |
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE |
– | 内部サービストークンを格納したファイルへのパス(コンテナでは推奨。インライン変数より優先されます)。 |
OpenRouter プロバイダー統計
Section titled “OpenRouter プロバイダー統計”| 変数 | デフォルト | 説明 |
|---|---|---|
OPENROUTER_PROVIDER_STATS_ENABLED |
true |
カタログ情報の拡充に使用する OpenRouter のプロバイダー別統計の取得をスキップするには、false に設定します。 |
OPENROUTER_PROVIDER_STATS_TTL_MS |
3600000 |
取得した OpenRouter プロバイダー統計のキャッシュ TTL(ミリ秒)。 |
組み込み Redis バインディング
Section titled “組み込み Redis バインディング”| 変数 | デフォルト | 説明 |
|---|---|---|
REDIS_BIND_HOST |
127.0.0.1 |
組み込み Redis サービスのバインドアドレス。 |
REDIS_PORT |
6379 |
組み込み Redis サービスのポート。 |
OMNIROUTE_REDIS_BIND_HOST |
– | 組み込み Redis のバインドアドレスに対する OmniRoute スコープのオーバーライド。 |
24. リリース v3.8.50 での追加項目
Section titled “24. リリース v3.8.50 での追加項目”これらの設定は、前回の環境コントラクトのスナップショット以降に導入されました。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS |
2000 |
src/shared/middleware/chatBodyAdmission.ts |
高負荷チャットの受け入れスロットが空くまでの最大待機時間です。この時間を超えると、再試行可能な 503 が返されます。短い上限付き待機により、エージェントからのリクエスト集中を即座に 503 とする代わりに直列化します。0 にすると即時拒否に戻ります。 |
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES |
4194304 (4 MB) |
src/shared/middleware/chatBodyAdmission.ts |
受け入れ待機用のキュー済みバイト数の上限です。プロセス全体で待機中に保持される、バッファリング済みの本文バイト総量を制限し、待機によってヒープ使用量が増幅しないようにします(#4380)。上限を超える待機リクエストには、再試行可能な 503 が即座に返されます。 |
OMNIROUTE_CHAT_VIRTUAL_TTL_MS |
60000 (60 s) |
src/shared/middleware/chatBodyAdmission.ts |
#10110 以降は非推奨の何もしない設定です。セッション単位の受け入れレーンは廃止され、プロセス全体で共有する単一の予算に置き換えられました。設定互換性のため受け付けられますが、無視されます。 |
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS |
64 |
src/shared/middleware/chatBodyAdmission.ts |
#10110 以降は非推奨の何もしない設定です。セッション単位の受け入れレーンは廃止され、プロセス全体で共有する単一の予算に置き換えられました。設定互換性のため受け付けられますが、無視されます。 |
OMNIROUTE_CHAT_VIRTUAL_LANES |
0 (無効) |
open-sse/services/admission/runtime.ts |
適応型ランタイム仮想受け入れレーン(#9654)です。テナント単位の適応型ゲート(システム 2)に対するマスタースイッチです。上記の非推奨となった接続単位のレーン変数(TTL_MS / MAX_SESSIONS、#10110 以降は何もしない設定)とは異なります。同名のダッシュボード機能フラグが存在しますが、環境変数はダッシュボードのオーバーライドより優先されます。変更には再起動が必要です。 |
OMNIROUTE_RUNNOW_TIMEOUT_MS |
30000 |
src/app/api/jobs/[id]/run-now/route.ts |
run-now 呼び出しが、キューに入れられた実行を開始する前に、実行中のジョブを待機する時間の上限です。 |
ADOBE_FIREFLY_BROWSER_REFRESH |
有効 | open-sse/services/adobeFireflySession.ts |
アカウント単位の Chrome CDP セッションを通じて、IMS とブラウザーのリスク状態を最新に保ちます。無効にするには 0 を設定します。 |
ADOBE_FIREFLY_SESSION_DISK |
有効 | open-sse/services/adobeFireflySession.ts |
修復された Adobe セッションを DATA_DIR 配下に永続化します。メモリ内のみで状態を保持するには 0 を設定します。 |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
12000 |
open-sse/services/adobeFireflySession.ts |
Adobe Firefly の生成リクエスト送信間隔の最小値です。 |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
15000 |
open-sse/services/adobeFireflySession.ts |
Adobe への送信が 3 回成功するたびに追加される待機時間です。 |
ADOBE_FIREFLY_CHROME_HEADLESS |
0 |
open-sse/services/adobeFireflyBrowserLogin.ts |
デバッグ専用の完全ヘッドレスモードです。Adobe colligo は通常、このモードで生成されたリスクセッションを拒否します。 |
CHROME_PATH |
自動検出 | open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts |
プラットフォームの自動検出では不十分な場合に、ブラウザー駆動型 executor が使用する Chrome 実行ファイルの絶対パスを任意で指定します。 |
TELEGRAM_BOT_TOKEN |
(未設定) | src/lib/telegram/config.ts |
受信 webhook を有効化し、Mini App の initData に署名する BotFather トークンです。 |
TELEGRAM_WEBHOOK_SECRET |
(未設定) | src/lib/telegram/config.ts |
setWebhook で登録され、各 webhook 配信時に X-Telegram-Bot-Api-Secret-Token ヘッダーと照合される共有シークレットです。webhook パスには必須です。未設定の場合、webhook 配信は 503 で拒否されます。 |
TELEGRAM_DEFAULT_MODEL |
auto/chat |
src/lib/telegram/chatProxy.ts |
Telegram のチャット応答に使用するモデルです。 |
TELEGRAM_BOT_API_BASE |
https://api.telegram.org |
src/lib/telegram/config.ts |
プロキシまたはセルフホスト型 Bot API サーバー用の Bot API ベース URL のオーバーライドです。 |
TELEGRAM_WEBHOOK_TIMEOUT_MS |
60000 |
src/lib/telegram/config.ts |
外向きの Bot API 呼び出しに対するタイムアウト(ミリ秒)です。 |
OMNIROUTE_OPTIONAL_PACK_TAR |
1 (有効) |
scripts/build/optionalPackStaging.mjs |
Electron スタンドアロンツリー向けのオプション ML/ブラウザーパックをステージングする際に、.tar.gz tarball の生成を省略するには 0 を設定します(パックディレクトリと optional-packs.index.json は引き続き生成されます)。デスクトップリリースワークフローで、アップロードするアーティファクトのサイズを削減するために使用されます。 |
ChatGPT Web (Codex)
Section titled “ChatGPT Web (Codex)”ヘッドレスブラウザーと外向き Tool トンネルに対するグローバルデフォルトです。ダッシュボードで設定された Connection の値が優先されます。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
CHATGPT_WEB_CODEX_CHROME_PATH |
(自動検出) | open-sse/executors/chatgpt-web-codex.ts |
npm、systemd、PM2での実行に使用する明示的なChrome/Chromiumパス。 |
CHROME_PATH |
(自動検出) | open-sse/executors/chatgpt-web-codex.ts |
明示的なChrome/Chromiumパスに共通で使用されるフォールバック。 |
CHATGPT_WEB_CODEX_CDP_URL |
(未設定) | open-sse/executors/chatgpt-web-codex.ts |
内部CDPエンドポイント。Dockerではポート9223のサイドカーを使用します。 |
CDP_PROXY_TOKEN |
(未設定) | docker/chatgpt-web-codex-browser/cdp-proxy.mjs |
設定されている場合、CDPプロキシ・サイドカーへのすべてのリクエストで、この値をヘッダーX-Omni-Cdp-Tokenに含める必要があります(#13679)。値が設定されていない場合、プロキシは認証なしで転送します。この場合、Composeネットワークchatgpt-web-codex-netのネットワーク分離のみが保護手段となります。openssl rand -hex 32で生成します。 |
CHATGPT_WEB_CODEX_TUNNEL_ID |
(未設定) | open-sse/executors/chatgpt-web-codex.ts |
ローカルCodexツールラウンド用のグローバルOpenAIトンネルID。 |
CHATGPT_WEB_CODEX_RUNTIME_KEY |
(未設定) | open-sse/executors/chatgpt-web-codex.ts |
グローバルなトンネルのランタイムキー。ログには絶対に出力しないでください。 |
CHATGPT_WEB_CODEX_CONNECTOR_NAME |
OmniRoute Codex v2 |
open-sse/executors/chatgpt-web-codex.ts |
MCPブリッジ用に新規作成されるChatGPTカスタムコネクターの正確な名前。 |
CODEX_CHATGPT_WEB_HOME |
<DATA_DIR>/chatgpt-web-codex |
open-sse/vendor/codex-chatgpt-web/config.ts |
ブラウザー、ブローカー、トンネルの状態を保存する専用ディレクトリ。 |
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS |
0 |
open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts |
1の場合、各チェックポイントでブラウザー診断画像を取得します。 |
CODEX_CHATGPT_WEB_LAUNCHER |
(未設定) | open-sse/vendor/codex-chatgpt-web/config.ts |
永続的なランチャーバイナリへの絶対パス(任意)。 |
CODEX_CHATGPT_WEB_BUN |
(自動検出) | open-sse/vendor/codex-chatgpt-web/config.ts |
Bunランタイムバイナリへの絶対パス(任意)。 |
CODEX_WEB_GPT_BUN |
(未設定) | open-sse/vendor/codex-chatgpt-web/config.ts |
CODEX_CHATGPT_WEB_BUN用のレガシーフォールバック。新しいセットアップでは正式な名前を使用します。 |
OmniConductor ブリッジ
Section titled “OmniConductor ブリッジ”OmniConductor ハブのタスクをローカルの A2A TaskManager(src/lib/conductor/)にミラーリングする、長時間稼働型の SSE コンシューマーです。オプトイン方式であり、CONDUCTOR_HUB_URL が設定されている場合にのみブリッジが起動します。サーバーサイド専用です。ハブトークンがブラウザーに渡ることがあってはなりません。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
CONDUCTOR_HUB_URL |
(空) | src/lib/conductor/boot.ts |
OmniConductor ハブのベース URL(例:http://127.0.0.1:7910)。未設定の場合、ブリッジは無効になります。 |
CONDUCTOR_HUB_TOKEN |
(空) | src/lib/conductor/boot.ts |
SSE フィード用のハブ認証情報。ハブ上で spokesperson 種別のピアを発行します(POST /v1/peers、管理者権限)。 |
CONDUCTOR_ORCHESTRATOR_TOKEN |
(空) | src/lib/conductor/hubProxy.ts |
受信した A2A→ハブのタスク委譲(POST /v1/tasks)用の認証情報。未設定の場合は CONDUCTOR_HUB_TOKEN にフォールバックします。 |
CONDUCTOR_SPOKESPERSON_URL |
http://127.0.0.1:7920 |
src/lib/conductor/faroProxy.ts |
ダッシュボードのチャットプロキシ(/api/conductor/ask)の背後にある spokesperson(Faro)サービスのベース URL。 |
クォータを考慮したスケジューリング
Section titled “クォータを考慮したスケジューリング”open-sse/services/combo.ts および src/lib/quota/quotaScheduler.ts が、リクエスト前にトークン予算を確認するために使用します。オプトイン方式であり、未設定の場合、デフォルトのルーティング動作は変更されません。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_QUOTA_AWARE_ROUTING |
0 |
open-sse/services/combo.ts |
1 の場合、ディスパッチ前に、ウィンドウごとのトークン予算(rateLimitOverrides.tpm、テーブル provider_quota_state)では推定リクエストコストを賄えない接続をスキップします。予算が設定されていない場合はフェイルオープンします。 |
HagiCode
HagiCode は構造化ワークフロー、マルチエージェント実行、Hero Dungeon ビューを備えたエージェント型コーディングワークスペースです。
よりスマートで速く、楽しいエージェント型ワークフローで、使いやすいソフトウェアを形にします。

- Smart構造化ワークフローは意図をアイデアから変更のリリースまで実行可能な道筋にします。
- Efficientマルチエージェントのワークフローで調査、実装、レビューを並行して進めます。
- FunHero Dungeon により長時間のコーディングを視覚的で協力的な体験にします。