* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
659 KiB
Environment Variables Reference (日本語)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
OmniRoute が認識するすべての環境変数に関する完全なリファレンスです。 クイックスタート用テンプレートについては、
.env.exampleを参照してください。
Important
ここに記載されているすべての変数は
.env.exampleにも含まれている必要があり、.env.exampleに含まれるすべての変数もここに記載されている必要があります。npm run check:env-doc-syncは、コミット時および CI でこの整合性を強制します。変数を意図的に除外するには、scripts/check/check-env-doc-sync.mjs内の許可リストに追加してください。
目次
- 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. 必須のシークレット
これらは初回実行前に必ず設定する必要があります。設定されていない場合、アプリケーションは起動を拒否するか、安全でないデフォルト設定で動作します。
| 変数 | 必須 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|---|
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ゲーティング)を信頼します。起動ごとに自動生成されるため、未設定のままにしてください。スタンプを共有する必要があるマルチプロセス構成の場合にのみ固定してください。 |
生成コマンド
# 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. ストレージとデータベース
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 |
パック成果物のプロベナンスゲートがビルド SHA と照合する参照です(#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回に制限されます。ダッシュボードの設定 → ストレージでは、定期自動バックアップを別途無効化できます。 |
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 |
21600000(6時間) |
src/lib/db/walMaintenance.ts |
定期的なwal_checkpoint(TRUNCATE)の間隔(ミリ秒)を上書きします。自動チェックポイントによってWALファイル自体が縮小されることはなく、長時間稼働するサーバーがDBを閉じることもありません。0で無効化します。 |
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS |
300000(5分) |
src/lib/db/walMaintenance.ts |
頻繁に実行されるwal_checkpoint(PASSIVE)の間隔(ミリ秒)を上書きします。保留中のWALフレームを少量に抑えることで、定期的なTRUNCATEがメインスレッド上で数GBに及ぶバックログをコピーしないようにします。0で無効化します。 |
OMNIROUTE_WAL_GUARD_MAX_MB |
256 |
src/lib/db/walMaintenance.ts |
PASSIVEの実行時にWALファイルがこのサイズを超えていることが検出された場合、低頻度の実行を待たず、直ちにwal_checkpoint(TRUNCATE)へエスカレートします。 |
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_WAL_TRUNCATE_INTERVAL_MS |
21600000(6時間) |
src/lib/db/core.ts |
定期的なwal_checkpoint(TRUNCATE)の間隔(ミリ秒)を上書きします。自動チェックポイントによってWALファイル自体が縮小されることはなく、長時間稼働するサーバーがDBを閉じることもありません。0で無効化します。 |
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 |
1 に設定すると、起動時の DB ヘルスチェックを完全にスキップします。短時間で終了するタスクや統合テストに便利です。 |
OMNIROUTE_FORCE_DB_HEALTHCHECK |
0 |
src/lib/db/core.ts |
1 に設定すると、通常であればスキップされる場合(短時間で終了するタスクなど)でも、DB ヘルスチェックループを強制的に有効にします。 |
OMNIROUTE_SKIP_POSTINSTALL |
0 |
scripts/postinstall.mjs |
1 に設定すると、npm install 中のネイティブランタイムのウォームアップをスキップします。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 |
"true" に設定すると、Vercel リレーパスで [ProxyFetch] デバッグログを出力します。ルーティングに関する情報の漏洩を防ぐため、デフォルトでは無効です。 |
PROXY_LOG_INCLUDE_IPS |
false |
src/lib/proxyLogger.ts |
"true" または "1" に設定すると、詳細な [ProxyEgress] プロセスログ行にクライアント/送信元 IP とアカウントプレフィックスを含めます。プロセスログから IP やアカウントプレフィックスが漏洩しないよう、デフォルトでは無効に設定されています。 |
OMNIROUTE_DEBUG |
(未設定) | bin/cli/commands/quota.mjs |
1 に設定すると、CLI のクォータコマンドからリクエストごとのタイミング診断([omniroute] GET <path> completed in Nms)を stderr に出力します。 |
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 |
個々のバッチ項目に対する最大再試行期間(ミリ秒)。この期間を超えた項目は失敗としてマークされます。 |
BATCH_BACKOFF_BASE_MS |
5000 |
open-sse/services/batchProcessor.ts |
バッチ項目の再試行時に使用する指数バックオフの基本遅延時間(ミリ秒)。 |
BATCH_BACKOFF_MAX_MS |
3600000 (1時間) |
open-sse/services/batchProcessor.ts |
バッチ項目の再試行間に適用される指数バックオフの上限(ミリ秒)。 |
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. ネットワークとポート
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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) |
ポートモード
┌─────────────────────────── 単一ポート(デフォルト) ────────────────────────┐
│ 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. セキュリティと認証
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 キーを含める必要があります。 |
ALLOW_API_KEY_REVEAL |
false |
src/shared/constants/featureFlagDefinitions.ts |
Dashboard UI で API キーの完全な値を表示できるようにします。Dashboard の Feature Flags から設定できますが、共有インスタンスではセキュリティ上のリスクがあります。 |
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ヒープ)におけるプロセスの実際のメモリ上限から自動導出されるバイト単位の予算です。約75万トークンの /v1/responses が2件重なると、約12 GiBのヒープが異常終了します(#7849)。これはメモリ予算に関する警告であり、製品上のハード上限が2件という意味ではありません。正常なプロセス(ヒープがシェッド比率未満)は、OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM を介して、より多くの長時間 /v1/responses を同時に受け入れられる場合があります。数十件(40~50件)の長時間SSEクライアントを処理できるかどうかは、ヒープ + 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 |
バイトおよび構造に基づく高負荷リクエスト受け入れに対する、ヒープ圧迫時のシェッド比率(heapUsed / heap_size_limit)です(#10183、#10268、#10437)。OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT を超える同時高負荷リクエストは、ヒープもこの比率以上の場合にのみ、再試行可能な 503 でシェッドされます。ヒープが正常な場合は、正常時ヘッドルームを介して受け入れられます。 |
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM |
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT(デフォルト 1) |
src/shared/middleware/chatBodyAdmission.ts |
正常なヒープ向け高速パス(#10437)の追加容量に対する上限です。構造とバイトの両方に適用されます(admitChatRequest、OMNIROUTE_CHAT_LARGE_BODY_BYTES 以上の本文を含む)。この上限がない場合、ヒープは正常だが処理中リクエストが多い状況で、すべてのリクエストが上限なしに受け入れ制御を迂回していました。この正常ヒープパスを介した同時リースがこの件数に達すると、それ以降のビジー状態のリクエストは、実際のヒープ圧迫時に使用されるものと同じ、待機時間に上限のあるシェッドパスにフォールスルーします。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 とヒープ圧迫時のシェッドによって制限されます。ハード上限を必要とするメモリ制約のあるデプロイでは正の値を設定してください。超過した場合は、圧縮が必要であることを示す構造化された 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) |
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)。 |
セキュリティ強化チェックリスト
# 本番環境における最低限のセキュリティ設定:
AUTH_COOKIE_SECURE=true # HTTPS が必要
REQUIRE_API_KEY=true # すべてのプロキシ呼び出しを認証
ALLOW_API_KEY_REVEAL=false # UI にキーを一切表示しない
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880 # 上限 5 MB
5. 入力サニタイズと PII 保護
OmniRoute は、リクエスト側のインジェクションスキャンとレスポンス側の PII 除去という、2 層の防御を提供します。
⚠️ 制限事項: これらのガードレールは完全なプロンプトインジェクションファイアウォールや PII DLP システムではなく、ベストエフォート型のヒューリスティック検出です。誤検知(無害なペルソナ/RPG プロンプトが検出される)や検出漏れ(リートスピーク、空白の挿入、英語以外のパターン)が発生する可能性があります。これらだけではコンプライアンス対応として十分ではありません。依存する前に、モードを調整し、実際のトラフィックに対してテストしてください。
リクエスト側: プロンプトインジェクションガード
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 サニタイザー
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 トークン化ルートのコンテキストサニタイザー
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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. ツールおよびルーティングポリシー
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 |
ペイロードルールファイルをホットリロードする間隔(ms)。最小値は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_DISABLE_CONVERSATION_TRACKING |
(未設定) | open-sse/services/conversationTracker.ts |
会話履歴の収集を停止するには1に設定します。resolveConversationId()は、SQLiteの読み取りやメッセージ履歴の解析を行う前に、追跡対象外の結果を返します。クライアントから提供されたセッションIDも対象です。ルーティングセッションの処理は変更されず、既存のレコードも削除されません。ダッシュボードの会話ビューを使用せず、ターンテーブルの増加を停止したいデプロイメント向けです。 |
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 用の従来のフォールバック。 |
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 |
使用量ページで使用される CrofAI クォータ照会エンドポイント。リレー/テストフィクスチャ向けにオーバーライドできます。 |
OMNIROUTE_OPENCODE_QUOTA_URL |
https://opencode.ai/zen/go/v1/usage |
open-sse/services/opencodeQuotaFetcher.ts |
使用量ページで使用される、公式の API キー認証付き OpenCode Go 使用量エンドポイント。リレー/テストフィクスチャ向けにオーバーライドできます。 |
OPENCODE_SYNTHESIZE_CLI_HEADERS |
true |
open-sse/executors/opencode.ts |
クライアントが送信しなかった OpenCode CLI 識別ヘッダー(User-Agent、x-opencode-client/project、リクエスト/セッション UUID)を opencode-go/zen アップストリームリクエストで生成し、VPS からの送信を Cloudflare が受け入れられるようにします(#6210/#5997)。#10571 以降はデフォルトで有効です。無効にするには false/0/no/off を指定します。 |
OPENCODE_USER_AGENT |
opencode |
open-sse/executors/opencode.ts |
OPENCODE_SYNTHESIZE_CLI_HEADERS が有効で、プロバイダーごとの <PROVIDER>_USER_AGENT オーバーライドが設定されていない場合に使用されるデフォルトの User-Agent。opencode エグゼキューターにのみ適用されます。 |
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 ヘッダーに使用される値。 |
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 またはコンテナ URL のままにしてください。認証情報を伴う内部セルフフェッチに、ブラウザのOriginや公開ホスト名を使用しないでください。認証済みのダッシュボード書き込みには、静的な公開ベース URL は必要ありません。ダッシュボードは、セッションに紐付けられた CSRF トークンを使用して、同一オリジンへの安全でないリクエストを送信します。OmniRoute は、ダッシュボード以外のブラウザ統合についても公開オリジンの検証を一元管理します。明示的な公開 URL 環境変数が最初に信頼されます。生の
Forwarded/X-Forwarded-*ヘッダーは、OMNIROUTE_TRUST_PROXYが有効で、かつ直近のプロキシピアに信頼済みであることを示すトークンが付与されていない限り無視されます。同一オリジンのダッシュボードリクエストを修正するために CORS 設定を使用しないでください。CORS はクロスオリジンのブラウザクライアント専用です。
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ツールの統合
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 プロファイルの自動同期
これらの機能フラグはオプトインであり、デフォルトでは無効です。 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 の例
# ホストのバイナリをコンテナにマウントし、その場所を OmniRoute に指定します:
CLI_EXTRA_PATHS=/host-cli/bin
CLI_CONFIG_HOME=/host-home
CLI_ALLOW_CONFIG_WRITES=true
CLI_CLAUDE_BIN=/host-cli/bin/claude
CLI_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)のヘルパー
これらの変数は、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 の統合
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 |
true |
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 ブリッジ(内部)
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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プロバイダーの認証情報
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) | パブリッククライアントです。 |
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のパブリックなデフォルト値にフォールバックします。 |
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です。リダイレクトURIを<NEXT_PUBLIC_BASE_URL>/callback、スコープをapi, read_user, openid, profile, emailとして、https://gitlab.com/-/profile/applicationsでアプリを登録してください。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 ガードレール | Anthropic 以外の Vision Bridge 呼び出しに使用する OpenAI 互換のベース URL。デフォルトでは、レガシーな OpenAI URL 環境変数または api.openai.com が使用されます。OmniRoute 自身の /v1 セルフループ、または任意の OpenAI 互換エンドポイント(Gemini OpenAI 互換、OpenRouter)を指定してください。issue #2232。URL が OmniRoute 自身の /v1 の場合、describe サブリクエストは x-omniroute-admission-bypass: internal を送信し、解決されたセルフループ認証情報(ローカルモードでは sk_omniroute センチネル、または OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350)で認証するため、REQUIRE_API_KEY=true のデプロイ環境でも動作します。 |
VISION_BRIDGE_API_KEY |
Vision Bridge ガードレール | 上記 URL の API キー。Anthropic 以外の Vision Bridge 呼び出しでは、プロバイダーごとの OpenAI / Google 環境変数よりも優先されます。Anthropic モデルでは、専用の Anthropic キーパスが引き続き使用されます。issue #2232。 |
Warning
- Google Cloud Console → 認証情報 に移動します
- OAuth 2.0 クライアント ID(種類:「ウェブ アプリケーション」)を作成します
- サーバー URL を承認済みのリダイレクト URI として追加します
.envの認証情報の値を置き換えます。
12. プロバイダーの User-Agent オーバーライド
各アップストリームプロバイダーに送信される User-Agent ヘッダーをオーバーライドします。これは、エグゼキューターの基底クラスによって実行時に動的に解決されます。
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 に転送します。デフォルトでは、エグゼキューターは Claude Code 以外のツール名に決定論的なエイリアスを割り当て(Claude Code の正規マッピングが存在する場合はそれを使用し、それ以外は PascalCase を使用)、レスポンスでは _toolNameMap を介して元に戻します。これにより、snake_case のツールを使用するハーネスが、フィンガープリントされたサードパーティクライアントとして拒否されることを防ぎます。デバッグ専用です。 |
CODEX_USER_AGENT |
codex-cli/0.142.0 (Windows 10.0.26200; x64) |
OpenAI が Codex CLI を更新したとき | |
CODEX_CLIENT_VERSION |
0.131.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 オーバーライドを追加できます。エグゼキューターは環境変数名を動的に構築します。
13. CLI フィンガープリント互換性
有効にすると、OmniRoute は HTTP ヘッダーと JSON ボディのフィールドを並べ替え、公式 CLI ツールの正確なシグネチャに一致させます。これにより、プロキシ IP を維持しながら、アカウントがフラグ付けされるリスクを軽減します。
ソース: open-sse/config/cliFingerprints.ts、open-sse/executors/base.ts
プロバイダー別
| 変数 | 有効化 | 効果 |
|---|---|---|
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 オーバーライド
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 キープロバイダー
直接認証を使用するプロバイダー向けの 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. タイムアウト設定
すべての値の単位はミリ秒です。設定の一元的な解決は src/shared/utils/runtimeTimeouts.ts で行われます。
タイムアウトの階層
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 エージェント実行に対して、早期ストリーム復旧を自動的に有効にします。目標固有のオプトインを無効にするには 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)。未設定の場合、executor のデフォルトは 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秒) |
プロキシを使用しない各直接接続試行で、レスポンス開始を待機する最大時間(ミリ秒)。タイムアウトした場合は新しいソケットで1回再試行します。上限を無効にして以前の動作を維持するには、0を設定します。 |
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を指定するとこのガードが無効になります。 |
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プリセットのタイムアウト(ミリ秒)。低速なエンドポイント(Cerebras、Cloudflare AI、Groq)では値を増やすことで、ダッシュボード上でアクティブ状態とエラー状態が頻繁に切り替わるのを防止できます。無効な値(1000未満)または数値以外の値の場合は8000msにフォールバックします。 |
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS |
25000 |
open-sse/utils/proxyFetch.tsのリレー固有の取得タイムアウト(#9158)。停止したリレーはクライアント/エージェントのタイムアウト(約30秒)より前に失敗する必要があるため、呼び出し元には汎用的なアップストリームタイムアウトではなく、リレー固有のエラーが通知されます。常に先に発動するよう、上限は29000に設定されます。 |
OMNIROUTE_RETRY_BACKOFF_MS |
10 |
open-sse/utils/proxyFetch.tsの直接接続/リレー/プロキシにおける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 |
ブラウザベースのウェブ Cookie チャット向け共有 Playwright ブラウザプール(browserPool.ts)。無効にするには off を設定します。 |
OBSCURA_BIN |
auto-detect |
ブラウザプールおよび Cloudflare Playground エグゼキューターがプライマリエンジンとして使用する obscura バイナリへのパス(open-sse/services/obscura.ts)。未設定の場合はシステムの PATH から自動検出されます。 |
OBSCURA_CDP_ENDPOINT |
(未設定) | 新たに起動する代わりに、すでに実行中の Obscura(http://host:port)を指定します。このモジュールはそのプロセスを管理しません(open-sse/services/obscura.ts)。 |
OBSCURA_PORT |
random free port |
起動される obscura serve の明示的なポート。未設定の場合は空きポートが自動的に選択されます(open-sse/services/obscura.ts)。 |
WEB_COOKIE_USE_BROWSER |
0 |
ウェブ Cookie チャットリクエストでブラウザベースの経路を使用するよう指定します(browserBackedChat.ts)。有効にするには 1 を設定します。 |
KIMI_WEB_BASE_URL |
https://www.kimi.ai |
Kimi Web(国際版 kimi.ai Connect-RPC)エグゼキューターのベース URL(kimi-web.ts)。ミラー/プロキシエンドポイントを使用する場合にのみ上書きしてください。 |
KIMI_WEB_CHAT_URL |
<KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat |
Kimi Web エグゼキューターの完全なチャットエンドポイント(kimi-web.ts)。 |
OMNIROUTE_LOGIN_BROWSER_PATH |
(自動検出) | Adobe Firefly の対話型ブラウザサインインに使用する、システム上の Chrome/Edge 実行可能ファイルへのパス(adobeFireflyBrowserLogin.ts)。OS ごとの自動検出を上書きします。 |
OMNIROUTE_STANDALONE_DIR |
.build/ スタンドアロン出力 | ビルド後の併置ステップで使用されるスタンドアロン出力ディレクトリを、ビルド時に上書きします(scripts/build/colocate-standalone.mjs)。ランタイムではなく、ビルドツール向けの設定です。 |
コンボターゲットの試行では、解決済みのアップストリームリクエストタイムアウト(FETCH_TIMEOUT_MS、または
フェッチのデフォルト値を指定している場合は REQUEST_TIMEOUT_MS)が継承されます。コンボ、
コンボのデフォルト、またはプロバイダーのオーバーライドで targetTimeoutMs を設定するのは、
コンボのフォールバックを高速化する場合に限ってください。現在のアップストリームタイムアウトを超える値は、
そのアップストリームタイムアウトに制限されます。
comboTimeoutMs は、フェイルオーバーターゲット全体に適用される、コンボ全体の独立した実時間ベースの制限です。
無制限の反復を維持するには、未設定または 0 のままにしてください(10 分間の
COMBO_LOOP_SAFETY_TIMEOUT_MS によるハング停止は引き続き適用されます)。正の値を指定すると、
コンボではその値が安全策に代わって使用されます。遅い最初のターゲットの後でもフェイルオーバーする時間を確保できるよう、
comboTimeoutMs は targetTimeoutMs より長くしてください。
サーキットブレーカーのしきい値
プロバイダーレベルのサーキットブレーカー調整。デフォルト値は、500 以上の接続に対応するため v3.6 以降で使用されているスケーリング済みの値を反映しています。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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プロバイダーのブレーカーのリセット期間(ミリ秒)。 |
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キープロバイダーのブレーカーのリセット期間(ミリ秒)。 |
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 |
ローカルプロバイダーのブレーカーのリセット期間(ミリ秒)。 |
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プロバイダーのローリング失敗回数集計期間(ミリ秒)。 |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS |
300000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:OAuthプロバイダーがしきい値に達した後のクールダウン時間(ミリ秒)。 |
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キープロバイダーのローリング失敗回数集計期間(ミリ秒)。 |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS |
600000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:APIキープロバイダーがしきい値に達した後のクールダウン時間(ミリ秒)。 |
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 |
プロバイダーレベルのブレーカー:ローカルプロバイダーのローリング失敗回数集計期間(ミリ秒)。 |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS |
60000 |
open-sse/config/constants.ts |
プロバイダーレベルのブレーカー:ローカルプロバイダーがしきい値に達した後のクールダウン時間(ミリ秒)。 |
PIN_DROP_BACKOFF_LEVEL |
2 |
open-sse/services/combo.ts |
コンテキストキャッシュのピンに対応するプロバイダーが継続的に異常であると判断し、フェイルオーバーのためにピンを解除するバックオフ深度。 |
PIN_DROP_GRACE_MS |
20000 |
open-sse/services/combo.ts |
コンテキストキャッシュのピンを解除する前に、短時間の一時的なクールダウンを許容するアンチフラップ期間(ミリ秒)。 |
シナリオ
| シナリオ | 構成 |
|---|---|
| 長時間実行されるコード生成 | 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. ロギング
ロギングシステムは、標準出力とローテーションされるログファイルの両方に書き込みます。すべての設定は 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. メモリ最適化
| 変数 | デフォルト | 説明 |
|---|---|---|
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)
メモリ、スキル、トークン更新のイベントループコスト(#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 の例
128 はダッシュボード専用です。このヒープサイズでは、コーディングエージェントが長時間の /v1/responses 中に FATAL ERROR になります。この例を Claude/Codex/Grok ゲートウェイとして使用しないでください。
OMNIROUTE_MEMORY_MB=128
PROMPT_CACHE_MAX_SIZE=20
PROMPT_CACHE_MAX_BYTES=524288 # 512 KB
SEMANTIC_CACHE_MAX_SIZE=25
SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MB
STREAM_HISTORY_MAX=10
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 同期
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 プロバイダー(非公式/実験的)
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 プロバイダー(非公式/実験的)
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 使用量クォータ
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 プロバイダー(非公式/実験的)
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. モデル同期(開発用)
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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. プロバイダー固有の設定
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 |
名前付きトンネルの公開ホスト名(例:ai.example.com)の上書き値。publicUrl/apiUrl として報告されます。未設定の場合は、設定内の最初の ingress ホスト名から読み取られます。 |
DENO_DEPLOY_API_BASE |
https://api.deno.com/v2 |
src/app/api/settings/proxy/deno-deploy/route.ts |
プロキシプールのリレーデプロイヤーが使用する Deno Deploy REST API のベース URL を上書きします(#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)。 |
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. プロキシのヘルスチェック
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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_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 つのプローブを送信する間の遅延(ms)。これを設定しないとバッチ全体が同時に送信され、共有の送信元 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 に設定します。 |
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秒) |
open-sse/services/rateLimitManager.ts |
リクエストを失敗させるまでに 429 で待機する最大時間です。 |
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 |
リクエスト間で共有されるグローバルなプロバイダー/接続クールダウン追跡をオプトインで有効にします。デフォルトではオフです(Connection Cooldown / Provider Circuit Breaker と機能が重複します)。有効にするには true/1/on を指定できます。 |
PROVIDER_COOLDOWN_MIN_MS |
5000 |
open-sse/services/providerCooldownTracker.ts |
失敗したプロバイダー/接続を再試行するまでの最小クールダウン時間(ミリ秒)です。連続失敗回数に応じて指数関数的に増加します。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互換ストリームのみが対象で、tool callの処理中には実行されません。**有効化する場合:**長い生成が回答の途中で切断され、復旧した末尾がトークン単位ではなく一括で到着することを許容できる場合。STREAM_RECOVERY_ENABLED からは独立しています(リスク特性が異なるため)。true/1/on を指定できます。 |
STREAM_THROUGHPUT_WATCHDOG_ENABLED |
(未設定 → オフ) | src/lib/resilience/settings.ts → open-sse/services/throughputWatchdog.ts |
オプトイン方式の、アクティブなストリームに対する有効出力ウォッチドッグ。チャンクを送信し続けているにもかかわらず、設定されたassistant出力レートを下回っているストリームを検出します。ハートビート、使用量イベント、空のdelta、およびtool/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 サイドカープロキシを指定する場合にのみ上書きしてください。 |
ストリーム復旧の調整用定数
復旧時の保留動作は、
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. デバッグ
Caution
これらの変数は詳細な出力を生成し、機密データが漏洩する可能性があります。本番環境では絶対に有効にしないでください。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
CURSOR_DEBUG |
(未設定) | open-sse/executors/cursor.ts |
1 に設定すると、Cursor エグゼキューターの詳細ログ(デコード済み 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 エグゼキューターのストリームアイドルタイムアウト(ミリ秒)です。 |
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 の各パスに到達します。また、エコーされたシステムプリアンブルブロックから除去されるディレクティブのプレフィックスとしても使用されます。無効にするには未設定のままにします。 |
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>)を上書きします。公式エージェントが使用するものと同じ変数です。 |
CURSOR_TOKEN |
(未設定) | scripts/ad-hoc/cursor-tap.cjs |
開発者ツールで使用する Cursor の直接ベアラートークンです。 |
OMNIROUTE_LOG_REQUEST_SHAPE |
無効("1" によるオプトイン) |
src/app/api/v1/chat/completions/route.ts |
"1" が設定されている場合、大きなチャットペイロードのコンテンツタイプ/長さのマーカーをログに記録します。ログノイズを減らすため、デフォルトでは無効です。 |
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 連携
ユーザーがダッシュボードから直接問題を報告できるようにします。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
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 アクセストークン。 |
デプロイシナリオ
リレーバックエンドの SRE ガイダンス(ts/bifrost/auto の動作、9router と CLIProxyAPI の配置、高スループット向けフォールバック戦略)については、リレーバックエンド戦略を参照してください。
最小構成のローカル開発
JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development
Docker 本番環境
JWT_SECRET=<generated>
API_KEY_SECRET=<generated>
INITIAL_PASSWORD=<generated>
STORAGE_ENCRYPTION_KEY=<generated>
DATA_DIR=/data
PORT=20128
API_PORT=20129
NODE_ENV=production
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://localhost:20128
OMNIROUTE_MEMORY_MB=8192
CORS_ORIGIN=https://your-frontend.example.com
エアギャップ環境 / CI
JWT_SECRET=test-jwt-secret-for-ci
API_KEY_SECRET=test-api-key-secret-for-ci
INITIAL_PASSWORD=testpass
NODE_ENV=production
OMNIROUTE_DISABLE_BACKGROUND_SERVICES=true
APP_LOG_TO_FILE=false
リバースプロキシを使用する VPS(nginx + Cloudflare)
JWT_SECRET=<generated>
API_KEY_SECRET=<generated>
STORAGE_ENCRYPTION_KEY=<generated>
PORT=20128
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://127.0.0.1:20128
CORS_ORIGIN=https://omniroute.example.com
ENABLE_TLS_FINGERPRINT=true
CLI_COMPAT_ALL=1
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. プロバイダーのクォータ、トンネル、バックアップ、その他のランタイム設定
プロバイダーのクォータエンドポイント、ネットワークトンネル(Tailscale、Ngrok、MITM デバッグプロキシ)、1Proxy のエグレスプール、データベースバックアップ、およびエグゼキューターレイヤーまたはスクリプトから参照される機能ごとの小規模なオーバーライド設定。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
REDIS_URL |
redis://localhost:6379 |
src/shared/utils/rateLimiter.ts |
レートリミッターのバックエンド用 Redis 接続文字列。 |
ALIBABA_CODING_PLAN_HOST |
(本番ホスト) | open-sse/services/bailianQuotaFetcher.ts |
Alibaba Bailian のコーディングプランのクォータ取得に使用するホストをオーバーライドします。 |
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 を使用して Dashboard の 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 を解決するために使用する Dashboard 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 |
プロキシ接続のアイドルソケットタイムアウト(ms)。この時間を超えてアイドル状態にあるソケットは、ハーフオープントンネルのリークを防ぐため切断されます。 |
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(truthy)を設定します。オペレーターが 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 の削除を防止するゲートで使用するベース ref を明示的に指定します(デフォルトは、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 から同期ごとに取得するプロキシの最大数。 |
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 の同期ごとに取得するプロキシの数。 |
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 |
「プロキシプール」タブの「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 の場合に、自動コンボのスコアリングで枯渇状態のプロバイダー(credits_exhausted/rate_limited)に適用されるスコア乗数(0..1)(#4540)。 |
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 パネル全体のファンアウトに対するハードタイムアウト(ms)。未設定の場合はエンジンのデフォルトを維持します。 |
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 |
ID を保持する内部 REST ホップ用の共有シークレット (#9260)。他のローカル OmniRoute ルートを呼び出す OmniRoute コンポーネントは、元の呼び出し元の ID が保持されるよう、これを 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 (24時間) |
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 ウォームアップスケジューラー
オプトインされた 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 回の実行で並列にウォームアップする接続数。1~10 の範囲に制限されます。数値以外の値の場合は 3 にフォールバックします。 |
OMNIROUTE_WARMUP_MODEL |
claude-3-5-haiku-20241022 |
src/lib/warmupScheduler.ts |
ウォームアップリクエストに使用するモデル。デフォルトがお使いのプランで利用できない場合にのみ上書きしてください。ウィンドウを開始できる最も安価なモデルを選択してください。 |
ブラウザログイン用 VNC セッションとデータディレクトリのエイリアス
対話形式のブラウザログインによる認証情報取得(/api/vnc-session)に使用するコンテナ化された Chromium+VNC と、レガシーな 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 |
単一の 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 ハーネス
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 バイナリのパスを上書きします。 |
ドキュメント翻訳パイプライン
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 フィード(セルフホスティング)
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 が必須です。未設定または無効な値の場合、ナビゲーション項目は作成されません。 |
監査:削除済み/未使用の変数
以下の変数は以前のバージョンの .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 キーのスタブとともに削除されました。 |
デフォルト値の修正
| 変数 | 旧 .env.example の値 |
実際のコード上のデフォルト値 | 修正内容 |
|---|---|---|---|
APP_LOG_RETENTION_DAYS |
90 |
7 |
✅ 誤解を招く値を削除し、デフォルト値が 7 であると明記 |
CALL_LOG_RETENTION_DAYS |
90 |
7 |
✅ 誤解を招く値を削除し、デフォルト値が 7 であると明記 |
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 にフォールバックします。 |
圧縮オフライン評価ハーネス(アドホックツール)
オフライン圧縮評価 CLI である scripts/compression-eval/index.ts によって使用されます。
通常の運用には不要で、開発者向けツールでのみ使用されます。
| 変数 | デフォルト | ソースファイル | 説明 |
|---|---|---|---|
OMNIROUTE_EVAL_CREDENTIALS |
{}(空) |
scripts/compression-eval/index.ts |
オフライン圧縮評価 CLI でテストするプロバイダー用にオペレーターが指定する JSON 認証情報(JSON.parse で解析)。ドライランの場合は未設定のままにしてください。 |
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 スレッドセッションを永続化するディレクトリ。 |
内部サービス認証
| 変数 | デフォルト | 説明 |
|---|---|---|
OMNIROUTE_INTERNAL_SERVICE_TOKEN |
– | 管理プレーンのサービス間認証に使用するインライン形式のトークン。 |
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE |
– | 内部サービストークンを格納したファイルへのパス(コンテナでは推奨。インライン変数より優先されます)。 |
OpenRouter プロバイダー統計
| 変数 | デフォルト | 説明 |
|---|---|---|
OPENROUTER_PROVIDER_STATS_ENABLED |
true |
カタログ情報の拡充に使用する OpenRouter のプロバイダー別統計の取得をスキップするには、false に設定します。 |
OPENROUTER_PROVIDER_STATS_TTL_MS |
3600000 |
取得した OpenRouter プロバイダー統計のキャッシュ TTL(ミリ秒)。 |
組み込み Redis バインディング
| 変数 | デフォルト | 説明 |
|---|---|---|
REDIS_BIND_HOST |
127.0.0.1 |
組み込み Redis サービスのバインドアドレス。 |
REDIS_PORT |
6379 |
組み込み Redis サービスのポート。 |
OMNIROUTE_REDIS_BIND_HOST |
– | 組み込み Redis のバインドアドレスに対する OmniRoute スコープのオーバーライド。 |
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)
ヘッドレスブラウザーと外向き 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 ブリッジ
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。 |
クォータを考慮したスケジューリング
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)では推定リクエストコストを賄えない接続をスキップします。予算が設定されていない場合はフェイルオープンします。 |