Files
OmniRoute/docs/i18n/pl/docs/reference/ENVIRONMENT.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* 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.
2026-09-18 13:16:46 -03:00

669 KiB
Raw Blame History

Environment Variables Reference (Polski)

🌐 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 · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇹 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


Pełna dokumentacja wszystkich zmiennych środowiskowych rozpoznawanych przez OmniRoute. Szablon szybkiego startu znajduje się w pliku .env.example.

Important

Każda udokumentowana tutaj zmienna musi również znajdować się w .env.example, a każda zmienna z .env.example musi być opisana tutaj. npm run check:env-doc-sync wymusza tę zgodność podczas zatwierdzania zmian oraz w CI. Aby celowo pominąć zmienną, dodaj ją do listy dozwolonych wyjątków w pliku scripts/check/check-env-doc-sync.mjs.


Spis treści


1. Wymagane sekrety

Te wartości muszą zostać ustawione przed pierwszym uruchomieniem. Bez nich aplikacja odmówi uruchomienia lub będzie działać z niebezpiecznymi wartościami domyślnymi.

Zmienna Wymagana Wartość domyślna Plik źródłowy Opis
JWT_SECRET Tak (brak) src/lib/auth Podpisuje/weryfikuje wszystkie pliki cookie sesji panelu (JWT). Wygeneruj za pomocą openssl rand -base64 48.
API_KEY_SECRET Tak (brak) src/lib/db/apiKeys.ts Klucz szyfrowania AES dla wartości kluczy API przechowywanych w SQLite. Wygeneruj za pomocą openssl rand -hex 32.
INITIAL_PASSWORD Tak CHANGEME Skrypt inicjalizacyjny Ustawia początkowe hasło administratora panelu (zgodne z wartością domyślną w .env.example — celowo pozostawione jako ewidentnie niezabezpieczone, aby wymusić zmianę). Zmień je przed pierwszym użyciem. Po zalogowaniu zmień je poprzez Panel → Ustawienia → Bezpieczeństwo.
OMNIROUTE_WS_BRIDGE_SECRET Tak (produkcja) (nieustawiona) src/app/api/internal/codex-responses-ws/route.ts Współdzielony sekret wewnętrznego mostu WebSocket Codex Responses. Uwierzytelnia żądania mostu między przekaźnikiem WS Electron/przeglądarki a OmniRoute. ⚠️ WYMAGANY w środowisku produkcyjnym — gdy nie jest ustawiony, wszystkie żądania mostu WS są odrzucane. Wygeneruj za pomocą openssl rand -base64 32.
OMNIROUTE_SW_BUILD_ID Nie (SHA git) next.config.mjs, scripts/build/assembleStandalone.mjs Jawny identyfikator unieważniający pamięć podręczną service workera dla powłoki PWA (#11779); pierwszy w łańcuchu rozstrzygania.
SOURCE_VERSION Nie (nieustawiona) next.config.mjs, scripts/build/assembleStandalone.mjs Drugi element łańcucha — ustawiany przez systemy kompilacji PaaS (np. typu Heroku) na wdrożony commit.
NEXT_PUBLIC_SW_BUILD_ID Nie (wyliczana) src/shared/components/PwaRegister.tsx Publiczna wartość ustawiana podczas kompilacji, której klient używa do rejestrowania /sw.js?v=…; wyliczana na podstawie dwóch powyższych wartości, a następnie SHA git.
OMNIROUTE_PEER_STAMP_TOKEN Nie (automatycznie) (automatycznie przy każdym uruchomieniu) src/server/authz/policies/management.ts Sekret procesu potwierdzający, że zaufany znacznik adresu IP peera pochodzi z własnego serwera HTTP OmniRoute (scripts/dev/peer-stamp.mjs). Oprogramowanie pośredniczące authz ufa lokalności żądania (kontrola dostępu z loopback/LAN do tras LOCAL_ONLY) tylko wtedy, gdy znacznik zawiera ten token. Generowany automatycznie przy każdym uruchomieniu — pozostaw nieustawiony; ustaw go na stałe tylko w konfiguracjach wieloprocesowych, które muszą współdzielić znacznik.

Polecenia generowania

# Wygeneruj wszystkie cztery sekrety jednocześnie:
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

Nigdy nie zatwierdzaj w systemie kontroli wersji plików .env zawierających prawdziwe sekrety. Plik .gitignore już wyklucza .env, ale sprawdź to przed wysłaniem zmian.


2. Pamięć masowa i baza danych

OmniRoute używa SQLite (za pośrednictwem better-sqlite3) do przechowywania wszystkich danych. Te zmienne sterują lokalizacją danych, szyfrowaniem i cyklem życia.

Zmienna Wartość domyślna Plik źródłowy Opis
DATA_DIR ~/.omniroute/ src/lib/db/core.ts Katalog główny bazy danych SQLite, kopii zapasowych i plików danych. Zmień tę wartość w przypadku woluminów Docker lub niestandardowych ścieżek.
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR (nie ustawiono) src/lib/dataPaths.ts Mechanizm obejścia zabezpieczenia DATA_DIR dla testów/ewaluacji (#10428). Testy i sondy ewaluacji/drukowania Node (-e/--eval/-p/--print, w tym formy --eval=/--print=) bez DATA_DIR są przekierowywane do tymczasowego katalogu jednorazowego użytku, aby nie mogły otworzyć rzeczywistej bazy danych operatora; ustaw na 1, aby ponownie włączyć korzystanie z rzeczywistego katalogu.
OMNIROUTE_BUILD_SHA (nie ustawiono) src/lib/monitoring/buildSha.ts Git SHA uruchomionego artefaktu. Nadawany przez npm run build:release; można go wstrzyknąć w kontenerach dostarczanych bez pliku sygnalizacyjnego dist/BUILD_SHA. Udostępniany jako system.buildSha pod adresem /api/monitoring/health.
OMNIROUTE_RELEASE_REF origin/main scripts/build/buildProvenance.ts Referencja, względem której bramka pochodzenia pakowanego artefaktu sprawdza SHA kompilacji (#10427).
OMNIROUTE_ALLOW_CANARY_BUILD (nie ustawiono) scripts/build/buildProvenance.ts Ustaw na 1, aby zezwolić na spakowanie kompilacji, której SHA nie znajduje się w linii wydania, rejestrując ją jako celową wersję canary zamiast powodować odrzucenie przez bramkę (#10427).
OMNIROUTE_SMOKE_API_KEY (nie ustawiono) scripts/ops/deploy-canary.mjs Klucz API sondy smoke testu wdrożenia canary, wysyłany jako Authorization: Bearer do /v1/chat/completions. Używany wyłącznie przez skrypt wdrożeniowy (#10429), nigdy przez serwer. Nie jest powiązany ze zmiennymi OMNIROUTE_SMOKE_* opcjonalnego mechanizmu smoke testów CLI (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS w tests/integration/upstream-cli-smoke.int.test.ts) — zobacz Integracje CLI → Rzeczywista seria smoke testów.
OMNIROUTE_BUILDING (nie ustawiono) src/lib/buildPhase.ts Sygnał fazy kompilacji (#10060): ustawiany na 1 przez scripts/build/build-next-isolated.mjs i dziedziczony przez każdy uruchomiony proces roboczy kompilacji, dzięki czemu warstwa bazy danych zwraca atrapę niewykonującą żadnych operacji zamiast ładować natywny dodatek better-sqlite3 (który przerywa proces roboczy podczas zamykania). Nigdy nie jest ustawiany dla działającego serwera.
OMNIROUTE_SKIP_NATIVE_DEP_CHECK 0 scripts/check/check-native-deps.mjs Ustaw na 1, aby pominąć opcjonalne sprawdzenie natywnych zależności przed kompilacją w przypadku nietypowych drzew zależności dostarczonych wraz z aplikacją. Nie umożliwia to kompilacji przy braku zależności; używaj tylko wtedy, gdy natywne zależności są dostarczane poza standardowym mechanizmem.
OMNIROUTE_DATA_DIR (nie ustawiono) open-sse/executors/promptql/threadSticky.ts Alias zapasowy dla DATA_DIR, sprawdzany tylko wtedy, gdy DATA_DIR nie jest ustawiona. Służy do lokalizowania przechowywanej na dysku pamięci podręcznej sesji przypisanych do wątku executora PromptQL (<dir>/promptql-thread-sessions.json); jeśli żadna ze zmiennych nie jest ustawiona, pamięć podręczna pozostaje wyłącznie w pamięci operacyjnej (nie jest zachowywana między ponownymi uruchomieniami).
OMNIROUTE_PLUGINS_DIR (nie ustawiono) src/lib/plugins/scanner.ts Katalog odczytywany przez skaner wtyczek środowiska uruchomieniowego — a także katalog główny, w którym menedżer wtyczek instaluje wtyczki — zastępujący domyślną lokalizację wyznaczaną na podstawie katalogu domowego (#11827). W środowisku Docker/K8s ustaw tę zmienną na drzewo wtyczek zamontowane za pomocą bind mount zamiast przenosić HOME wyłącznie w celu zmiany ścieżki skanowania (HOME steruje również każdym innym zachowaniem zależnym od katalogu domowego). Brak ustawienia = ~/.omniroute/plugins lub /tmp/.omniroute/plugins, gdy proces w ogóle nie eksportuje katalogu domowego — ta zmienna eliminuje wynikający z tego cichy brak wykrywania. Ustalony katalog jest rejestrowany raz podczas uruchamiania jako scanner.dir_resolved wraz z wejściem, które miało pierwszeństwo. Tylko po stronie serwera: wtyczki poleceń CLI nadal używają własnej zmiennej OMNIROUTE_PLUGIN_PATH (sekcja 9).
STORAGE_ENCRYPTION_KEY (puste = wyłączone) src/lib/db/encryption.ts Klucz AES do pełnego szyfrowania przechowywanej bazy danych SQLite. Wygeneruj za pomocą openssl rand -hex 32.
STORAGE_ENCRYPTION_KEY_VERSION v1 scripts/build/bootstrap-env.mjs, electron/main.js Etykieta wersji klucza szyfrowania. Zwiększ ją podczas rotacji klucza, aby umożliwić odszyfrowywanie starych kopii zapasowych.
DISABLE_SQLITE_AUTO_BACKUP false src/lib/db/backup.ts Gdy ustawiono na true, pomija rutynowe kopie zapasowe pliku SQLite wykonywane przed zapisem (zapisywanie/czyszczenie cen models.dev, zapisywanie ustawień). Ręczne kopie zapasowe i kopie wykonywane przed przywracaniem nadal są tworzone. Nie wyłącza obowiązkowej, trwałej migawki bezpieczeństwa wykonywanej przez mechanizm migracji ani zabezpieczenia przed masową migracją istniejącej trwałej bazy danych. Nieręczne kopie zapasowe są ograniczone do maksymalnie jednej na 60 minut. Opcja Ustawienia → Pamięć masowa w panelu umożliwia niezależne wyłączenie rutynowych automatycznych kopii zapasowych.
OMNIROUTE_CRYPT_KEY (nieustawione) src/lib/db/encryption.ts Starszy alias zmiennej STORAGE_ENCRYPTION_KEY. Używany jako wartość zapasowa, gdy zmienna podstawowa nie jest ustawiona.
OMNIROUTE_API_KEY_BASE64 (nieustawione) src/lib/db/encryption.ts Starszy alias (w postaci zakodowanej w Base64) używany jako wartość zapasowa. Jest automatycznie dekodowany przed użyciem.
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS (nieustawione) src/lib/db/core.ts Zastępuje okresowy interwał kontroli kondycji SQLite (ms). Gdy nie jest ustawiony, wartości domyślne są wyznaczane na podstawie NODE_ENV.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS 21600000 (6 godz.) src/lib/db/walMaintenance.ts Zastępuje okresowy interwał wal_checkpoint(TRUNCATE) (ms). Automatyczny punkt kontrolny nigdy nie zmniejsza samego pliku WAL, a długotrwale działający serwer nigdy nie zamyka swojej bazy danych. 0 wyłącza tę funkcję.
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS 300000 (5 min) src/lib/db/walMaintenance.ts Zastępuje częsty interwał wal_checkpoint(PASSIVE) (ms). Utrzymuje niewielką liczbę oczekujących ramek WAL, dzięki czemu okresowa operacja TRUNCATE nigdy nie kopiuje wielogigabajtowych zaległości w wątku głównym. 0 wyłącza tę funkcję.
OMNIROUTE_WAL_GUARD_MAX_MB 256 src/lib/db/walMaintenance.ts Gdy cykl PASSIVE wykryje plik WAL przekraczający ten rozmiar, natychmiast przechodzi do wal_checkpoint(TRUNCATE), zamiast czekać na wolny cykl.
OMNIROUTE_PRESSURE_SELF_RESTART false open-sse/utils/resourcePressure.ts Ustaw na 1/true/yes/on, aby zakończyć proces po utrzymywaniu się krytycznego obciążenia zasobów przez czas określony przez OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS, co pozwoli nadzorcy (systemd Restart=always, polityka restartowania Dockera) uruchomić czysty proces zamiast bezterminowo zwracać błędy 503.
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS 120000 (2 min) open-sse/utils/resourcePressure.ts Czas, przez który musi utrzymywać się krytyczne obciążenie, zanim nastąpi zakończenie procesu powodujące samoczynny restart.
OMNIROUTE_SQLJS_WASM_PATH (automatyczne wykrywanie) src/lib/db/adapters/sqljsAdapter.ts Jawna ścieżka (bezwzględna lub względna względem cwd) do sql-wasm.wasm podczas korzystania z zapasowego adaptera WASM sql.js. Jeśli nie jest ustawiona, jest wykrywana automatycznie na podstawie zależności pakietów i potencjalnych układów katalogów.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS 21600000 (6 godz.) src/lib/db/core.ts Zastępuje okresowy interwał wal_checkpoint(TRUNCATE) (ms). Automatyczny punkt kontrolny nigdy nie zmniejsza samego pliku WAL, a długotrwale działający serwer nigdy nie zamyka swojej bazy danych. 0 wyłącza tę funkcję.
OMNIROUTE_BATCH_RETENTION_DAYS 30 src/lib/db/cleanup.ts Liczba dni, przez które punkty kontrolne zakończonego (ukończonego/nieudanego/anulowanego/wygasłego) zadania Batch API, powiązane pliki wejściowe/wyjściowe/błędów oraz jego wiersz są przechowywane przed usunięciem przez automatyczny proces czyszczenia. Zaczyna obowiązywać dopiero po włączeniu BATCH_AND_FILE_AUTO_CLEANUP_ENABLED; odpowiada okresowi przechowywania wyników Batch API przez OpenAI. Nie wpływa na wywoływaną przez operatora trasę DELETE /api/v1/batches/delete-completed, która zgodnie z założeniem pozostaje bezwarunkowa (bez filtra wieku).
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED false src/lib/db/cleanup.ts Gdy ustawiono na true, automatyczne czyszczenie może usuwać zakończone zadania Batch API (oraz ich punkty kontrolne) starsze niż OMNIROUTE_BATCH_RETENTION_DAYS, a także czyścić zawartość BLOB przesłanych plików po upływie ich własnego expires_at. Domyślnie wyłączone: każda istniejąca instalacja zachowuje te dane dokładnie tak jak wcześniej, dopóki operator nie włączy tej opcji. Jest to również flaga funkcji edytowalna z poziomu panelu — zobacz docs/reference/FEATURE_FLAGS.md → Środowisko uruchomieniowe.
OMNIROUTE_SKIP_DB_HEALTHCHECK 0 src/lib/db/core.ts, src/lib/db/healthCheck.ts Ustaw na 1, aby całkowicie pominąć kontrolę kondycji bazy danych podczas uruchamiania. Przydatne w przypadku krótkotrwałych zadań i testów integracyjnych.
OMNIROUTE_FORCE_DB_HEALTHCHECK 0 src/lib/db/core.ts Ustaw na 1, aby wymusić pętlę kontroli kondycji bazy danych, nawet jeśli normalnie zostałaby pominięta (np. w przypadku krótkotrwałych zadań).
OMNIROUTE_SKIP_POSTINSTALL 0 scripts/postinstall.mjs Ustaw na 1, aby pominąć rozgrzewanie natywnego środowiska uruchomieniowego podczas npm install. Przydatne w instalacjach CI/bez interfejsu graficznego, w których sqlite jest już zbudowany.
OMNIROUTE_MIGRATIONS_DIR (wykrywanie automatyczne) src/lib/db/migrationRunner.ts Zastępuje katalog skanowany przez mechanizm uruchamiania migracji. Przydatne podczas dostarczania dołączonych migracji w niestandardowych kompilacjach.
OMNIROUTE_EXTRA_MIGRATIONS_DIRS (nieustawione) src/lib/db/migrationRunner/extraDirs.ts Dodatkowe katalogi migracji jako wpisy namespace=dir rozdzielone separatorem ścieżek właściwym dla platformy (np. ee=/opt/app/enterprise/db/migrations). Znalezione tam pliki są rejestrowane jako <namespace>-<number>, dzięki czemu dystrybucja dostarczająca własne migracje nigdy nie koliduje z nadrzędnymi numerowanymi pozycjami. Nieprawidłowo sformatowany wpis, nieprawidłowa przestrzeń nazw lub brakujący katalog powodują błąd podczas uruchamiania zamiast cichego pominięcia schematu.
OMNIROUTE_MAX_PENDING_MIGRATIONS 50 src/lib/db/migrationRunner.ts Próg bezpieczeństwa dotyczący dużej liczby oczekujących migracji (#3416). Uruchamianie zostaje przerwane, jeśli w istniejącej bazie danych oczekuje więcej migracji niż określono w tym miejscu (zabezpieczenie przed wyczyszczoną tabelą śledzenia). Zwiększ wartość, aby przywrócić starszą kopię zapasową; ustaw na 0, aby wyłączyć sprawdzanie.
OMNIROUTE_INSTALL_UPGRADE_WORKDIR (<repo>/.install-upgrade) scripts/check/check-install-upgrade.mjs Katalog roboczy dla bramki wydania check:install-upgrade. Wymaga około 12 GB (dwa drzewa instalacji po około 3 GB oraz archiwum tar), dlatego nie może działać na małym tmpfs — na samodzielnie hostowanym runnerze /tmp jest opartym na pamięci RAM systemem tmpfs o rozmiarze 12 GB, który został zapełniony przez bramkę, co spowodowało obcięcie pakietu.
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS (wartość domyślna w kodzie) src/lib/spend/batchWriter.ts Interwał opróżniania (ms) dla zapisującego wsadowo mechanizmu wydatków/kosztów. Niższe wartości ograniczają łączenie zapisów; wyższe wartości zmniejszają rywalizację o dostęp do bazy danych.
OMNIROUTE_SPEND_MAX_BUFFER_SIZE (wartość domyślna w kodzie) src/lib/spend/batchWriter.ts Maksymalna liczba buforowanych wpisów wydatków przed wymuszonym opróżnieniem. Zwiększ w środowiskach o wysokim QPS; zmniejsz, gdy ograniczone zużycie pamięci jest ważniejsze.
OMNIROUTE_PROXY_FETCH_DEBUG (nieustawione) open-sse/utils/proxyFetch.ts Ustaw na "true", aby emitować logi debugowania [ProxyFetch] w ścieżce przekazywania Vercel. Domyślnie wyłączone, aby uniknąć ujawniania wskazówek dotyczących routingu.
PROXY_LOG_INCLUDE_IPS false src/lib/proxyLogger.ts Ustaw na "true" lub "1", aby uwzględnić adresy IP klienta/wyjściowe oraz prefiks konta w szczegółowym wierszu dziennika procesu [ProxyEgress]. Domyślnie pozostaje WYŁĄCZONE, aby dziennik procesu nie ujawniał adresów IP ani prefiksu konta.
OMNIROUTE_DEBUG (nieustawione) bin/cli/commands/quota.mjs Ustaw na 1, aby polecenia limitów CLI wypisywały do stderr diagnostykę czasu poszczególnych żądań ([omniroute] GET <path> completed in Nms).
OMNIROUTE_HEALTHCHECK_PATH (automatycznie) scripts/dev/healthcheck.mjs Jawna ścieżka sprawdzana przez kontrolę kondycji kontenera. Gdy nie jest ustawiona, mechanizm sprawdzający wyznacza ją na podstawie OMNIROUTE_BASE_PATH; ustawienie jej ponownie włącza szczegółowy punkt końcowy monitorowania.
OMNIROUTE_DEBUG_COMPLETION (nieustawione) bin/cli/commands/completion.mjs Ustaw na dowolną niepustą wartość, aby emitować diagnostykę [omniroute completion] ze ścieżek pamięci podręcznej uzupełniania powłoki CLI (odczyt/odświeżanie/zapis). Domyślnie wyłączone — błędy tych pamięci podręcznych są ignorowane, dzięki czemu brakująca/uszkodzona pamięć podręczna nigdy nie zakłóca uzupełniania klawiszem Tab.
BATCH_RETRY_DURATION_MS 86400000 (24 godz.) open-sse/services/batchProcessor.ts Maksymalny czas ponawiania prób dla poszczególnych elementów partii (ms). Elementy, które przekroczą ten czas, są oznaczane jako nieudane.
BATCH_BACKOFF_BASE_MS 5000 open-sse/services/batchProcessor.ts Bazowe opóźnienie (ms) dla wykładniczego zwiększania odstępów między ponownymi próbami przetworzenia elementów partii.
BATCH_BACKOFF_MAX_MS 3600000 (1 godz.) open-sse/services/batchProcessor.ts Maksymalne opóźnienie (ms) dla wykładniczego zwiększania odstępów między ponownymi próbami przetworzenia elementów partii.
BATCH_MAX_CONCURRENT 1 open-sse/services/batchProcessor.ts Maksymalna liczba partii przetwarzanych jednocześnie. Zwiększ tę wartość, aby poprawić przepustowość; utrzymuj ją na niskim poziomie, aby uniknąć lawinowego przekraczania limitów szybkości.

Important

Przed zmianą istniejącej trwałej bazy danych moduł uruchamiający migrację publikuje kompletną, adresowaną zawartością migawkę w katalogu DATA_DIR/db_backups/. Publikacja wymaga systemu plików, który obsługuje niezamazujące istniejących plików dowiązania twarde w obrębie tego samego systemu plików oraz trwałą synchronizację plików. Hosty POSIX wymagają również synchronizacji katalogów; w systemie Windows środowisko Node może odrzucać uchwyty katalogów, dlatego OmniRoute opróżnia bufor opublikowanego pliku, a synchronizację wpisu katalogu traktuje jako operację wykonywaną w miarę możliwości. Jeśli zamontowany katalog DATA_DIR nie może zapewnić tych gwarancji, uruchamianie zostaje bezpiecznie przerwane przed zastosowaniem migracji. Przenieś DATA_DIR na wolumin obsługujący te mechanizmy; nie używaj DISABLE_SQLITE_AUTO_BACKUP do omijania zabezpieczeń migracji.

Scenariusze

Scenariusz Konfiguracja
Programowanie lokalne Pozostaw wszystkie wartości domyślne. Baza danych znajduje się w ~/.omniroute/omniroute.db.
Docker DATA_DIR=/data + zamontuj wolumin w /data.
Szyfrowanie w spoczynku Ustaw STORAGE_ENCRYPTION_KEY + zachowaj kopie zapasowe klucza! Jego utrata = utrata danych.
CI/Testowanie DATA_DIR=/tmp/omniroute-test — dane tymczasowe, szyfrowanie nie jest wymagane.

3. Sieć i porty

Zmienna Wartość domyślna Plik źródłowy Opis
PORT 20128 src/lib/runtime/ports.ts Główny port zarówno dla interfejsu Dashboard, jak i punktów końcowych API (tryb jednego portu).
OMNIROUTE_BASE_PATH (puste = katalog główny) next.config.mjs, scripts/docker/ensure-docker-base-path.mjs Podścieżka URL służąca do udostępniania OmniRoute za odwrotnym serwerem proxy (ustawia basePath w Next.js; przekierowania uwierzytelniania uwzględniają basePath). Np. /omniroute. W Dockerze wartość jest osadzana podczas docker build (ARG OMNIROUTE_BASE_PATH); wstępnie zbudowane obrazy dla katalogu głównego mogą jednorazowo zastosować inną wartość środowiska uruchomieniowego podczas uruchamiania kontenera, zanim wystartuje Next.js. Ustaw NEXT_PUBLIC_BASE_URL na publiczne źródło zawierające tę samą podścieżkę.
NEXT_PUBLIC_OMNIROUTE_BASE_PATH (puste = katalog główny) src/shared/hooks/useDisplayBaseUrl.ts Widoczna dla przeglądarki kopia OMNIROUTE_BASE_PATH, osadzana podczas kompilacji, dzięki czemu wyświetlany w panelu punkt końcowy ma postać https://host/omniroute/v1 zamiast https://host/v1. Jeśli wartość nie jest ustawiona, używane jest OMNIROUTE_BASE_PATH. Po zmianie należy ponownie skompilować aplikację (basePath w Next jest ustawiane podczas kompilacji).
DASHBOARD_ALLOW_EMBED (nieustawione = brak możliwości osadzania w ramce) next.config.mjs, scripts/build/dashboardEmbed.mjs Opcjonalnie włącza osadzanie stron HTML w elementach iframe. Gdy wartość nie jest ustawiona, każda trasa zwraca frame-ancestors 'none' oraz X-Frame-Options: DENY. Ustaw vscode, aby udostępniać strony (panel, logowanie, dokumentację i stronę startową) z frame-ancestors 'self' vscode-webview: i bez X-Frame-Options, dzięki czemu VS Code Simple Browser może je renderować (tryb dashboardOpen: "editor" w OmniCopilot). Powierzchnia API (/api, /v1, /v1beta, /a2a, /healthz, aliasy na poziomie katalogu głównego) zachowuje rygorystyczne nagłówki niezależnie od tego ustawienia. Rozpoznawana jest wyłącznie wartość vscode1/true nie włączają tej funkcji. Ustawienie obowiązuje podczas kompilacji: po zmianie należy ponownie skompilować aplikację (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode dla obrazów; ustawienie tej wartości we wstępnie skompilowanej instalacji nie przynosi efektu).
API_PORT (nieustawione) src/lib/runtime/ports.ts Gdy ustawione, udostępnia API proxy /v1/* na tym oddzielnym porcie.
API_HOST 0.0.0.0 src/lib/runtime/ports.ts Adres nasłuchiwania dla portu API.
DASHBOARD_PORT (nieustawione) src/lib/runtime/ports.ts Gdy ustawione, udostępnia interfejs Dashboard na tym oddzielnym porcie.
OMNI_MAX_CONCURRENT_CONNECTIONS 0 (wyłączone) src/sse/utils/backpressure.ts Ogranicza liczbę równoczesnych, aktywnych połączeń czatu; żądania przekraczające limit otrzymują odpowiedź 503 z nagłówkiem Retry-After. Dodatnia liczba całkowita włącza zabezpieczenie; brak wartości lub 0 je wyłącza.
OMNIROUTE_INSTANCE_ID (nieustawione) src/shared/resilience/peerRouting.ts Stabilny, unikatowy identyfikator tej bramy podczas łączenia instancji OmniRoute w łańcuch. Umożliwia wykrywanie pętli komunikacji przychodzącej między instancjami równorzędnymi. Dozwolone znaki: litery, cyfry, ., _, : i -; maksymalnie 64 znaki.
OMNIROUTE_PEER_URLS (nieustawione) src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts Rozdzielone przecinkami bazowe adresy URL OmniRoute, które mogą otrzymywać nagłówek X-OmniRoute-Peer-Trace. Metadane węzłów równorzędnych otrzymują wyłącznie jawnie dozwolone nadrzędne adresy URL; wszyscy pozostali dostawcy pozostają bez zmian.
OMNIROUTE_PEER_MAX_HOPS 4 src/shared/resilience/peerRouting.ts Maksymalna liczba wcześniej odwiedzonych instancji OmniRoute akceptowana w żądaniu łańcuchowym (132). Powtórzenie instancji lub wyczerpanie limitu skutkuje odpowiedzią HTTP 508 Loop Detected.
PROD_DASHBOARD_PORT 20130 docker-compose.prod.yml Port hosta publikowany dla panelu w produkcyjnym trybie Dockera.
PROD_API_PORT 20131 docker-compose.prod.yml Port hosta publikowany dla API w produkcyjnym trybie Dockera.
OMNIROUTE_PORT (nieustawione) src/lib/runtime/ports.ts Ma pierwszeństwo przed PORT podczas uruchamiania w Electronie lub innych środowiskach opakowujących.
LIVE_WS_PORT 20129 src/server/ws/liveServer.ts Port serwera WebSocket do monitorowania w czasie rzeczywistym.
LIVE_WS_HOST 127.0.0.1 src/server/ws/liveServer.ts Adres nasłuchiwania serwera WebSocket działającego w czasie rzeczywistym. Ustaw 0.0.0.0, aby udostępnić go w sieci LAN (skonfiguruj również LIVE_WS_ALLOWED_ORIGINS).
LIVE_WS_ALLOWED_ORIGINS (nieustawione) src/server/ws/liveServer.ts Rozdzielone przecinkami dodatkowe źródła, które mogą otwierać połączenie WebSocket działające w czasie rzeczywistym. Źródła panelu używające adresu pętli zwrotnej są domyślnie dozwolone.
LIVE_WS_ALLOWED_HOSTS (nieustawione) src/server/ws/liveServerAllowList.ts Rozdzielone przecinkami dodatkowe nazwy hostów dozwolone dla źródeł połączeń WebSocket działających w czasie rzeczywistym. W przeciwieństwie do LIVE_WS_ALLOWED_ORIGINS (pełnych adresów URL źródeł) dopasowywana jest tylko część hosta — przydatne w konfiguracjach LAN/Tailscale.
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL (nieustawione) src/hooks/useLiveDashboard.ts Publiczny adres URL połączenia WebSocket panelu działającego w czasie rzeczywistym (po stronie przeglądarki). Ustaw go, gdy serwer WS jest udostępniany przez odwrotne proxy lub tunel Cloudflare (np. wss://ws.my-ai.com/live-ws); przeglądarka łączy się wtedy z tym adresem zamiast z ws://hostname:20132. Część adresu zawierająca ścieżkę jest również używana jako ścieżka aktualizacji połączenia WebSocket (domyślnie: /live-ws).
OMNIROUTE_ENABLE_LIVE_WS true src/server/ws/liveServer.ts i scripts/start-ws-server.mjs Ustaw 0 lub false, aby wyłączyć serwer WebSocket działający w czasie rzeczywistym (domyślnie włączony i powiązany z adresem pętli zwrotnej). Przełącznik CI/środowiska testowego, który wyłącza samodzielny skrypt pomocniczy serwera WebSocket.
RELAY_IP_PER_MINUTE 30 src/app/api/v1/relay/chat/completions/route.ts Limit częstotliwości przekazywania na parę (token, adres IP), wyrażony w żądaniach na minutę. Przechowywany w pamięci, osobno dla każdej instancji. Wartość 0 lub ujemna wyłącza ograniczenie według adresu IP (nadal obowiązuje limit tokenu zapisany w bazie danych).
NODE_ENV production Rdzeń Next.js Kontroluje szczegółowość logowania, buforowanie, ujawnianie szczegółów błędów oraz optymalizacje Next.js.
OMNIROUTE_USE_TURBOPACK 1 (Turbopack — domyślna wartość w kodzie) package.json / Next.js 16 Turbopack jest domyślnym bundlerem dla npm run dev i npm run build (kompilacje 23× szybsze, zgodnie z testami wydajności). Ustaw na 0, aby wrócić do webpacka w systemie Windows, w przypadku problemów z natywnymi powiązaniami lub niezgodności bundlera, albo na komputerach z ograniczoną ilością pamięci RAM — wiadomo, że produkcyjne kompilacje Turbopack w tej linii wersji Next.js (16.2.x) osiągają przy dużych grafach modułów znacznie wyższe szczytowe zużycie pamięci niż webpack (poprawka usuwania danych z pamięci przez Turbopack w Next 16.3 nie jest jeszcze stabilna); rozwiązanie awaryjne z webpackiem osiąga znacznie niższe wartości szczytowe. Zobacz #6409.
OMNIROUTE_SKIP_DB_HEALTHCHECK (nieustawiona) src/lib/db/core.ts / src/lib/db/healthCheck.ts Ustaw na 1, aby pominąć kontrolę integralności bazy danych SQLite podczas uruchamiania. Przydatne do szybszego uruchamiania z dużymi bazami danych.
NOTIFY_SOCKET (nieustawiona) systemd (protokół sd_notify) Ustawiana przez systemd, gdy proces działa w ramach jednostki usługi ze zintegrowaną obsługą sd_notify; OmniRoute odczytuje ją (zobacz OMNIROUTE_DISABLE_SD_NOTIFY), aby wysyłać powiadomienia READY/WATCHDOG. Nigdy nie jest ustawiana przez użytkownika.
OMNIROUTE_DISABLE_SD_NOTIFY (nieustawiona) scripts/dev/systemd-notify.mjs Ustaw na 1, aby wyłączyć sd_notify systemd (Type=notify / WatchdogSec=), nawet gdy aplikacja działa w ramach jednostki systemd. Poza systemd moduł powiadamiający nie wykonuje żadnych operacji niezależnie od tego ustawienia.
CREDENTIAL_HEALTH_CHECK_INTERVAL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts Interwał (ms) harmonogramu działającej w tle kontroli poprawności danych uwierzytelniających. Minimum: 10000 (10 s).
CREDENTIAL_HEALTH_CACHE_TTL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts TTL (ms) stanu poprawności danych uwierzytelniających przechowywanego w pamięci podręcznej.
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK false src/lib/credentialHealth/scheduler.ts Ustaw na 1 lub true, aby wyłączyć okresowe testowanie połączeń z dostawcami w tle. Dostawcy wyszukiwania (SEARCH_VALIDATOR_CONFIGS w src/lib/providers/validation/searchProviders.ts, np. tavily-search) są zawsze wykluczeni z cyklu kontroli — ich „walidacja” jest rzeczywistym, płatnym zapytaniem do usługi nadrzędnej, dlatego ich stan nigdy nie jest okresowo sprawdzany (#9970).
HOST 0.0.0.0 scripts/dev/run-next.mjs Adres nasłuchiwania serwera deweloperskiego/startowego Next.js. Jeśli jest ustawiony, zastępuje domyślny adres 0.0.0.0.
HOSTNAME 127.0.0.1 scripts/dev/run-next-playwright.mjs Adres nasłuchiwania używany przez moduł uruchamiający Playwright podczas uruchamiania Next.js. Domyślnie 127.0.0.1, aby zapewnić hermetyczne testy. Nie używaj z omniroute serve — zamiast tego użyj OMNIROUTE_SERVER_HOST (powłoki POSIX automatycznie ustawiają HOSTNAME na nazwę komputera; plik .env nie może jej zastąpić).
OMNIROUTE_SERVER_HOST 0.0.0.0 bin/cli/commands/serve.mjs Adres nasłuchiwania dla omniroute serve. Pozwala uniknąć kolizji ze zmienną HOSTNAME powłoki POSIX (zawsze ustawianą przez bash/zsh na nazwę komputera). Gdy zmienna nie jest ustawiona, używany jest adres 0.0.0.0. (#6194)

Tryby portów

┌─────────────────────────── Jeden port (domyślnie) ─────────────────────────┐
│  PORT=20128                                                                │
│  → Panel: http://localhost:20128                                           │
│  → API:   http://localhost:20128/v1/chat/completions                       │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────── Oddzielne porty ────────────────────────────────┐
│  DASHBOARD_PORT=20128                                                       │
│  API_PORT=20129                                                             │
│  API_HOST=0.0.0.0                                                           │
│  → Panel: http://localhost:20128                                            │
│  → API:   http://0.0.0.0:20129/v1/chat/completions                         │
│  Zastosowanie: udostępnienie API w sieci LAN przy jednoczesnym ograniczeniu │
│  dostępu do panelu wyłącznie do hosta lokalnego.                            │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────── Docker — środowisko produkcyjne ────────────────┐
│  PROD_DASHBOARD_PORT=443   PROD_API_PORT=8443                              │
│  → Mapuje porty kontenera na porty hosta w docker-compose.prod.yml.         │
└─────────────────────────────────────────────────────────────────────────────┘

4. Bezpieczeństwo i uwierzytelnianie

Zmienna Wartość domyślna Plik źródłowy Opis
MACHINE_ID_SALT endpoint-proxy-salt src/lib/auth Sól łączona z identyfikatorami sprzętowymi w celu utworzenia odcisku palca maszyny. Należy ją zmienić dla każdego wdrożenia, aby zapewnić izolację.
OMNIROUTE_CLI_SALT (nieustawiona = losowa sól dla każdej instalacji, przechowywana w <DATA_DIR>/cli-token-salt.json) src/lib/machineToken.ts Sól HMAC służąca do wyprowadzania lokalnego tokenu uwierzytelniającego CLI. Ustawienie tej wartości powoduje rotację wszystkich tokenów CLI na maszynie i zawsze ma pierwszeństwo przed przechowywaną solą. Zobacz docs/security/CLI_TOKEN.md.
AUTH_COOKIE_SECURE false src/lib/auth Ustawia flagę Secure w plikach cookie sesji. Podczas działania za pośrednictwem HTTPS wartość musi wynosić true.
REQUIRE_API_KEY false Oprogramowanie pośredniczące API Gdy ustawiono true, wszystkie żądania proxy /v1/* muszą zawierać prawidłowy klucz API.
ALLOW_API_KEY_REVEAL false src/shared/constants/featureFlagDefinitions.ts Umożliwia ujawnianie pełnych wartości kluczy API w interfejsie Panelu. Konfigurowalne za pomocą flag funkcji w Panelu; stanowi zagrożenie bezpieczeństwa w instancjach współdzielonych.
NO_LOG_API_KEY_IDS (pusta) src/lib/compliance/index.ts Rozdzielone przecinkami identyfikatory kluczy API, dla których pomijane jest rejestrowanie żądań (zgodność z RODO).
DEFAULT_RATE_LIMIT_PER_DAY (nieustawiona = bez limitu) src/shared/utils/apiKeyPolicy.ts Zapasowy dzienny budżet żądań stosowany do kluczy API, których kolumna rate_limits ma wartość null. Wartość nieustawiona lub pusta: brak niejawnego limitu (#2289, #11017). 0 oznacza to samo (bez limitu). Dodatnia liczba całkowita N włącza limity N/dzień, 5N/tydzień i 20N/miesiąc. Nieprawidłowe, niepuste wartości powodują zastosowanie starszych limitów: 1000/dzień, 5000/tydzień i 20000/miesiąc.
MAX_BODY_SIZE_BYTES 10485760 (10 MB) src/shared/middleware/bodySizeGuard.ts Maksymalny dozwolony rozmiar treści żądania. Ładunki przekraczające ten limit są odrzucane.
OMNIROUTE_CHAT_LARGE_BODY_BYTES 262144 (256 KB) src/shared/middleware/chatBodyAdmission.ts Rzeczywiste treści żądań o rozmiarze równym temu progowi lub większym uzyskują atomową, lokalną dla procesu dzierżawę dopuszczenia dla dużych obciążeń przed przetwarzaniem JSON (ścieżka BYTE, w tym POST /v1/responses). Obowiązuje ten sam mechanizm obejścia przy wystarczającym zapasie zasobów co w przypadku dużej złożoności strukturalnej #10437; nadal podlega ograniczeniu OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, aby problem #7849 nie powrócił.
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES 52428800 (50 MB) src/shared/middleware/chatBodyAdmission.ts Bezwzględny limit tras czatu egzekwowany względem liczby bajtów odczytanych podczas ograniczonego pobierania, w tym dla żądań z brakującym, nieprawidłowym lub niezgodnym z rzeczywistością nagłówkiem Content-Length; przekroczenie limitu skutkuje odpowiedzią 413.
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (nie ustawiono — brak limitu liczby żądań) src/shared/middleware/chatBodyAdmission.ts #503-fanout: ten starszy limit LICZBY żądań obowiązuje teraz tylko wtedy, gdy zostanie jawnie ustawiony. Gdy pozostaje nieustawiony (domyślnie), przyjmowanie ciężkich żądań czatu jest zamiast tego ograniczane przez OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES — automatycznie wyznaczany budżet BAJTÓW, którego wielkość wynika z rzeczywistego limitu pamięci procesu w jednym procesie (jednej stercie V8). Dwa nakładające się żądania /v1/responses zawierające po około 750 tys. tokenów powodują przerwanie procesów ze stertą ~12 GiB (#7849) — jest to ostrzeżenie dotyczące budżetu pamięci, a nie sztywny limit produktu wynoszący 2. Proces w dobrym stanie (sterta poniżej współczynnika odrzucania) MOŻE przyjmować więcej współbieżnych, długich żądań /v1/responses za pośrednictwem OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Dziesiątki długotrwałych klientów SSE (4050) zależą od sterty + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, a nie od „maksymalnie 2”. Bezrefleksyjne zwiększanie tej wartości, aby „wykorzystać hosta”, ponownie wprowadza problem #7849. Liczbę stert należy zwiększać przy użyciu N niezależnych DATA_DIR (#11024); nigdy nie należy używać replicas>1 dla jednego pliku SQLite.
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES (wyznaczane automatycznie) src/shared/middleware/admissionBudget.ts #503-fanout: zastąpienie automatycznie wyznaczanego budżetu bajtów danych wejściowych (25% bardziej restrykcyjnego limitu pamięci V8/cgroup, podzielone przez 8-krotne przejściowe zwiększenie użycia pamięci). Wartości wyznaczone i jawne są ograniczane do zakresu 8 MiB2 GiB. Treść większa niż efektywny budżet natychmiast kończy się błędem 413 body_exceeds_budget; przeciążenie między treściami, z których każda z osobna może zostać obsłużona, nadal skutkuje możliwym do ponowienia błędem 503. 4050 współbieżnych, długotrwałych klientów SSE zależy od tego budżetu i sterty, a nie od sztywnego limitu „maksymalnie 2”. Przed dostrajaniem sprawdź chatAdmission.maxInflightBytes / budgetSource / pressureSeverity pod adresem /api/monitoring/health.
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO 0.75 src/shared/middleware/chatBodyAdmission.ts Współczynnik odrzucania wskutek presji na stertę (heapUsed / heap_size_limit) dla przyjmowania ciężkich żądań typu BYTE i STRUCTURE (#10183, #10268, #10437). Współbieżne ciężkie żądanie przekraczające OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT jest odrzucane z możliwym do ponowienia błędem 503 tylko wtedy, gdy użycie sterty JEDNOCZEŚNIE osiąga lub przekracza ten współczynnik; przy stercie w dobrym stanie żądanie jest przyjmowane za pośrednictwem dodatkowej pojemności dla zdrowej sterty.
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (domyślnie 1) src/shared/middleware/chatBodyAdmission.ts Ograniczona dodatkowa pojemność szybkiej ścieżki dla sterty w dobrym stanie (#10437), zarówno dla STRUCTURE, jak i BYTE (admitChatRequest, w tym treści ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Bez tego ograniczenia każde żądanie przy dużym obciążeniu, lecz zdrowej stercie, omijałoby kontrolę przyjmowania bez żadnego górnego limitu. Gdy taką szybką ścieżką aktywowanych jest już tyle współbieżnych dzierżaw, kolejne żądania przy dużym obciążeniu trafiają do TEJ SAMEJ ścieżki ograniczonego oczekiwania/odrzucania, która jest używana przy rzeczywistej presji na stertę. Wartość 0 całkowicie wyłącza to obejście.
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT 200 src/shared/middleware/chatBodyAdmission.ts Liczba wiadomości, przy której żądanie czatu jest klasyfikowane jako ciężkie, nawet jeśli jego treść nie przekracza progu bajtowego.
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT 64 src/shared/middleware/chatBodyAdmission.ts Liczba narzędzi, przy której żądanie czatu jest klasyfikowane jako ciężkie, nawet jeśli jego treść nie przekracza progu bajtowego.
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS 32000 src/shared/middleware/chatBodyAdmission.ts Zachowawcze oszacowanie liczby tokenów na podstawie rozmiaru ciągu znaków, przy którym żądanie jest klasyfikowane jako ciężkie; jest to przybliżenie kosztu przyjęcia, a nie tokenizacja używana przez dostawcę do rozliczeń.
OMNIROUTE_CHAT_HARD_MAX_MESSAGES 0 (wyłączone) src/shared/middleware/chatBodyAdmission.ts Opcjonalny limit historii czatu wymagający jawnego włączenia. Domyślnie wyłączony: limit liczby wiadomości jest zasadą wdrożenia, a nie uniwersalną właściwością żądania, a jego zastosowanie w tym miejscu odrzuca konwersacje końcowym błędem 413, zanim potok kompresji zdąży umożliwić ich obsłużenie. Wzrost sterty jest ograniczany przez OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT oraz odrzucanie wskutek presji na stertę. W przypadku wdrożeń z ograniczoną pamięcią, które wymagają sztywnego limitu, ustaw wartość dodatnią; przekroczenie limitu będzie wtedy skutkować ustrukturyzowanym błędem 413 informującym o wymaganej kompresji.
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES 67108864 (64 MB) open-sse/handlers/chatCore/nonStreamingResponseBody.ts Sztywny limit niestreamowanej odpowiedzi usługi nadrzędnej, która jest w całości buforowana w pamięci. Po jego przekroczeniu odczyt odpowiedzi usługi nadrzędnej zostaje anulowany, a żądanie szybko kończy się błędem, zamiast powodować nieograniczony wzrost ciągu znaków aż do wyczerpania sterty.
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES 768 open-sse/handlers/chatCore/responseHeaders.ts Maksymalna liczba bajtów przesyłanych przez sieć dla nagłówków przekazywanych z odpowiedzi usługi nadrzędnej. Po przekroczeniu budżetu nagłówki o niższym priorytecie (np. niestandardowe x-codex-*, x-oai-request-id) są pomijane, aby zmieścić się w typowych limitach nagłówków odwrotnego serwera proxy. Ustaw wyższą wartość, aby przekazywać więcej metadanych usługi nadrzędnej kosztem zwiększenia rozmiaru nagłówków odpowiedzi.
CORS_ORIGIN (nie ustawiono) src/server/cors/origins.ts Starsza lista dozwolonych źródeł CORS obsługująca jedno źródło. W nowych wdrożeniach preferuj CORS_ALLOWED_ORIGINS. CORS służy wyłącznie klientom API działającym w przeglądarce i korzystającym z żądań między źródłami; uwierzytelnione operacje zapisu w panelu używają zamiast tego żądań z tego samego źródła oraz ochrony CSRF powiązanej z sesją.
CORS_ALLOWED_ORIGINS (nie ustawiono) src/server/cors/origins.ts Rozdzielana przecinkami lista dozwolonych źródeł CORS. Symbol wieloznaczny nie jest wysyłany, chyba że jawnie skonfigurowano CORS_ALLOW_ALL=true.
CORS_ALLOW_ALL false src/server/cors/origins.ts Mechanizm awaryjny przeznaczony wyłącznie do programowania, który odsyła dowolną wartość nagłówka Origin przeglądarki. Nie włączaj go we współdzielonych ani produkcyjnych wdrożeniach.
OUTBOUND_SSRF_GUARD_ENABLED true src/shared/network/outboundUrlGuard.ts Blokuje wywołania dostawców kierowane do prywatnych, zwrotnych lub lokalnych dla łącza zakresów adresów IP. Wyłączaj tylko w izolowanych środowiskach testowych.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS false src/shared/network/outboundUrlGuard.ts Zezwala na adresy URL dostawców wskazujące sieci prywatne/lokalne (localhost, 192.168.x.x, 10.x.x.x itd.). WYMAGANE w przypadku dostawców hostowanych samodzielnie (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Gdy ustawiono false, panel odrzuca walidację lokalnych adresów URL.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS true src/shared/network/outboundUrlGuard.ts Zezwala na dodawanie/walidowanie dostawców pod adresami lokalnymi/prywatnymi (127.0.0.1, localhost, LAN, zakresy prywatne) — ograniczone do ścieżki walidacji dostawcy. Domyślnie true (preferowanie środowiska lokalnego); ustaw false, aby wymusić ścisłe blokowanie i zezwalać wyłącznie na adresy publiczne. Punkty końcowe metadanych chmurowych (169.254.169.254, metadata.google.internal) pozostają zablokowane niezależnie od tego ustawienia. (#5066)
AUDIO_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/audioProviderNodes.ts Zezwala trasom /v1/audio/* (transkrypcje, synteza mowy, tłumaczenia) na używanie węzła dostawcy zgodnego z OpenAI, hostowanego poza localhost. Domyślnie wyłączone — kierowanie dźwięku do zdalnego hosta zmienia tożsamość ruchu wychodzącego i musi być świadomą decyzją operatora. Węzły zwrotne/prywatne (localhost, 127.0.0.1, 172.16-31.x) są zawsze dozwolone i ta opcja nie ma na nie wpływu. (#3963)
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Gdy OIDC jest włączone, wyłącza logowanie hasłem, dzięki czemu użytkownicy mogą uwierzytelniać się wyłącznie przez jednokrotne logowanie OIDC. Akceptowany jest również sam alias OIDC_DISABLE_PASSWORD_LOGIN; flaga funkcji panelu o tym samym kluczu ma pierwszeństwo. (#10889)
OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Sam alias zmiennej OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889).

Lista kontrolna zabezpieczeń

# Minimalne zabezpieczenia produkcyjne:
AUTH_COOKIE_SECURE=true        # Wymaga HTTPS
REQUIRE_API_KEY=true           # Uwierzytelniaj wszystkie wywołania proxy
ALLOW_API_KEY_REVEAL=false     # Nigdy nie ujawniaj kluczy w interfejsie użytkownika
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880    # Limit 5 MB

5. Oczyszczanie danych wejściowych i ochrona danych osobowych

OmniRoute zapewnia dwuwarstwową ochronę: skanowanie żądań pod kątem iniekcji oraz usuwanie danych osobowych z odpowiedzi.

⚠️ Ograniczenia: Te mechanizmy ochronne wykorzystują heurystyczne wykrywanie na zasadzie najwyższej staranności i nie stanowią kompletnej zapory przed iniekcjami promptów ani systemu DLP dla danych osobowych. Mogą generować wyniki fałszywie dodatnie (oznaczając nieszkodliwe prompty dotyczące person lub gier RPG) oraz fałszywie ujemne (leet speak, odstępy, wzorce w językach innych niż angielski). Same w sobie nie są wystarczające do zapewnienia zgodności z przepisami. Przed zastosowaniem ich w praktyce dostosuj tryby i przetestuj je na swoim ruchu.

Po stronie żądania: ochrona przed iniekcją promptów

Zmienna Wartość domyślna Plik źródłowy Opis
INPUT_SANITIZER_ENABLED true src/middleware/promptInjectionGuard.ts Włącza skanowanie wiadomości przychodzących pod kątem wzorców iniekcji promptów.
INPUT_SANITIZER_MODE warn src/middleware/promptInjectionGuard.ts Polityka obsługi iniekcji: warn = tylko rejestrowanie, block = odrzucenie żądania z kodem 400. Starszy tryb redact nie usuwa tekstu iniekcji; do modyfikowania danych osobowych w żądaniach użyj PII_REDACTION_ENABLED.
INJECTION_GUARD_MODE (nie ustawiono) src/middleware/promptInjectionGuard.ts Starszy alias dla INPUT_SANITIZER_MODE — takie samo działanie.
INPUT_SANITIZER_BLOCK_THRESHOLD high src/shared/utils/injectionSeverity.ts Minimalny poziom istotności odrzucany przez MODE=block: high (domyślnie), medium lub low. Wzorce o średnim poziomie są domyślnie tylko obserwowane, chyba że próg zostanie obniżony.
INJECTION_GUARD_BLOCK_THRESHOLD (nie ustawiono) src/shared/utils/injectionSeverity.ts Starszy alias dla INPUT_SANITIZER_BLOCK_THRESHOLD — takie samo działanie.
PII_REDACTION_ENABLED false src/lib/guardrails/piiMasker.ts Gdy ustawiono na true, maskuje dane osobowe w przychodzących żądaniach (niezależnie od trybu obsługi iniekcji).
CREDENTIAL_REDACTION_ENABLED false src/lib/guardrails/credentialMasker.ts Maskuje dobrze znane wzorce kluczy API i tajnych tokenów w ładunkach żądań i odpowiedzi. Funkcja opcjonalna, działająca analogicznie do PII_REDACTION_ENABLED.

Po stronie odpowiedzi: oczyszczanie danych osobowych

Zmienna Wartość domyślna Plik źródłowy Opis
PII_RESPONSE_SANITIZATION false src/lib/piiSanitizer.ts Skanuje odpowiedzi LLM pod kątem ujawnionych danych osobowych przed zwróceniem ich klientowi.
PII_RESPONSE_SANITIZATION_MODE redact src/lib/piiSanitizer.ts redact = maskowanie danych osobowych, warn = tylko rejestrowanie, block = odrzucenie całej odpowiedzi.

Oczyszczanie kontekstu tras tokenizowanych w VS Code

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_VSCODE_SANITIZE_CONTEXT 1 src/app/api/v1/vscode/contextSanitizer.ts Usuwa niejawny kontekst aktywnego edytora (editorContext, activeEditor, currentFile, selection, openTabs…) z żądań /v1/vscode/[token]/* i maskuje zawartość jawnie załączonych plików poufnych. Domyślnie zapewnia bezpieczeństwo; ustaw 0, aby wyłączyć.

Scenariusze

Scenariusz Konfiguracja
Zgodność korporacyjna INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (blokowanie iniekcji + maskowanie danych osobowych w żądaniach i odpowiedziach; tryby są niezależne)
Tylko monitorowanie INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — rejestruje, ale nigdy nie blokuje
Użytek osobisty Pozostaw wszystkie opcje wyłączone — zerowy narzut

6. Zasady dotyczące narzędzi i routingu

Zmienna Wartość domyślna Plik źródłowy Opis
TOOL_POLICY_MODE disabled src/lib/toolPolicy.ts Kontroluje dostęp LLM do narzędzi/wywoływania funkcji. allowlist = tylko narzędzia znajdujące się na liście, denylist = wszystkie poza wymienionymi, disabled = brak ograniczeń.
OMNIROUTE_PAYLOAD_RULES_PATH ./config/payloadRules.json open-sse/services/payloadRules.ts Ścieżka do pliku JSON z regułami modyfikowania ładunku (dostosowania nadrzędnych usług zależne od modelu/protokołu).
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS 5000 open-sse/services/payloadRules.ts Interwał ponownego wczytywania (ms) pliku reguł ładunku bez przerywania działania. Minimum 1000.
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS false open-sse/services/model.ts Opcja wymagająca jawnego włączenia: kieruje identyfikatory modeli claude-* bez prefiksu od klientów Claude Code przez konto OAuth Claude Code zamiast wymagać prefiksu dostawcy. Jawne prefiksy dostawców nadal mają pierwszeństwo. Ustawienie jest również dostępne jako przełącznik na stronie dostawcy Claude w panelu.
COMBO_CONCURRENCY_PER_MODEL 3 open-sse/services/comboConfig.ts Limit współbieżności na model dla kombinacji round-robin (#9100). Semafor kombinacji round-robin miał sztywno ustawiony limit 3 równoczesnych żądań na model, bez możliwości jego zmiany, przez co ruch o większej współbieżności był kolejkowany za tym limitem. Wartość jest sprawdzana pod kątem >= 1 i ograniczana do <= 32.
DISABLE_CONTEXT_WINDOW_CHECKS false open-sse/handlers/chatCore.ts Niebezpieczna opcja wymagająca jawnego włączenia, która pomija lokalną kontrolę okna kontekstu/maksymalnej liczby tokenów wejściowych w OmniRoute dla bezpośrednich żądań do pojedynczego modelu. Dostawcy nadrzędni nadal egzekwują swoje rzeczywiste limity; kompresja promptu i własny limit tokenów wyjściowych modelu pozostają aktywne. Obowiązująca kolejność pierwszeństwa to nadpisanie w bazie danych flag funkcji > zmienna środowiskowa > wartość domyślna; ponowne uruchomienie nie jest wymagane.
OMNIROUTE_DISABLE_CONVERSATION_TRACKING (nie ustawiono) open-sse/services/conversationTracker.ts Ustaw 1, aby zatrzymać gromadzenie historii konwersacji. resolveConversationId() zwraca wynik bez śledzenia, zanim odczyta SQLite lub przeanalizuje historię wiadomości; obejmuje to również identyfikatory sesji dostarczone przez klienta. Obsługa sesji routingu pozostaje bez zmian, a istniejące rekordy nie są usuwane. Opcja przeznaczona dla wdrożeń, które nie korzystają z widoku konwersacji w panelu i chcą zatrzymać powiększanie się tabeli tur.

7. Adresy URL i synchronizacja z chmurą

Zmienna Wartość domyślna Plik źródłowy Opis
BASE_URL http://localhost:20128 src/lib/cloudSync.ts Adres URL po stronie serwera, używany przez wewnętrzne zadania synchronizacji do wywoływania /api/sync/cloud. Należy pozostawić tutaj adres URL pętli zwrotnej/kontenera, nawet jeśli aplikacja jest publicznie udostępniana za pośrednictwem serwera proxy.
CLOUD_URL (puste) src/lib/cloudSync.ts Adres URL punktu końcowego pośrednika chmurowego (funkcja premium).
CLOUD_SYNC_TIMEOUT_MS 12000 src/lib/cloudSync.ts Limit czasu HTTP dla żądań synchronizacji z chmurą.
OMNIROUTE_BUILD_PROFILE full Konfiguracja kompilacji Webpack Profil używany podczas kompilacji (ustaw minimal, aby fizycznie wykluczyć z pakietu moduły wymagające podwyższonych uprawnień).
OMNIROUTE_STANDALONE_DIR .build/ autonomiczne dane wyjściowe scripts/build/colocate-standalone.mjs Nadpisanie katalogu autonomicznych danych wyjściowych na etapie kompilacji, używanego przez etap kolokacji po kompilacji. Nie jest to ustawienie środowiska uruchomieniowego.
OMNIROUTE_CLOUD_SYNC_SECRET (puste) src/lib/cloudSync.ts Współdzielony sekret używany do weryfikowania podpisu HMAC-SHA256 odpowiedzi Cloud Sync.
OMNIROUTE_CLOUD_SYNC_SECRETS false src/lib/cloudSync.ts Ustaw true, aby zezwolić punktowi końcowemu Cloud Sync na nadpisywanie lokalnych danych uwierzytelniających. Wartość domyślna to false.
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE false src/lib/cloudSync.ts Ustaw true, aby odrzucać niepodpisaną odpowiedź Cloud Sync, gdy nie skonfigurowano lokalnego sekretu (#13679). Podpis, który jest obecny, jest zawsze weryfikowany — i zawsze odrzucany, gdy OMNIROUTE_CLOUD_SYNC_SECRET nie jest ustawiony — niezależnie od tej flagi. W wersji v3.9 domyślnie wymuszanie zostanie włączone.
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP false src/app/api/providers/zed/import/route.ts Ustaw true, aby powrócić do jednoetapowego zachowania „importuj wszystko” z wersji v3.8.5 bez potwierdzenia użytkownika.
NEXT_PUBLIC_BASE_URL http://localhost:20128 OAuth, Panel, synchronizacja Publiczny adres URL używany dla OAuth redirect_uri, odnośników w Panelu i generowanych publicznych adresów URL. Ustaw stabilny publiczny adres URL, gdy wywołania zwrotne OAuth lub generowane odnośniki przeglądarkowe muszą korzystać z kanonicznego hosta odwrotnego serwera proxy.
NEXT_PUBLIC_CLOUD_URL (puste) Po stronie klienta Odpowiednik CLOUD_URL po stronie klienta.
NEXT_PUBLIC_APP_URL (nieustawione) src/shared/services/cloudSyncScheduler.ts Starsza zmienna rezerwowa dla NEXT_PUBLIC_BASE_URL.
OMNIROUTE_PUBLIC_BASE_URL (nieustawione) Mechanizm rozpoznawania publicznego źródła, adresy URL obrazów Publiczne źródło OmniRoute przeznaczone dla przeglądarek, mające najwyższy priorytet i używane do generowania publicznych adresów URL oraz weryfikacji źródła przeglądarki poza panelem. Ustaw tę zmienną, gdy OpenWebUI lub inny przekaźnik łączy się z OmniRoute za pomocą wewnętrznego adresu URL, ale przeglądarka użytkownika musi pobierać wygenerowane multimedia ze źródła w sieci LAN, tunelu lub publicznego. Nie dodawaj /v1.
OMNIROUTE_PROVIDER_MANIFEST_URL (nieustawione) open-sse/config/providerPluginManifestUrl.ts Bezwzględny adres URL manifestu wtyczek dostawców udostępniany klientom typu sidecar. Gdy zmienna nie jest ustawiona, OmniRoute wyprowadza /api/v1/provider-plugin-manifest ze źródła żądania lub HOST/PORT.
OMNIROUTE_PUBLIC_PROTOCOL http open-sse/config/providerPluginManifestUrl.ts Protokół używany podczas wyprowadzania adresu URL manifestu wtyczek dostawców z HOST/PORT bez źródła żądania. Ustaw https za publicznym serwerem proxy kończącym TLS, jeśli nie ustawiono jawnie OMNIROUTE_PROVIDER_MANIFEST_URL.
OMNIROUTE_TRUST_PROXY (nieustawione) src/server/origin/publicOrigin.ts Opcjonalny tryb zaufania dla przekazywanych nagłówków publicznego źródła. Brak ustawienia = nie ufaj Forwarded / X-Forwarded-* przy podejmowaniu decyzji dotyczących bezpieczeństwa. true / loopback ufa przekazywanej nazwie hosta i protokołowi tylko od serwera proxy na interfejsie loopback oznaczonego tokenem. private / lan ufa również serwerom proxy w prywatnej sieci LAN. W środowisku produkcyjnym preferuj jawne ustawienie NEXT_PUBLIC_BASE_URL.
KIE_CALLBACK_URL (nieustawione) open-sse/utils/kieTask.ts Publiczny adres URL wywołania zwrotnego dla asynchronicznych zadań kie.ai. Nadpisanie o najwyższym priorytecie, sprawdzane przed OMNIROUTE_KIE_CALLBACK_URL i OMNIROUTE_PUBLIC_URL.
OMNIROUTE_KIE_CALLBACK_URL (nieustawione) open-sse/utils/kieTask.ts Alternatywna nazwa KIE_CALLBACK_URL. Używana jako wartość rezerwowa, gdy główna zmienna nie jest ustawiona.
OMNIROUTE_PUBLIC_URL (nieustawione) open-sse/utils/kieTask.ts Publiczne źródło używane do tworzenia adresów URL asynchronicznych wywołań zwrotnych. Wartość rezerwowa o najniższym priorytecie dla wywołań zwrotnych kie.ai; używana również jako ogólny publiczny adres URL dla innych przekaźników.
OMNIROUTE_CROF_USAGE_URL https://crof.ai/usage_api/ open-sse/services/usage.ts Punkt końcowy sprawdzania limitu CrofAI używany przez stronę Użycie. Zastąp go na potrzeby przekaźników / danych testowych.
OMNIROUTE_OPENCODE_QUOTA_URL https://opencode.ai/zen/go/v1/usage open-sse/services/opencodeQuotaFetcher.ts Oficjalny punkt końcowy użycia OpenCode Go uwierzytelniany kluczem API, używany przez stronę Użycie. Zastąp go na potrzeby przekaźników / danych testowych.
OPENCODE_SYNTHESIZE_CLI_HEADERS true open-sse/executors/opencode.ts Syntetyzuj nagłówki tożsamości OpenCode CLI (User-Agent, x-opencode-client/project, identyfikatory UUID żądania/sesji) w żądaniach nadrzędnych opencode-go/zen, jeśli klient ich nie wysłał, aby Cloudflare akceptował ruch wychodzący z VPS (#6210/#5997). Domyślnie włączone od #10571; wyłącz za pomocą false/0/no/off.
OPENCODE_USER_AGENT opencode open-sse/executors/opencode.ts Domyślny User-Agent używany, gdy OPENCODE_SYNTHESIZE_CLI_HEADERS jest włączone i nie ustawiono nadpisania <PROVIDER>_USER_AGENT dla danego dostawcy. Stosowany wyłącznie do modułów wykonawczych opencode.
OPENCODE_CLIENT desktop open-sse/executors/opencode.ts Wartość syntetyzowanego nagłówka x-opencode-client, gdy OPENCODE_SYNTHESIZE_CLI_HEADERS jest włączone.
OPENCODE_PROJECT global open-sse/executors/opencode.ts Wartość syntetyzowanego nagłówka x-opencode-project, gdy OPENCODE_SYNTHESIZE_CLI_HEADERS jest włączone.
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL https://ollama.com/settings open-sse/services/usage.ts Adres URL ustawień Ollama Cloud używany do pobierania informacji o limitach. Można go nadpisać na potrzeby serwerów pośredniczących / danych testowych.
OLLAMA_USAGE_COOKIE (nie ustawiono) open-sse/services/usage.ts Plik cookie __Secure-session usługi Ollama Cloud używany do pobierania informacji o limitach ze strony ustawień. Wrażliwa wartość; w przypadku skonfigurowania wielu kont zalecane jest użycie pola dla danego połączenia w panelu.
OLLAMA_CLOUD_USAGE_COOKIE (nie ustawiono) open-sse/services/usage.ts Alternatywna zmienna środowiskowa pliku cookie __Secure-session usługi Ollama Cloud. Wrażliwa wartość; w przypadku skonfigurowania wielu kont zalecane jest użycie pola dla danego połączenia w panelu.
OMNIROUTE_OLLAMA_USAGE_COOKIE (nie ustawiono) open-sse/services/usage.ts Alternatywna zmienna środowiskowa pliku cookie __Secure-session usługi Ollama Cloud, używana przed krótszymi aliasami. Wrażliwa wartość; w przypadku skonfigurowania wielu kont zalecane jest użycie pola dla danego połączenia w panelu.
OMNIROUTE_CODEWHISPERER_BASE_URL https://codewhisperer.us-east-1.amazonaws.com open-sse/services/usage.ts Punkt końcowy limitów użycia CodeWhisperer (AWS Kiro). Można go nadpisać na potrzeby serwerów pośredniczących / danych testowych.

Important

Podczas wdrażania za odwrotnym serwerem proxy (nginx, Caddy) ustaw NEXT_PUBLIC_BASE_URL na stabilny publiczny adres URL (np. https://omniroute.example.com), jeśli wywołania zwrotne OAuth lub generowane linki publiczne muszą używać tej nazwy hosta. Bez tego wywołania zwrotne OAuth mogą kończyć się niepowodzeniem, ponieważ redirect_uri nie będzie zgodny, a generowane linki publiczne mogą wskazywać na wewnętrzne źródło kontenera.

Pozostaw BASE_URL jako wewnętrzny adres URL pętli zwrotnej/kontenera dla zadań komunikacji między serwerami. Nie używaj przeglądarkowego nagłówka Origin ani publicznej nazwy hosta do wewnętrznych samodzielnych żądań zawierających dane uwierzytelniające.

Uwierzytelnione operacje zapisu w panelu nie wymagają statycznego publicznego bazowego adresu URL: panel wysyła żądania modyfikujące dane do tego samego źródła z tokenem CSRF powiązanym z sesją. OmniRoute nadal centralizuje weryfikację publicznego źródła dla integracji przeglądarkowych innych niż panel: jawne zmienne środowiskowe publicznego adresu URL są uznawane za zaufane w pierwszej kolejności; nieprzetworzone nagłówki Forwarded / X-Forwarded-* są ignorowane, chyba że OMNIROUTE_TRUST_PROXY jest włączone, a bezpośredni serwer proxy jest oznaczony tokenem jako zaufany. Nie używaj ustawień CORS do naprawiania żądań panelu kierowanych do tego samego źródła; CORS służy wyłącznie klientom przeglądarkowym działającym między różnymi źródłami.


8. Wychodzący serwer proxy

Kieruj wywołania do nadrzędnych dostawców LLM przez serwer proxy HTTP lub SOCKS5, aby kontrolować ruch wychodzący, routing geograficzny lub maskowanie adresu IP.

Zmienna Domyślnie Plik źródłowy Opis
ENABLE_SOCKS5_PROXY true open-sse/executors Włącza agenta proxy SOCKS5 dla wywołań nadrzędnych. Aby zrezygnować, ustaw false.
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY true Po stronie klienta Informuje klienta o dostępności SOCKS5.
PROXY_SKIP_RECENTLY_FAILED false src/shared/utils/featureFlags.ts Opcjonalna flaga funkcji (zobacz FEATURE_FLAGS.md; ustawienie w bazie danych panelu ma pierwszeństwo). Pule proxy i rotacja dla poszczególnych kont przestają ponownie używać elementu, który właśnie uległ awarii (odrzucona sonda TCP lub odpowiedź 429 za jego pośrednictwem), na okres podwajany po każdej kolejnej awarii, aż do osiągnięcia limitu. Wartość true (lub 1, yes) włącza tę funkcję.
HTTP_PROXY (nieustawione) Standard Node.js Serwer proxy HTTP dla wywołań nadrzędnych.
HTTPS_PROXY (nieustawione) Standard Node.js Serwer proxy HTTPS dla wywołań nadrzędnych.
ALL_PROXY (nieustawione) Standard Node.js Uniwersalny serwer proxy (obsługuje socks5://).
OMNIROUTE_PROXY_ECHO_URL (nieustawione) src/lib/proxyEchoTarget.ts Przypisuje cel zwracający adres IP, używany przez sondy ruchu wychodzącego proxy, do jednego adresu URL. Jeśli wartość nie jest ustawiona, sonda próbuje najpierw api64.ipify.org, a następnie api4.ipify.org, dzięki czemu tunele obsługujące wyłącznie IPv4 nie są zgłaszane jako niedziałające (#9694).
NO_PROXY (nieustawione) Standard Node.js Rozdzielona przecinkami lista nazw hostów/adresów IP, dla których serwer proxy ma być pomijany.
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS 32 open-sse/utils/proxyDispatcher.ts Maksymalna liczba równoczesnych gniazd na każdy buforowany dyspozytor proxy HTTP/SOCKS. Długotrwałe strumienie SSE, takie jak Codex /v1/responses, wymagają więcej niż jednego połączenia, gdy kilka żądań współdzieli ten sam serwer proxy na poziomie konta. Wartości powyżej 256 są ograniczane.
SOCKS_HANDSHAKE_TIMEOUT_MS 10000 open-sse/utils/socksConnectorWithFamily.ts Limit czasu uzgadniania (połączenia) SOCKS5 w ms. Zwiększ go, gdy pojedynczy host bramy sieci domowej jest obciążony dużą liczbą równoczesnych połączeń (np. 100 jednoczesnych żądań) — przy przeciążonej puli rzeczywiste uzgadnianie może trwać ponad 10 s, mimo że serwer proxy jest osiągalny, co w przeciwnym razie powoduje fałszywy komunikat [Proxy Fast-Fail] Proxy unreachable. Maksymalna wartość to 120000.
PROXY_FAIL_OPEN false src/sse/handlers/chatHelpers.ts Gdy ustawiono false (domyślnie), żądanie, dla którego przypisany serwer proxy nie może zostać rozwiązany, jest odrzucane (fail-closed) zamiast przełączać się na połączenie bezpośrednie — zapobiega to wyciekom rzeczywistego adresu IP. Ustaw true, aby przywrócić starszy mechanizm awaryjny DIRECT.
ENABLE_TLS_FINGERPRINT false open-sse/executors Fałszuje odcisk palca TLS za pomocą wreq-js (naśladuje Chrome 124). Przeciwdziała blokowaniu JA3/JA4.
TLS_FINGERPRINT_PROVIDERS (nieustawione) open-sse/utils/proxyFetch.ts Rozdzielana przecinkami lista dozwolonych dostawców dla nowego trasowania TLS przez serwer proxy (open-sse/utils/proxyFetch.ts). Gdy zmienna nie jest ustawiona, bezpośrednie połączenia TLS zachowują dotychczasowe działanie; tylko ci dostawcy są trasowani przez mostek odcisku palca Chrome 124.
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS false open-sse/services/claudeTurnstileSolver.ts Zezwala kontekstowi przeglądarki Playwright dla Claude Turnstile na ignorowanie błędów certyfikatów HTTPS.

Scenariusze

Scenariusz Konfiguracja
SOCKS5 przez tunel SSH ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true
Firmowy serwer proxy HTTP HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com
Ochrona przed identyfikacją odcisku palca ENABLE_TLS_FINGERPRINT=true — wymaga wreq-js (dołączony)
Kontrolowany ruch wychodzący / brak bezpośredniego dostępu Pozostaw PROXY_FAIL_OPEN=false (domyślnie). Gdy serwer proxy jest niedostępny, żądania kończą się błędem zamiast niejawnie korzystać z połączenia bezpośredniego.
Tryb starszy / deweloperski — zezwolenie na bezpośrednie połączenie awaryjne PROXY_FAIL_OPEN=true. Przywraca zachowanie sprzed wzmocnienia zabezpieczeń: w przypadku niepowodzenia rozpoznawania serwera proxy używane jest połączenie bezpośrednie.

Uwaga (obejście walidacji NVIDIA — #3226): Punkt końcowy NVIDIA służący do walidacji klucza API zawiesza się, gdy jest trasowany przez globalny serwer proxy lub zmodyfikowaną funkcję fetch dla TLS (dyspozytor undici → 504). src/lib/providers/validation.ts::directHttpsRequest() celowo omija modyfikację serwera proxy dla tego jednego wywołania walidacyjnego za pomocą safeOutboundFetch({ bypassProxyPatch: true }). Jest to udokumentowany wyjątek o ograniczonym zakresie — nie wpływa on na ruch wychodzący związany z czatem ani użyciem. Zakres obejścia jest zabezpieczony przez tests/unit/proxy-bypass-scope-guard-3226.test.ts.


9. Integracja narzędzi CLI

Określa sposób, w jaki OmniRoute wykrywa i uruchamia procesy pomocnicze CLI (Claude Code, Codex itp.).

Zmienna Domyślna Plik źródłowy Opis
CLI_MODE auto src/shared/services/cliRuntime.ts auto = przeszukuj systemową zmienną PATH; manual = używaj wyłącznie jawnie określonych ścieżek.
CLI_EXTRA_PATHS (nieustawiona) src/shared/services/cliRuntime.ts Dodatkowe wpisy PATH do wykrywania plików binarnych CLI (rozdzielone dwukropkami).
CLI_CONFIG_HOME (nieustawiona) src/shared/services/cliRuntime.ts Zastępuje katalog domowy używany do odczytu konfiguracji CLI (~/.claude, ~/.codex). Musi być ścieżką bezwzględną wewnątrz katalogu domowego procesu — lub, w kontenerze, ścieżką zamontowaną przez bind mount (tak działa /host-home). W każdym innym przypadku używany jest katalog domowy.
CLI_ALLOW_CONFIG_WRITES true src/shared/services/cliRuntime.ts Zezwala OmniRoute na zapisywanie plików konfiguracyjnych CLI (odświeżanie tokenów, dane sesji). Ustaw na false, aby każda próba zapisu konfiguracji CLI kończyła się jawnym błędem „zapisy wyłączone”.
CLI_CLAUDE_BIN claude src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Claude CLI.
CLI_CODEX_BIN codex src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Codex CLI.
CLI_DROID_BIN droid src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Droid CLI.
CLI_OPENCLAW_BIN openclaw src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego OpenClaw CLI.
CLI_CURSOR_BIN agent, następnie cursor src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego agenta Cursor. Jeśli nie została określona, mechanizm wykrywania najpierw próbuje użyć agent, a następnie cursor.
CLI_CLINE_BIN cline src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Cline CLI.
CLI_5DIVE_BIN 5dive src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego 5dive CLI.
CLI_5DIVE_STATE_DIR /var/lib/5dive src/shared/services/cliRuntime.ts Systemowy katalog stanu 5dive (profile uwierzytelniania należące do użytkownika root); odzwierciedla domyślną wartość STATE_DIR samego 5dive.
CLI_CONTINUE_BIN cn src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Continue CLI.
CLI_QODER_BIN qodercli src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Qoder CLI.
CLI_QWEN_BIN qwen src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Qwen Code CLI.
CLI_AIDER_BIN aider src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Aider CLI.
CLI_GOOSE_BIN goose src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Goose CLI.
CLI_GEMINI_BIN gemini src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Google Gemini CLI — używana wyłącznie do wykrywania po stronie serwera i kontroli stanu; omniroute run gemini wyszukuje plik binarny gemini w systemowej zmiennej PATH.
CLI_KILO_BIN kilocode src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Kilo Code CLI.
CLI_OPENCODE_BIN opencode src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego OpenCode CLI.
CLI_HERMES_BIN hermes src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Hermes. Współdzielona przez oba wpisy katalogu (hermes i hermes-agent).
CLI_FORGE_BIN forge src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego ForgeCode CLI.
CLI_JCODE_BIN jcode src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego jcode CLI.
CLI_DEEPSEEK_TUI_BIN deepseek-tui src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego DeepSeek TUI.
CLI_CODEWHALE_BIN codewhale src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego CodeWhale CLI.
CLI_SMELT_BIN smelt src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Smelt CLI.
CLI_PI_BIN pi src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Pi (pi-coding-agent).
CLI_CRUSH_BIN crush src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Crush CLI.
CLI_OMP_BIN omp src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego agenta Oh My Pi (omp).
CLI_LETTA_BIN letta src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Letta CLI.
CLI_PRIME_AGENT_BIN prime-agent src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Prime Agent (Prime Intellect).
CLI_WINDSURF_BIN (brak) src/shared/services/cliRuntime.ts Niestandardowa ścieżka do pliku binarnego Windsurf. Windsurf jest dostarczany bez domyślnego polecenia — wykrywanie pliku binarnego pozostaje wyłączone do momentu ustawienia tej zmiennej.
CLI_DEVIN_BIN devin open-sse/executors/devin-cli.ts Niestandardowa ścieżka do pliku binarnego Devin CLI (v3.8.0). Używana przez executor Windsurf/Devin.
DEVIN_DESKTOP_VERSION 3.6.27 open-sse/executors/devin-desktop.ts Wartość ide_version aplikacji Devin Desktop. Wartości nadpisujące muszą używać formatu x.y.z; nieprawidłowe wartości są zastępowane zweryfikowaną wartością domyślną.
DEVIN_DESKTOP_EXTENSION_VERSION 1.48.2 open-sse/executors/devin-desktop.ts Dołączona wartość extension_version Codeium/language-server, odrębna od wartości ide_version aplikacji Desktop. Wartości nadpisujące muszą używać formatu x.y.z; w przypadku nieprawidłowych wartości używana jest dołączona wartość domyślna.
CLI_DEVIN_AGENTIC_BIN devin open-sse/executors/devin-cli-agentic.ts Nadpisanie Devin CLI wyłącznie dla mostka agentowego. Executor akceptuje wyłącznie lokalne źródło nadrzędne ACP stdio.
DEVIN_AGENTIC_HOME (wymagane) open-sse/executors/devin-cli-agentic.ts Bezwzględna ścieżka do izolowanego katalogu domowego dla agentowego podprocesu Devin; akceptowane ścieżki mostka to /home/bridge oraz lokalne dla zadania ścieżki .sandbox (w systemie Windows: C:\...\.sandbox\...).
DEVIN_AGENTIC_ACP_TIMEOUT_MS 120000 open-sse/executors/devin-cli-agentic.ts Maksymalny czas trwania jednej tury Devin ACP, po którym mostek kończy proces potomny i zwraca jawny błąd przekroczenia limitu czasu.
DEVIN_BRIDGE_MODEL devin-cli-agentic/swe-1-7 docker/devin-bridge/compose.yml Główny alias modelu Claude Code dla izolowanego mostka. Aktywny mechanizm testowy zastępuje przykład modelem zwróconym przez bieżące konto Devin.
DEVIN_BRIDGE_SONNET_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias izolowanego mostka używany, gdy Claude Code żąda domyślnego modelu Sonnet.
DEVIN_BRIDGE_OPUS_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias izolowanego mostka używany, gdy Claude Code żąda domyślnego modelu Opus.
DEVIN_BRIDGE_HAIKU_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias izolowanego mostka używany, gdy Claude Code żąda domyślnego modelu Haiku.
DEVIN_BRIDGE_SUBAGENT_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias izolowanego mostka używany dla podagentów Claude Code.
DEVIN_SEAT_API_URL https://server.codeium.com open-sse/services/usage/devinCli.ts Opcjonalne zastąpienie adresu API zarządzania stanowiskami Codeium używanego do sprawdzania limitu Devin CLI (GetUserStatus).
AUGGIE_BIN auggie open-sse/executors/auggie.ts Zastąpienie bezwzględnej ścieżki do pliku binarnego CLI Augment (Auggie) używanego przez lokalnego dostawcę auggie. Jeśli nie ustawiono, używana jest wartość CLI_AUGGIE_BIN, a następnie wyszukiwanie w PATH.
CLI_AUGGIE_BIN auggie open-sse/executors/auggie.ts Alternatywna zmienna zastępująca ścieżkę do pliku binarnego CLI Augment (Auggie), sprawdzana po AUGGIE_BIN.
ZCODE_BIN zcode open-sse/executors/zcode.ts Plik binarny używany przez klienta stdio lokalnego dostawcy zcode. Jeśli nie ustawiono, używany jest zcode z PATH.
ZCODE_ARGS open-sse/executors/zcode.ts Tablica JSON (≤16 ciągów znaków) dodatkowych argumentów przekazywanych do pliku binarnego zcode, gdy jest uruchamiany za pośrednictwem cliTools.
ZCODE_CWD process.cwd() open-sse/executors/zcode.ts Katalog roboczy podprocesu serwera aplikacji ZCode.
ZCODE_PROVIDER_ID builtin:zai-coding-plan open-sse/executors/zcode.ts Zastąpienie identyfikatora dostawcy wysyłanego do serwera aplikacji.
ZCODE_SERVER_RUNTIME_ROOT ~/.zcode/server open-sse/executors/zcode.ts Katalog główny środowiska uruchomieniowego serwera aplikacji ZCode, w którym znajdują się dołączone pliki node i zcode-server.cjs.
ZCODE_SERVER_NODE <runtimeRoot>/node open-sse/executors/zcode.ts Plik wykonywalny Node używany do hostowania serwera aplikacji ZCode.
ZCODE_SERVER_ENTRY <runtimeRoot>/zcode-server.cjs open-sse/executors/zcode.ts Skrypt wejściowy serwera aplikacji używany do hostowania serwera ZCode.
ZCODE_STARTUP_TIMEOUT_MS 10000 open-sse/executors/zcode.ts Limit czasu uruchamiania (ms), po którego upływie uruchomienie serwera aplikacji ZCode jest uznawane za nieudane.
ZCODE_RPC_TIMEOUT_MS 30000 open-sse/executors/zcode.ts Limit czasu RPC dla każdego żądania (ms) wywołania serwera aplikacji ZCode.
ZCODE_TURN_TIMEOUT_MS 120000 open-sse/executors/zcode.ts Maksymalny czas trwania (ms) jednej tury ZCode, po którego upływie nadzorca przerywa ją z powodu przekroczenia limitu czasu.
ZCODE_POLL_INTERVAL_MS 250 open-sse/executors/zcode.ts Interwał odpytywania (ms) w celu sprawdzania zakończenia tury ZCode.
HERMES_HOME ~/.hermes src/lib/cli-helper/config-generator/hermesHome.ts Katalog domowy Hermes Agent, w którym OmniRoute odczytuje i zapisuje konfigurację Hermes CLI. Odpowiada zmiennej środowiskowej ustawianej w systemie Windows przez instalator Hermes PowerShell (%LOCALAPPDATA%\hermes).

Automatyczna synchronizacja profili CLI

Te flagi funkcji są opcjonalne i domyślnie wyłączone. Można je również przełączać z poziomu panelu CLI Code.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES false src/shared/constants/featureFlagDefinitions.ts Po synchronizacji modeli dostawcy automatycznie ponownie zapisuje pliki profili ~/.codex/*.config.toml na podstawie aktualnego katalogu. Wymaga CLI_ALLOW_CONFIG_WRITES; nigdy nie zmienia aktywnej/domyślnej konfiguracji Codex, uwierzytelniania, ustawień Codex-lb ani wybranego dostawcy.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES false src/shared/constants/featureFlagDefinitions.ts Po synchronizacji modeli dostawcy automatycznie ponownie zapisuje pliki profili Claude Code ~/.claude/profiles/<name>/settings.json na podstawie aktualnego katalogu. Wymaga CLI_ALLOW_CONFIG_WRITES; nigdy nie zmienia aktywnej/domyślnej konfiguracji Claude, uwierzytelniania ani wybranego dostawcy.

Przykład użycia Dockera

# Zamontuj pliki binarne hosta w kontenerze i wskaż OmniRoute ich lokalizację:
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 działa tylko wtedy, gdy ścieżka jest faktycznie montowana z hosta za pomocą montowania typu bind — należy używać jej z montowaniami takimi jak ~/.codex:/host-home/.codex:rw (zobacz profil host w pliku docker-compose.yml). Ścieżka, która nie znajduje się ani w katalogu domowym użytkownika kontenera, ani w montowaniu typu bind, jest ignorowana, ponieważ zapisane w niej dane zostałyby utracone po ponownym utworzeniu kontenera.

Obraz działa jako USER node, dlatego niezamontowany katalog /root nie jest prawidłową lokalizacją zastępczą.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_CONTAINER (automatycznie) src/shared/utils/containerEnv.ts Wymusza wykrywanie kontenera jako włączone (1/true) lub wyłączone (0/false). Potrzebne tylko w środowiskach, których automatyczne wykrywanie nie rozpoznaje.
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE false src/shared/services/cliRuntime.ts Zezwala mimo wszystko na zapisywanie konfiguracji narzędzia CLI w niezamontowanej ścieżce kontenera. Odpowiednikiem w CLI jest --allow-container-write.

Narzędzia pomocnicze pliku wykonywalnego CLI (omniroute)

Te zmienne dostosowują zachowanie samego pliku wykonywalnego CLI omniroute (nie opisanego powyżej wykrywania procesu sidecar).

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_LANG (systemowa) bin/cli/i18n.mjs Wymusza język komunikatów CLI. Ustawienia regionalne BCP-47 (np. en, pt-BR). Zastępuje systemowe zmienne środowiskowe ustawień regionalnych (LC_ALL, LC_MESSAGES).
OMNIROUTE_SHOW_LOG (nieustawiona) bin/cli/runtime/processSupervisor.mjs Ustaw na 1, aby w trybie nadzorowanym przekazywać standardowe wyjście i standardowe wyjście błędów serwera do terminala. Odpowiada fladze --log polecenia omniroute serve.
OMNIROUTE_CLI_TOKEN (nieustawiona) bin/cli/api.mjs Token uwierzytelniania maszyny przekazywany w nagłówku x-omniroute-cli-token. Generowany automatycznie w zadaniu 8.12.
OMNIROUTE_HTTP_TIMEOUT_MS 30000 bin/cli/api.mjs Limit czasu HTTP (ms) dla każdej próby żądania CLI → serwer.
OMNIROUTE_READY_TIMEOUT_MS 60000 bin/cli/utils/pid.mjs Maksymalny czas (ms), przez jaki CLI czeka na punkt końcowy kondycji serwera przed wyświetleniem ostrzeżenia o przekroczeniu limitu czasu. Przydatne przy powolnym zimnym uruchamianiu (np. w Windows). Można również ustawić za pomocą --ready-timeout.
OMNIROUTE_VERBOSE 0 bin/cli/api.mjs Ustaw na 1, aby podczas wykonywania poleceń CLI wypisywać do standardowego wyjścia błędów diagnostykę ponownych prób i opóźnień między nimi.
OMNIROUTE_PLUGIN_PATH (nieustawiona) bin/cli/plugins.mjs Niestandardowy katalog do wykrywania wtyczek CLI (pakietów omniroute-cmd-*). Gdy zmienna nie jest ustawiona, domyślnie używany jest ~/.omniroute/plugins/. Dotyczy tylko CLI — nigdy nie trafia do skanera wtyczek po stronie serwera, który wskazuje OMNIROUTE_PLUGINS_DIR (sekcja 2).

10. Integracje wewnętrznego agenta i MCP

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_BASE_URL automatyczne wykrywanie open-sse/mcp-server/server.ts Jawny adres URL umożliwiający narzędziom MCP/A2A dostęp do OmniRoute. Zastępuje automatyczne wykrywanie localhost.
OMNIROUTE_API_KEY (nieustawione) Moduły MCP/A2A Klucz API dla wywołań wewnętrznych narzędzi MCP i umiejętności A2A.
OMNIROUTE_API_KEY_ID (nieustawione) open-sse/mcp-server/audit.ts Identyfikator klucza używany do atrybucji wpisów w dzienniku audytu MCP.
ROUTER_API_KEY (nieustawione) Starsza wersja Starszy alias zmiennej OMNIROUTE_API_KEY.
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS 30 src/lib/a2a/taskManager.ts Liczba dni przechowywania historii zadań A2A w lokalnej bazie danych, zanim codzienne czyszczenie usunie wiersz. Wartość nieustawiona, nienumeryczna lub <= 0 powoduje użycie wartości 30.
OMNIROUTE_A2A_MEMORY_HITS 1 src/lib/a2a/taskExecution.ts Wyłącznik awaryjny funkcji obserwowalności trafień pamięci A2A. Ustaw na 0, aby całkowicie pominąć wyszukiwanie wspomnień dla zadania; każda inna wartość (w tym brak ustawienia) pozostawia tę funkcję włączoną.
OMNIROUTE_ISSUE_AGENT_ENABLED false src/app/api/issue-agent/runs/route.ts Włącza lokalny punkt końcowy zarejestrowanej selekcji zgłoszeń agenta Issue Agent działający w trybie offline. Pozostaw wyłączony, chyba że jawnie uruchamiasz lokalne przepływy pracy zarejestrowanej selekcji zgłoszeń.
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS (nieustawione) src/lib/issueAgent/execution.ts Limit czasu (ms) pojedynczego uruchomienia zarejestrowanej selekcji zgłoszeń agenta Issue Agent. Ograniczany do wewnętrznej wartości maksymalnej; jeśli jest nieustawiony lub nieprawidłowy, używana jest wbudowana wartość domyślna.
OMNIROUTE_CONTEXT (aktywny kontekst) bin/cli/program.mjs, bin/cli/api.mjs Kontekst/profil trybu zdalnego CLI dla poleceń omniroute; zastępuje aktywny kontekst w lokalnym magazynie kontekstów. Odpowiada opcji --context <name>.
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED 0 bin/cli/contexts.mjs Wyłącza opcjonalny mechanizm keytar przechowujący dane uwierzytelniające kontekstu CLI w systemowym pęku kluczy. Po włączeniu dane uwierzytelniające pozostają w pliku config.json z trybem 0600, a CLI jednorazowo ostrzega o użyciu mechanizmu zastępczego; przeznaczone do świadomego użycia w środowiskach bezobsługowych/kontenerowych.
OMNIROUTE_MCP_ENFORCE_SCOPES true open-sse/mcp-server/server.ts Wymusza kontrolę dostępu opartą na zakresach dla wywołań narzędzi MCP.
OMNIROUTE_MCP_SCOPES (wszystkie) open-sse/mcp-server/server.ts Zakresy rozdzielone przecinkami: admin, combos, health, models, routing, budget, metrics, pricing, memory, skills.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS false open-sse/mcp-server/descriptionCompressor.ts Kompresuje opisy narzędzi MCP przed serializacją manifestu. Wartości włączające: 1, true, on.
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION rtk open-sse/mcp-server/descriptionCompressor.ts Algorytm/profil kompresji. Wartości wyłączające: 0, false, off.
OMNIROUTE_MCP_FETCH_TIMEOUT_MS 10000 open-sse/mcp-server/fetchTimeout.ts Limit czasu przerwania (ms) wewnętrznych odczytów zarządzających serwera MCP (stan, odporność, kombinacje, limity, użycie).
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS 60000 open-sse/mcp-server/fetchTimeout.ts Limit czasu przerwania (ms) dla wywołań MCP oczekujących na dostawcę (route_request, web_search, web_fetch).
OMNIROUTE_CORPUS_CACHE_SIZE 5 src/lib/localCorpus/configured.ts Maksymalna liczba instancji indeksu lokalnego korpusu przechowywanych w pamięci podręcznej (LRU, jedna na każdy indeksowany katalog główny). Ograniczona od dołu do 1.
MODEL_SYNC_INTERVAL_HOURS 24 src/shared/services/modelSyncScheduler.ts Interwał synchronizacji katalogu modeli w godzinach.
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 src/lib/usage/providerLimits.ts Interwał odpytywania o limity częstotliwości i limity wykorzystania dostawcy.
PROVIDER_LIMITS_SYNC_SPACING_MS 1500 src/lib/usage/providerLimits.ts Odstęp (ms) między kolejnymi pobraniami limitów OAuth podczas synchronizacji zbiorczej; połączenia OAuth są odpytywane pojedynczo, aby uniknąć gwałtownego obciążenia usługi nadrzędnej. 0 wyłącza tę funkcję (wywołania równoległe).
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS 250 open-sse/services/quotaFetchThrottle.ts Minimalny interwał (ms) między kolejnymi pobraniami limitów z usługi nadrzędnej na ścieżce kontroli wstępnej/monitorowania dla każdego żądania; rozkłada równoczesne wywołania sieciowe w czasie, aby wiele kont korzystających z jednego adresu IP nie powodowało gwałtownego obciążenia usługi nadrzędnej. Podłączony do mechanizmów pobierania limitów Codex (/wham/usage), DeepSeek, Bailian (w obu miejscach pobierania), OpenCode i Crof (#6009, #6911). Ogólna ścieżka dystrybucji usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/itd.) nie jest jeszcze obsługiwana — jest śledzona osobno. Trafienia w pamięć podręczną pozostają bez zmian. 0 wyłącza; zakres ograniczony do 0..5000.
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS 5000 src/lib/usage/providerLimits.ts Opóźnienie (ms) przed odświeżeniem limitów dostawcy po rzeczywistym zdarzeniu użycia, dające nadrzędnemu API limitów czas na zarejestrowanie zużycia.
OMNIROUTE_LOGIN_BROWSER_PATH automatyczne wykrywanie open-sse/services/adobeFireflyBrowserLogin.ts Bezwzględna ścieżka do systemowego pliku wykonywalnego Chrome lub Edge, używanego do interaktywnego logowania w Adobe Firefly i odnawiania poza ekranem.
ADOBE_FIREFLY_BROWSER_REFRESH włączone open-sse/services/adobeFireflySession.ts Utrzymuje aktualny stan IMS i stan ryzyka przeglądarki za pomocą sesji Chrome CDP przypisanych do konta. Ustaw 0, aby wyłączyć odnawianie przez przeglądarkę.
ADOBE_FIREFLY_SESSION_DISK włączone open-sse/services/adobeFireflySession.ts Zachowuje naprawione sesje Adobe w DATA_DIR między ponownymi uruchomieniami procesu. Ustaw 0, aby przechowywać sesje wyłącznie w pamięci.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Minimalny odstęp w milisekundach między przesłaniami żądań generowania Adobe Firefly; 0 wyłącza odstępy.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Dodatkowy okres bezczynności w milisekundach po co trzecim pomyślnym przesłaniu do Adobe.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyClient.ts Bazowe opóźnienie ponowienia w milisekundach po przejściowych odpowiedziach Adobe 408; łączone z odstępami między przesłaniami w ramach maksymalnie pięciu prób.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES false src/instrumentation-node.ts Wyłącza wszystkie usługi działające w tle (synchronizację, wycenę, odświeżanie modeli). Przydatne w CI/testach.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS (nie ustawiono) src/lib/config/runtimeSettings.ts Wymusza włączenie zadań w tle po wykryciu automatycznych testów. Ustaw 1, aby zastąpić heurystykę testową.
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS 600000 src/lib/jobs/budgetResetJob.ts Częstotliwość sprawdzania resetowania budżetu (ms). Minimum 10000.
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS 60000 src/lib/quota/connectionRecovery.ts Częstotliwość proaktywnego przywracania po okresie karencji połączenia (ms): ponownie weryfikuje połączenia, dla których upłynął przejściowy okres rate_limited_until, poza krytyczną ścieżką obsługi żądania. Minimum 5000.
OMNIROUTE_DISABLE_CONNECTION_RECOVERY false src/lib/quota/connectionRecovery.ts Wyłącza harmonogram proaktywnego przywracania po okresie karencji połączenia (nadal obowiązuje leniwe przywracanie w getProviderCredentials).
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS 1800000 src/lib/jobs/reasoningCacheCleanupJob.ts Częstotliwość czyszczenia pamięci podręcznej rozumowania (ms). Minimum 60000.
OMNIROUTE_REASONING_MIN_BUDGET nieustawione (wyłączone) open-sse/services/reasoningTokenBuffer.ts Opcjonalna dolna granica budżetów wyjściowych modeli rozumujących: wartość max_tokens wywołującego z zakresu [256, floor) jest podnoszona do tej granicy (z ograniczeniem do limitu wyjściowego modelu). Brak ustawienia = budżety klientów nigdy nie są zwiększane (#9507).
OMNIROUTE_LOG_EXPORT_CRON 0 * * * * src/lib/jobs/logExportJob.ts Wyrażenie cron (UTC) dla zadania eksportu dziennika wywołań, które przetwarza każde włączone miejsce docelowe eksportu dzienników.
OMNIROUTE_CONFIG_HOT_RELOAD_MS 5000 src/lib/config/hotReload.ts Interwał odpytywania (ms) dla dynamicznego ponownego wczytywania konfiguracji. Wartości mniejsze niż 1000 są odrzucane.
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE (włączone) src/lib/db/apiKeys.ts Ustaw 1, aby ominąć pamięć podręczną uwierzytelniania kluczy API opartą na Redisie (wymusza odczyty z bazy danych).
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS 0 open-sse/services/compression/engines/rtk/filterLoader.ts Ufaj zarządzanym przez użytkownika regułom filtrów projektu RTK bez ścisłego sprawdzania podpisów.
OMNIROUTE_LITE_MAX_TOOL_LENGTH 2000 open-sse/services/compression/lite.ts Limit znaków dla proaktywnego skracania wyników narzędzi w trybie Lite, gdy lite.maxToolLength nie jest ustawione. Zakres 2561000000. Ustawienie w panelu ma pierwszeństwo przed tą zmienną środowiskową.
OMNI_COMPRESSION_WORKERS 2 open-sse/services/compression/compressionWorkerPool.ts Maksymalna liczba współbieżnych, synchronicznych procesów roboczych RTK/Caveman; nadmiarowe zadania oczekują w kolejności FIFO.
OMNI_COMPRESSION_WORKER_TIMEOUT_MS 120000 open-sse/services/compression/compressionWorkerPool.ts Limit czasu dla pojedynczego zadania w milisekundach. Procesy robocze, które przekroczą limit czasu, są kończone, a żądanie przechodzi bez zmian w trybie fail-open.
OMNI_COMPRESSION_WORKER_IDLE_MS 60000 open-sse/services/compression/compressionWorkerPool.ts Czas bezczynności w milisekundach, po którym nieużywany proces roboczy kompresji zostaje zakończony.
COMPRESSION_PIPELINE_BREAKER_ENABLED false open-sse/services/compression/pipelineEngineBreaker.ts Główny przełącznik wyłącznika obwodu dla poszczególnych silników w stosowym potoku T02. Opcjonalne (domyślnie wyłączone) — po włączeniu silnik, który wielokrotnie zgłasza wyjątki w różnych żądaniach, jest pomijany (fail-open) przez okres karencji; wyłączone = zachowanie starszej wersji identyczne na poziomie bajtów.
COMPRESSION_PIPELINE_BREAKER_THRESHOLD 3 open-sse/services/compression/pipelineEngineBreaker.ts Liczba kolejnych niepowodzeń w różnych żądaniach, po której wyłącznik obwodu silnika zostaje otwarty.
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS 30000 open-sse/services/compression/pipelineEngineBreaker.ts Liczba milisekund, przez które otwarty silnik pozostaje pomijany przed sondą w stanie półotwartym.
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR 2 open-sse/services/compression/engines/ccr/index.ts Narastanie sprzężenia zwrotnego pobierania T08/H8 CCR: każde wcześniejsze pobranie zapisanego bloku liniowo zwiększa jego efektywną wartość minChars (często pobierana zawartość jest kompresowana w mniejszym stopniu; >=3 pobrania = nigdy nie jest kompresowana). Wartość 1 wyłącza narastanie (binarne pomijanie tylko po osiągnięciu progu).
COMPRESSION_CCR_DURABLE_STORE true open-sse/services/compression/engines/ccr/index.ts Trwały magazyn bloków CCR (#9061). Uzupełnia magazyn w pamięci o SQLite, dzięki czemu blok przetrwa usunięcie przez LRU, wygaśnięcie TTL, ponowne uruchomienie lub żądanie pobrania trafiające do innej instancji. Ustaw false, aby przechowywać bloki wyłącznie w pamięci. Bloki większe niż 512 KB oraz środowiska uruchomieniowe w chmurze pozostają wyłącznie w pamięci niezależnie od tego ustawienia.
COMPRESSION_PREFIX_FREEZE_ENABLED false open-sse/services/compression/prefixFreeze.ts Główny przełącznik zamrażania prefiksu T08/H5 na podstawie zaobserwowanego użycia. Opcja dobrowolna (domyślnie wyłączona) — po włączeniu monit systemowy zaobserwowany >= określoną wartość progową jest traktowany jako stabilny prefiks możliwy do buforowania i chroniony przed kompresją nawet w przypadku dostawców, których nie wykrywa statyczna heurystyka pamięci podręcznej (zamrażanie wyłącznie chroni, nigdy nie modyfikuje).
COMPRESSION_PREFIX_FREEZE_THRESHOLD 3 open-sse/services/compression/prefixFreeze.ts Liczba obserwacji monitu systemowego, po której jest on traktowany jako zamrożony stabilny prefiks.
OMNIROUTE_BOOTSTRAPPED false src/app/(dashboard)/dashboard/page.tsx Ustawiane na true przez skrypt inicjalizacyjny po konfiguracji początkowej. Steruje widocznością kreatora konfiguracji.
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE 0 open-sse/executors/antigravity.ts Mechanizm awaryjny: zezwala treści żądania na zastąpienie pola projektu Antigravity.
ANTIGRAVITY_CREDITS off open-sse/services/antigravityCredits.ts Zasady dotyczące środków Google One AI: off nigdy nie dołącza środków, retry dołącza je jeden raz po kwalifikującym się błędzie limitu 429, a always dołącza je przy pierwszym żądaniu.
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS 0 open-sse/translator/request/openai-to-gemini.ts Zezwala translatorowi żądań Antigravity na pominięcie rygorystycznej walidacji podpisu żądania CLI, gdy usługa nadrzędna odrzuca prawidłowe podpisy (tryb debugowania/przestarzałego CLI). Wartość różna od zera włącza pomijanie walidacji.
AGY_TOKEN_FILE ~/.gemini/antigravity-cli/antigravity-oauth-token src/app/api/providers/agy-auth/apply-local/route.ts Zastępuje ścieżkę do pliku tokenu CLI Antigravity (agy) używaną podczas automatycznego wykrywania i importowania lokalnego logowania.

Most OAuth CLI (wewnętrzny)

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_SERVER automatyczne wykrywanie src/lib/oauth/config/index.ts Adres URL serwera dla mostu uwierzytelniania CLI↔OmniRoute.
OMNIROUTE_TOKEN (nie ustawiono) src/lib/oauth/config/index.ts Token uwierzytelniający dla mostu CLI.
OMNIROUTE_USER_ID cli src/lib/oauth/config/index.ts Identyfikator użytkownika dla sesji mostu CLI.
SERVER_URL (nie ustawiono) src/lib/oauth/config/index.ts Starszy alias zmiennej OMNIROUTE_SERVER.
CLI_TOKEN (nie ustawiono) src/lib/oauth/config/index.ts Starszy alias zmiennej OMNIROUTE_TOKEN.
CLI_USER_ID (nie ustawiono) src/lib/oauth/config/index.ts Starszy alias zmiennej OMNIROUTE_USER_ID.

11. Dane uwierzytelniające dostawców OAuth

Wbudowane dane uwierzytelniające do programowania na localhost. W przypadku wdrożeń zdalnych zarejestruj własne dane w konsoli deweloperskiej każdego dostawcy.

Zmienna Dostawca Uwagi
CLAUDE_OAUTH_CLIENT_ID Claude Code (Anthropic) Klient publiczny — klucz tajny nie jest wymagany.
CLAUDE_CODE_REDIRECT_URI Claude Code Zastępuje identyfikator URI przekierowania. Domyślnie: https://platform.claude.com/oauth/code/callback
CODEX_OAUTH_CLIENT_ID Codex / OpenAI Klient publiczny.
GEMINI_OAUTH_CLIENT_ID Gemini (Google) Wymaga odpowiadającej zmiennej _SECRET.
GEMINI_OAUTH_CLIENT_SECRET Gemini (Google)
KIMI_CODING_OAUTH_CLIENT_ID Kimi Coding (Moonshot) Klient publiczny.
ANTIGRAVITY_OAUTH_CLIENT_ID Antigravity (Google) Wymaga odpowiadającej zmiennej _SECRET.
ANTIGRAVITY_OAUTH_CLIENT_SECRET Antigravity (Google)
GITHUB_OAUTH_CLIENT_ID GitHub Copilot Klient publiczny.
GHE_COPILOT_OAUTH_CLIENT_ID GHE Copilot Opcjonalna wartość zastępująca identyfikator klienta OAuth usługi GitHub Enterprise Copilot. Jeśli nie jest ustawiona, używana jest domyślna publiczna wartość GITHUB_OAUTH_CLIENT_ID.
WINDSURF_API_KEY Windsurf / Devin (v3.8) Zapasowy klucz API używany przez open-sse/executors/devin-cli.ts, gdy dane uwierzytelniające dla danego połączenia nie są dostępne. Opcjonalny.
CLI_DEVIN_BIN Devin CLI (v3.8) Niestandardowa ścieżka do pliku binarnego Devin CLI (devin). Rozpoznawana przez open-sse/executors/devin-cli.ts.
GITLAB_DUO_OAUTH_CLIENT_ID GitLab Duo (v3.8) Identyfikator klienta OAuth dla GitLab Duo. Zarejestruj aplikację pod adresem https://gitlab.com/-/profile/applications z identyfikatorem URI przekierowania <NEXT_PUBLIC_BASE_URL>/callback i zakresami api, read_user, openid, profile, email. Jeśli nie ustawiono, używana jest wartość GITLAB_OAUTH_CLIENT_ID.
GITLAB_DUO_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Klucz tajny klienta OAuth dla GitLab Duo. Opcjonalny — przepływ PKCE nie wymaga klucza tajnego. Jeśli nie ustawiono, używana jest wartość GITLAB_OAUTH_CLIENT_SECRET.
GITLAB_DUO_BASE_URL GitLab Duo (v3.8) Zastępuje bazowy adres URL GitLab (GitLab hostowany samodzielnie). Domyślnie: https://gitlab.com. Jeśli nie ustawiono, używana jest wartość GITLAB_BASE_URL.
GITLAB_BASE_URL GitLab Duo (v3.8) Starsza wartość zapasowa dla GITLAB_DUO_BASE_URL. Używana, gdy wariant _DUO_ nie jest ustawiony.
GITLAB_OAUTH_CLIENT_ID GitLab Duo (v3.8) Starsza wartość zapasowa dla GITLAB_DUO_OAUTH_CLIENT_ID, używana przez src/lib/oauth/constants/oauth.ts.
GITLAB_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Starszy mechanizm awaryjny dla GITLAB_DUO_OAUTH_CLIENT_SECRET, używany przez src/lib/oauth/constants/oauth.ts.
QODER_OAUTH_CLIENT_SECRET Qoder
QODER_OAUTH_AUTHORIZE_URL Qoder Ustaw, aby włączyć OAuth dla Qoder.
QODER_OAUTH_TOKEN_URL Qoder
QODER_OAUTH_USERINFO_URL Qoder
QODER_OAUTH_CLIENT_ID Qoder
QODER_PERSONAL_ACCESS_TOKEN Qoder Zapasowy bezpośredni klucz API (z pominięciem OAuth).
QODER_CLI_WORKSPACE Qoder Identyfikator obszaru roboczego dla Qoder CLI.
OMNIROUTE_QODER_WORKSPACE Qoder Alias dla QODER_CLI_WORKSPACE.
QODER_CLI_CONFIG_DIR Qoder Zastępuje katalog konfiguracji Qoder CLI (izolowana sesja PAT, zapobiega nadpisaniu danych logowania z przeglądarki).
BLACKBOX_WEB_VALIDATED_TOKEN Blackbox Web Token tk frontendu wysyłany jako validated do /api/chat. Wymagany, gdy Blackbox wymusza zgodność tokenów; w przeciwnym razie OmniRoute używa losowego identyfikatora UUID. Zobacz zgłoszenie #2252.
VISION_BRIDGE_BASE_URL Mechanizm ochronny Vision Bridge Bazowy adres URL zgodny z OpenAI dla wywołań Vision Bridge innych niż Anthropic. Domyślnie używa starszej zmiennej środowiskowej adresu URL OpenAI lub api.openai.com. Ustaw samoodwołanie do /v1 w OmniRoute albo dowolny punkt końcowy zgodny z OpenAI (Gemini OpenAI-compat, OpenRouter). Zgłoszenie #2232. Gdy adres URL wskazuje na własny /v1 OmniRoute, podżądanie opisu wysyła x-omniroute-admission-bypass: internal i uwierzytelnia się przy użyciu rozpoznanych poświadczeń samoodwołania (wartość zastępcza sk_omniroute w trybie lokalnym albo OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350), dzięki czemu wdrożenia z REQUIRE_API_KEY=true działają.
VISION_BRIDGE_API_KEY Mechanizm ochronny Vision Bridge Klucz API dla powyższego adresu URL. Zastępuje zmienne środowiskowe OpenAI / Google poszczególnych dostawców dla wywołań Vision Bridge innych niż Anthropic. Modele Anthropic nadal używają dedykowanej ścieżki klucza Anthropic. Zgłoszenie #2232.

Warning

  1. Przejdź do Google Cloud Console → Dane logowania
  2. Utwórz identyfikator klienta OAuth 2.0 (typ: „Aplikacja internetowa”)
  3. Dodaj adres URL swojego serwera jako autoryzowany identyfikator URI przekierowania
  4. Zastąp wartości danych logowania w .env.

12. Nadpisywanie User-Agent dostawców

Nadpisz nagłówek User-Agent wysyłany do każdego dostawcy nadrzędnego. Jest on dynamicznie ustalany w czasie wykonywania przez bazową klasę executora:

process.env[`${PROVIDER_ID}_USER_AGENT`]

Źródło: open-sse/executors/base.tsbuildHeaders()

Zmienna Wartość domyślna Kiedy zaktualizować
CLAUDE_USER_AGENT claude-cli/2.1.258 (external, cli) Gdy Anthropic wyda nową wersję CLI
CLAUDE_DISABLE_TOOL_NAME_CLOAK false executors/base.ts + executors/cliproxyapi.ts Ustaw na 1/true, aby przekazywać do Anthropic nazwy narzędzi z zewnętrznych frameworków bez zmian na obu ścieżkach prowadzących do Anthropic (natywne OAuth i CLIProxyAPI). Domyślnie executor deterministycznie nadaje aliasy nazwom narzędzi spoza Claude Code (używając kanonicznego mapowania Claude Code, jeśli istnieje, a w przeciwnym razie PascalCase) i przywraca je w odpowiedzi za pomocą _toolNameMap, dzięki czemu frameworki z narzędziami nazwanymi w konwencji snake_case nie są odrzucane jako rozpoznane po sygnaturze klienty zewnętrzne. Tylko do debugowania.
CODEX_USER_AGENT codex-cli/0.142.0 (Windows 10.0.26200; x64) Gdy OpenAI zaktualizuje Codex CLI
CODEX_CLIENT_VERSION 0.131.0 Nadpisz wersję klienta Codex niezależnie od pełnego ciągu UA
CLAUDE_CODE_CLIENT_VERSION 2.1.258 Nadpisz reklamowaną wersję Claude Code niezależnie od CLAUDE_USER_AGENT. Anthropic ogranicza dostęp do niektórych modeli na podstawie tej wartości (#12417).
GITHUB_COPILOT_CLI_VERSION 1.0.81-6 Nadpisz reklamowaną wersję Copilot CLI niezależnie od GITHUB_USER_AGENT
GITHUB_USER_AGENT GitHubCopilotChat/0.54.0 Gdy GitHub Copilot Chat zostanie zaktualizowany
ANTIGRAVITY_USER_AGENT antigravity/2.0.1 darwin/arm64 Gdy Antigravity IDE zostanie zaktualizowane
KIRO_USER_AGENT AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 Gdy Kiro IDE zostanie zaktualizowane
KIRO_OAUTH_CLIENT_ID kiro-cli Nadpisz clientId (identyfikator publiczny) używany przez Kiro w społecznościowym przepływie kodu urządzenia
KIRO_VERIFY_FULL_CRC false Opcjonalnie: pełna walidacja CRC każdej ramki w strumieniu zdarzeń Kiro (debugowanie uszkodzonych strumieni)
QODER_USER_AGENT Qoder-Cli Gdy Qoder CLI zostanie zaktualizowane
CURSOR_USER_AGENT Cursor/3.3 Gdy Cursor zostanie zaktualizowany

Tip

Możesz dodać nadpisania User-Agent dla dowolnego dostawcy, używając wzorca {PROVIDER_ID}_USER_AGENT. Executor dynamicznie konstruuje nazwę zmiennej środowiskowej.


13. Zgodność odcisku palca CLI

Po włączeniu OmniRoute zmienia kolejność nagłówków HTTP i pól treści JSON, aby odpowiadały dokładnej sygnaturze oficjalnych narzędzi CLI. Zmniejsza to ryzyko oznaczenia konta, zachowując jednocześnie adres IP serwera proxy.

Źródło: open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts

Dla poszczególnych dostawców

Zmienna Aktywacja Efekt
CLI_COMPAT_CODEX =1 Naśladuje sygnaturę żądań Codex CLI
CLI_COMPAT_CLAUDE =1 Naśladuje sygnaturę żądań Claude Code
CLI_COMPAT_GITHUB =1 Naśladuje sygnaturę żądań GitHub Copilot
CLI_COMPAT_ANTIGRAVITY =1 Naśladuje sygnaturę żądań Antigravity
CLI_COMPAT_CURSOR =1 Naśladuje sygnaturę żądań Cursor
CLI_COMPAT_KIMI_CODING =1 Naśladuje sygnaturę żądań Kimi Coding
CLI_COMPAT_KILOCODE =1 Naśladuje sygnaturę żądań Kilo Code
CLI_COMPAT_CLINE =1 Naśladuje sygnaturę żądań Cline

Globalnie

Zmienna Aktywacja Efekt
CLI_COMPAT_ALL =1 Włącza zgodność odcisku palca dla wszystkich dostawców jednocześnie.

Nadpisywanie tożsamości Kimi Coding CLI

Zmienna Wartość domyślna Plik źródłowy Opis
KIMI_CLI_VERSION 1.36.0 src/lib/oauth/providers/kimi-coding.ts Nadpisuje wersję Kimi CLI wysyłaną podczas wywołań OAuth/API.
KIMI_CODING_DEVICE_ID (przechwyślona wartość domyślna) src/lib/oauth/providers/kimi-coding.ts Nadpisuje przechwycony identyfikator urządzenia Kimi używany w nagłówkach klienta.

Note

Ta funkcja działa równolegle z nadpisywaniem User-Agent (§12). System odcisków palca obsługuje kolejność nagłówków i pól treści, natomiast nadpisywanie User-Agent odpowiada za konkretny ciąg UA. Obie funkcje można włączać niezależnie.


14. Dostawcy korzystający z kluczy API

Klucze API dla dostawców korzystających z uwierzytelniania bezpośredniego. Preferowana konfiguracja: Panel → Dostawcy → Dodaj klucz API.

Ustawienie za pomocą zmiennych środowiskowych stanowi alternatywę dla wdrożeń Docker lub bez interfejsu graficznego.

Rozpoznawany wzorzec: {PROVIDER_ID}_API_KEY

Zmienna Dostawca
DEEPSEEK_API_KEY DeepSeek
NVIDIA_API_KEY NVIDIA NIM
JINA_AI_API_KEY Jina AI (Foundation API + rezerwowy Reader)
JINA_API_KEY Jina AI (alias dla JINA_AI_API_KEY)
GEMINI_API_KEY Gemini (Google AI Studio) — osadzanie + rezerwowy czat
GOOGLE_API_KEY Gemini (alias dla GEMINI_API_KEY)

Note

Statyczne wpisy ${PROVIDER}_API_KEY dla Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius i Qianfan zostały usunięte w wersji v3.8.0, ponieważ środowisko wykonawcze już ich nie odczytuje — ci dostawcy korzystają wyłącznie z Panelu / data/provider-credentials.json / szyfrowanej bazy danych. Ścieżkę migracji opisano w sekcji Audyt: usunięte / nieużywane zmienne na końcu tego dokumentu.

Tip

Klucze ustawione za pomocą Panelu są przechowywane w postaci zaszyfrowanej w SQLite i mają pierwszeństwo przed zmiennymi środowiskowymi.

Jina: osadzanie jina-ai/…, ponowne porządkowanie, klasyfikacja, segmentacja i jina-search nie obciążają kosztami klucza środowiskowego klastra, gdy istnieje połączenie jina-ai (lub współdzielone jina-reader) skonfigurowane w panelu — getProviderCredentials uzupełnia dane według zasady „pierwsza dostępna wartość”. JINA_AI_API_KEY / JINA_API_KEY są używane tylko wtedy, gdy nie istnieje użyteczny klucz z panelu. Dzienniki wywołań przypisują rezerwową wartość ze środowiska jako connection_id=env:JINA_AI_API_KEY. Karta Reader (jina-reader, r.jina.ai) nigdy nie obsługuje /v1/embeddings ani /v1/rerank.

Gemini: gemini/gemini-embedding-2 (alias google/gemini-embedding-2) najpierw korzysta z połączenia gemini skonfigurowanego w panelu. GEMINI_API_KEY / GOOGLE_API_KEY są używane tylko wtedy, gdy nie istnieje użyteczny klucz z panelu. Dzienniki wywołań przypisują rezerwową wartość ze środowiska jako connection_id=env:GEMINI_API_KEY. Natywny ruch multimodalny używa x-goog-api-key względem :embedContent / :batchEmbedContents — N elementów OpenAI input daje N wektorów.


15. Ustawienia limitów czasu

Wszystkie wartości są podawane w milisekundach. Scentralizowane ustalanie wartości znajduje się w src/shared/utils/runtimeTimeouts.ts.

Hierarchia limitów czasu

REQUEST_TIMEOUT_MS (globalne nadpisanie)
├─→ FETCH_TIMEOUT_MS (wywołania zewnętrznych dostawców, domyślnie: 600000)
│   ├─→ FETCH_HEADERS_TIMEOUT_MS (dziedziczy z FETCH_TIMEOUT_MS)
│   ├─→ FETCH_BODY_TIMEOUT_MS (dziedziczy z FETCH_TIMEOUT_MS)
│   ├─→ TLS_CLIENT_TIMEOUT_MS (dziedziczy z FETCH_TIMEOUT_MS)
│   │   └── TLS_FIRST_BYTE_WATCHDOG_MS (niezależny, domyślnie: 10000)
│   ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (niezależny, domyślnie: 15000)
│   ├── FETCH_CONNECT_TIMEOUT_MS (niezależny, domyślnie: 30000)
│   └── FETCH_KEEPALIVE_TIMEOUT_MS (niezależny, domyślnie: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (dziedziczy z REQUEST_TIMEOUT_MS, domyślnie: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (niezależny, domyślnie: 1260000; 0 wyłącza)
├─→ STREAM_READINESS_TIMEOUT_MS (dziedziczy z REQUEST_TIMEOUT_MS, domyślnie: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (ogranicza adaptacyjne wydłużenia czasu oczekiwania na gotowość, domyślnie: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (dziedziczy z REQUEST_TIMEOUT_MS, domyślnie: 30000)
    ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (wartość wyliczana, domyślnie: 300000)
    ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (domyślnie: 60000)
    ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (domyślnie: 5000)
    └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (domyślnie: 0 = wyłączony)
Zmienna Wartość domyślna Opis
REQUEST_TIMEOUT_MS (nie ustawiono) Globalny skrót — zastępuje wartości domyślne zarówno FETCH_TIMEOUT_MS, jak i STREAM_IDLE_TIMEOUT_MS.
FETCH_TIMEOUT_MS 600000 Całkowity limit czasu żądania HTTP dla wywołań dostawcy nadrzędnego.
STREAM_IDLE_TIMEOUT_MS 600000 Maksymalny czas ciszy między nieprzetworzonymi bajtami od dostawcy nadrzędnego, po którym następuje przerwanie. Modele z rozszerzonym rozumowaniem rzadko wstrzymują przesyłanie na >90 s.
STREAM_ACTIVE_TIMEOUT_MS 1260000 Maksymalny całkowity czas trwania aktywnego strumienia SSE; nigdy nie jest resetowany przez bajty od dostawcy nadrzędnego i jest niezależny od REQUEST_TIMEOUT_MS. Wyznaczony na podstawie największej wartości timeoutMs dla modelu w rejestrze (1200000, Codex) z dodatkowym marginesem 60000, dzięki czemu model, któremu pozwolono wykorzystać pełny budżet czasu, nigdy nie zostanie przerwany w trakcie odpowiedzi. Ustaw 0, aby wyłączyć.
OMNIROUTE_SSE_COMMENTS (wyłączone) Określa, czy OmniRoute może emitować wiersze komentarzy SSE : (np. puls : keepalive i końcowe metadane x-omniroute-*). Domyślnie wyłączone (#10524), ponieważ rygorystyczni klienci zgodni z OpenAI wykonują JSON.parse dla każdego wiersza SSE i ulegają awarii w przypadku komentarzy :; nie wpływa to na komunikaty pulsu data:. Ustaw on/true/1/yes, aby ponownie włączyć. Używane przez open-sse/utils/sseHeartbeat.ts.
STREAM_READINESS_TIMEOUT_MS 80000 Czas oczekiwania na pierwsze zdarzenie SSE inne niż ping. Dziedziczy REQUEST_TIMEOUT_MS, gdy ta zmienna jest ustawiona.
STREAM_READINESS_MAX_TIMEOUT_MS 180000 Maksymalne adaptacyjne okno gotowości na pierwsze zdarzenie dla dużych żądań strumieniowych, intensywnie korzystających z narzędzi lub wymagających zaawansowanego rozumowania.
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED true Wyłącznik awaryjny heurystyki /goal. Ustaw false/0/off, aby całkowicie wyłączyć wykrywanie — limity czasu gotowości i odzyskiwanie strumienia nigdy nie są zwiększane na podstawie treści żądania/nagłówków, co ogranicza kontrolowane przez klienta zwiększanie limitu czasu.
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS 600000 Maksymalne okno gotowości na pierwsze zdarzenie dla wykrytych uruchomień agenta /goal lub żądań wymuszonych za pomocą x-omniroute-agent-goal.
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY true Automatycznie włącza wczesne odzyskiwanie strumienia dla wykrytych uruchomień agenta /goal. Ustaw false/0/off, aby wyłączyć opcję specyficzną dla celu. Może to jedynie DODAĆ odzyskiwanie ponad domyślną konfigurację operatora — nigdy nie zastępuje jawnego wyłączenia w ustawieniach STREAM_RECOVERY_ENABLED/bazy danych.
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS true Usuwa niestandardowe zdarzenia SSE codex.* (np. codex.rate_limits), które powodują błąd 502 w responses.stream() zestawu OpenAI SDK. Domyślnie WŁĄCZONE (#11014). Ustaw 0/false/no/off, aby je przekazywać.
OMNIROUTE_CODEX_APPSERVER_WS (nie ustawiono) Opcjonalny transport serwera aplikacji Codex. Punkt końcowy WebSocket (ws:///wss://) lokalnego procesu pomocniczego codex app-server. Gdy jest ustawiony razem z tokenem, żądania Codex są kierowane przez JSON-RPC do procesu pomocniczego zamiast do interfejsu HTTP Responses API. Można go również ustawić dla poszczególnych połączeń za pomocą providerSpecificData.codexAppServerUrl. Używane przez open-sse/executors/codex/appServerConfig.ts.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN (nie ustawiono) Token uprawnień/bearer podawany bezpośrednio serwerowi aplikacji. Nadpisanie dla poszczególnych połączeń: providerSpecificData.codexAppServerToken.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE (nie ustawiono) Ścieżka do pliku zawierającego token uprawnień serwera aplikacji (z codex app-server --ws-token-file). Używana, gdy OMNIROUTE_CODEX_APPSERVER_WS_TOKEN nie jest ustawiona. Nadpisanie dla poszczególnych połączeń: providerSpecificData.codexAppServerTokenFile.
OMNIROUTE_CODEX_APPSERVER_CWD /tmp Katalog roboczy, w którym wykonywana jest tura serwera aplikacji. Nadpisanie dla poszczególnych połączeń: providerSpecificData.codexAppServerCwd.
OMNIROUTE_CODEX_APPSERVER_APPROVAL (nie ustawiono) Zasady zatwierdzania przekazywane do tury serwera aplikacji (np. never, on-request). Nadpisanie dla poszczególnych połączeń: providerSpecificData.codexAppServerApprovalPolicy.
OMNIROUTE_CODEX_APPSERVER_SANDBOX (nie ustawiono) Zasady piaskownicy przekazywane do tury serwera aplikacji (np. read-only, workspace-write, danger-full-access). Gdy nie są ustawione, moduł wykonawczy używa domyślnie workspace-write (wzmocnione zabezpieczenia; wcześniej danger-full-access). Nadpisanie dla poszczególnych połączeń: providerSpecificData.codexAppServerSandbox.
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE false Automatycznie zatwierdza własne monity serwera aplikacji dotyczące zatwierdzenia (wykonywanie poleceń/operacji na plikach/uprawnieniach na hoście). Domyślnie wyłączone — monity są automatycznie odrzucane; nie wpływa to na wywołania narzędzi środowiska testowego (przechodzą one przez oddzielny mechanizm przekazywania item/tool/call). Akceptuje true/1/yes. Nadpisanie dla poszczególnych połączeń: providerSpecificData.codexAppServerAutoApprove.
FETCH_HEADERS_TIMEOUT_MS = FETCH_TIMEOUT_MS Czas oczekiwania na otrzymanie nagłówków odpowiedzi.
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS 30000 (30 s) Maksymalny czas oczekiwania na rozpoczęcie odpowiedzi (ms) dla każdej bezpośredniej próby bez serwera proxy. Po przekroczeniu limitu czasu następuje jedna ponowna próba z użyciem nowego gniazda; ustaw 0, aby wyłączyć limit i zachować poprzednie działanie.
FETCH_BODY_TIMEOUT_MS = FETCH_TIMEOUT_MS Czas na odebranie pełnej treści odpowiedzi.
FETCH_CONNECT_TIMEOUT_MS 30000 Limit czasu na ustanowienie połączenia TCP.
FETCH_KEEPALIVE_TIMEOUT_MS 4000 Limit czasu bezczynności gniazda keep-alive.
TLS_CLIENT_TIMEOUT_MS = FETCH_TIMEOUT_MS Limit czasu serwera proxy odcisku TLS (wreq-js).
TLS_FIRST_BYTE_WATCHDOG_MS 10000 Ogranicza czas oczekiwania konkretnie na pierwszy bajt treści w transporcie odcisku TLS wreq-js; sam TLS_CLIENT_TIMEOUT_MS nie może wykryć zablokowanej treści, ponieważ kończy się, gdy tylko nadejdą nagłówki (#12656). Przekroczenie limitu czasu anuluje czytnik wreq i przełącza się na dyspozytor bezpośredni/proxy; 0 wyłącza mechanizm nadzorczy.
RESPONSES_FIRST_BYTE_TIMEOUT_MS 15000 Tylko dla wykonawcy OpenCode i wyłącznie wtedy, gdy flaga funkcji OPENCODE_RESPONSES_STALL_ROTATION jest włączona (domyślnie wyłączona): ogranicza czas oczekiwania na pierwszy bajt treści strumieniowej odpowiedzi Responses po otrzymaniu jej nagłówków (#13484). Strumień Responses rozpoczyna się od response.created, dlatego brak danych po upływie tego czasu oznacza zablokowanie: konto otrzymuje okres karencji, a żądanie jest jednokrotnie przekierowywane do następnego konta; drugie zablokowanie powoduje natychmiastowe niepowodzenie. 0 wyłącza zabezpieczenie nawet przy włączonej fladze.
API_BRIDGE_PROXY_TIMEOUT_MS 30000 Limit czasu przejścia przez serwer proxy dla żądań mostu /v1.
FIRECRAWL_BASE_URL https://api.firecrawl.dev Kieruje wykonawcę pobierania zasobów internetowych Firecrawl do samodzielnie hostowanej instancji (poza chmurą klucz API jest opcjonalny).
FIRECRAWL_TIMEOUT_MS 30000 Limit czasu dla pojedynczego żądania wykonawcy pobierania zasobów internetowych Firecrawl.
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS 300000 Całkowity limit czasu żądania serwera dla mostu.
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS 60000 Czas na wysłanie nagłówków odpowiedzi przez most.
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS 5000 Limit czasu bezczynności połączenia keep-alive mostu.
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS 0 Limit czasu surowego gniazda (0 = wyłączony).
SHUTDOWN_TIMEOUT_MS 30000 Okres karencji po SIGTERM/SIGINT przed wymuszonym zakończeniem.
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS 120000 Wartość zastępcza używana przez src/shared/utils/fetchTimeout.ts, gdy FETCH_TIMEOUT_MS nie jest ustawiona.
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS 8000 Limit czasu (ms) dla ustawień wstępnych validationRead i modelsProbe w src/shared/network/safeOutboundFetch.ts. Zwiększ go dla wolnych punktów końcowych (Cerebras, Cloudflare AI, Groq), aby zapobiec naprzemiennemu przełączaniu stanu aktywny/błąd w panelu. W przypadku nieprawidłowych (<1000) lub nienumerycznych wartości używana jest wartość zastępcza 8000 ms.
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS 25000 Limit czasu pobierania specyficzny dla przekaźnika w open-sse/utils/proxyFetch.ts (#9158). Zawieszony przekaźnik musi zgłosić błąd przed upływem limitu czasu klienta/agenta (~30 s), aby wywołujący otrzymali błąd specyficzny dla przekaźnika zamiast ogólnego błędu limitu czasu usługi nadrzędnej. Ograniczony do 29000, aby zawsze zadziałał jako pierwszy.
OMNIROUTE_RETRY_BACKOFF_MS 10 Wspólne opóźnienie ponownej próby dla ścieżek bezpośrednich/przekaźnika/proxy z pojedynczą ponowną próbą w open-sse/utils/proxyFetch.ts (#9158). 0 = natychmiastowa ponowna próba.
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS 60000 Natywny limit czasu żądania wreq-js (claudeTlsClient.ts).
OMNIROUTE_CLAUDE_TLS_GRACE_MS 10000 Bezwzględny dodatkowy czas do ostatecznego terminu JS, dodawany do natywnego limitu czasu.
OMNIROUTE_PPLX_TLS_TIMEOUT_MS 30000 Natywny limit czasu żądania wreq-js (perplexityTlsClient.ts).
OMNIROUTE_PPLX_TLS_GRACE_MS 10000 Bezwzględny dodatkowy czas do ostatecznego terminu JS, dodawany do natywnego limitu czasu.
OMNIROUTE_PPLX_SEARCH_HINT 0 (wyłączone) Dołącza tekst „You have built-in web search. Answer questions directly using search results.” do komunikatu systemowego wywołującego (perplexity-web/protocol.ts). Domyślnie wyłączone — Perplexity i tak przeprowadza wyszukiwanie, a zdanie przenika do odpowiedzi jako metakomentarz dla klientów programistycznych. Ustaw 1/true/yes/on, aby przywrócić.
OMNIROUTE_GROK_TLS_TIMEOUT_MS 60000 Limit czasu natywnego żądania wreq-js (grokTlsClient.ts).
OMNIROUTE_GROK_TLS_GRACE_MS 10000 Bezwzględny zapas czasu dla twardego terminu JS, dodawany do natywnego limitu czasu.
OMNIROUTE_NOTION_TLS_TIMEOUT_MS 30000 Limit czasu natywnego żądania wreq-js (notionTlsClient.ts); notion-web zwiększa go dla poszczególnych żądań do 180000 na potrzeby długich generacji.
OMNIROUTE_NOTION_TLS_GRACE_MS 10000 Bezwzględny zapas czasu dla twardego terminu JS, dodawany do natywnego limitu czasu.
OMNIROUTE_BROWSER_POOL on Współdzielona pula przeglądarek Playwright dla czatu wykorzystującego internetowe pliki cookie i obsługiwanego przez przeglądarkę (browserPool.ts); ustaw off, aby wyłączyć.
OBSCURA_BIN auto-detect Ścieżka do pliku binarnego obscura używanego jako główny silnik przez pulę przeglądarek i moduł wykonawczy Cloudflare Playground (open-sse/services/obscura.ts); gdy nie ustawiono, wykrywany automatycznie w systemowej zmiennej PATH.
OBSCURA_CDP_ENDPOINT (nieustawione) Wskazuje już działającą instancję Obscura (http://host:port) zamiast uruchamiania nowej; moduł nie zarządza tym procesem (open-sse/services/obscura.ts).
OBSCURA_PORT losowy wolny port Jawnie określony port dla uruchamianego polecenia obscura serve; gdy nie ustawiono, wolny port jest wybierany automatycznie (open-sse/services/obscura.ts).
WEB_COOKIE_USE_BROWSER 0 Kieruje żądanie czatu wykorzystującego internetowe pliki cookie do ścieżki obsługiwanej przez przeglądarkę (browserBackedChat.ts); ustaw 1, aby włączyć.
KIMI_WEB_BASE_URL https://www.kimi.ai Bazowy adres URL modułu wykonawczego Kimi Web (międzynarodowy kimi.ai Connect-RPC) (kimi-web.ts); zastępuj tylko w przypadku punktów końcowych kopii lustrzanych/proxy.
KIMI_WEB_CHAT_URL <KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat Pełny punkt końcowy czatu dla modułu wykonawczego Kimi Web (kimi-web.ts).
OMNIROUTE_LOGIN_BROWSER_PATH (wykrywane automatycznie) Ścieżka do systemowego pliku wykonywalnego Chrome/Edge na potrzeby interaktywnego logowania przez przeglądarkę w Adobe Firefly (adobeFireflyBrowserLogin.ts); zastępuje automatyczne wykrywanie właściwe dla danego systemu operacyjnego.
OMNIROUTE_STANDALONE_DIR wynik samodzielnej kompilacji w .build/ Nadpisanie na etapie kompilacji katalogu wyjściowego samodzielnej kompilacji, używanego przez pokompilacyjny krok kolokacji (scripts/build/colocate-standalone.mjs); narzędzie kompilacji, a nie środowisko uruchomieniowe.

Próby celu combo dziedziczą ustalony limit czasu żądania upstream (FETCH_TIMEOUT_MS lub REQUEST_TIMEOUT_MS, gdy określa domyślną wartość pobierania). Ustaw targetTimeoutMs w combo, wartościach domyślnych combo lub nadpisaniu dostawcy tylko po to, aby przyspieszyć przełączanie awaryjne combo; wartości przekraczające bieżący limit czasu upstream są ograniczane do limitu czasu upstream.

comboTimeoutMs to oddzielny, całkowity budżet czasu zegarowego dla całego combo obejmujący cele przełączania awaryjnego. Pozostaw go nieustawionego lub ustaw na 0, aby zachować nieograniczoną iterację (10-minutowy mechanizm zatrzymujący zawieszenie COMBO_LOOP_SAFETY_TIMEOUT_MS nadal obowiązuje). Wartość dodatnia zastępuje ten mechanizm zabezpieczający dla combo. Ustaw comboTimeoutMs na wartość większą niż targetTimeoutMs, aby po powolnym pierwszym celu nadal pozostał czas na przełączenie awaryjne.

Progi wyłącznika obwodu

Dostrajanie wyłącznika obwodu na poziomie dostawcy. Wartości domyślne odzwierciedlają przeskalowane wartości używane od wersji v3.6 dla ponad 500 połączeń.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD 8 open-sse/config/constants.ts Próg kolejnych niepowodzeń dostawców OAuth, po którego przekroczeniu wyłącznik zostaje otwarty.
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS 60000 open-sse/config/constants.ts Okno resetowania (ms) wyłącznika dostawcy OAuth.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD 12 open-sse/config/constants.ts Próg kolejnych niepowodzeń dostawców używających klucza API.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS 30000 open-sse/config/constants.ts Okno resetowania (ms) wyłącznika dostawcy używającego klucza API.
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD 2 open-sse/config/constants.ts Próg kolejnych niepowodzeń dostawców lokalnych (Ollama, LM Studio, ...).
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS 15000 open-sse/config/constants.ts Okno resetowania (ms) wyłącznika dostawcy lokalnego.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD 10 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: liczba niepowodzeń w oknie, po której cały dostawca OAuth przechodzi w okres schładzania.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS 900000 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: kroczące okno zliczania niepowodzeń (ms) dla dostawców OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS 300000 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: okres schładzania (ms) po osiągnięciu progu dostawcy OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD 5 open-sse/config/constants.ts Dostawca OAuth przechodzi w stan DEGRADED po tej liczbie niepowodzeń.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER 8 open-sse/config/constants.ts Maksymalny mnożnik zwiększania wartości resetTimeout dla dostawcy OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT 2 open-sse/config/constants.ts Dostawca OAuth zwiększa opóźnienie po tej liczbie cykli otwarcia.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD 15 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: liczba niepowodzeń w oknie, po której cały dostawca używający klucza API przechodzi w okres schładzania.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS 1800000 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: kroczące okno zliczania niepowodzeń (ms) dla dostawców używających klucza API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS 600000 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: okres schładzania (ms) po osiągnięciu progu dostawcy używającego klucza API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD 7 open-sse/config/constants.ts Dostawca używający klucza API przechodzi w stan DEGRADED po tej liczbie niepowodzeń.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER 4 open-sse/config/constants.ts Maksymalny mnożnik zwiększania wartości resetTimeout dla dostawcy używającego klucza API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT 3 open-sse/config/constants.ts Dostawca używający klucza API zwiększa opóźnienie po tej liczbie cykli otwarcia.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD 2 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: liczba niepowodzeń, po której cały dostawca lokalny przechodzi w okres schładzania.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS 300000 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: kroczące okno zliczania niepowodzeń (ms) dla dostawców lokalnych.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS 60000 open-sse/config/constants.ts Wyłącznik na poziomie dostawcy: okres schładzania (ms) po osiągnięciu progu dostawcy lokalnego.
PIN_DROP_BACKOFF_LEVEL 2 open-sse/services/combo.ts Poziom opóźnienia, przy którym dostawca przypięty do pamięci podręcznej kontekstu jest uznawany za trwale niedostępnego, a przypięcie zostaje usunięte w celu przełączenia awaryjnego.
PIN_DROP_GRACE_MS 20000 open-sse/services/combo.ts Okno zapobiegające fluktuacjom (ms), które toleruje krótkie, przejściowe okresy schładzania przed usunięciem przypięcia do pamięci podręcznej kontekstu.

Scenariusze

Scenariusz Konfiguracja
Długotrwałe generowanie kodu REQUEST_TIMEOUT_MS=900000 (15 min)
Ograniczenie całkowitego czasu strumienia STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 min)
Szybkie niepowodzenie produkcyjnego API API_BRIDGE_PROXY_TIMEOUT_MS=10000
Modele z rozszerzonym rozumowaniem STREAM_IDLE_TIMEOUT_MS=300000 (5 min między fragmentami)

16. Rejestrowanie

System rejestrowania zapisuje dane zarówno na standardowe wyjście (stdout), jak i do rotowanych plików dziennika. Cała konfiguracja jest odczytywana przez src/lib/logEnv.ts.

Zmienna Wartość domyślna Opis
APP_LOG_LEVEL info Minimalny poziom rejestrowania: debug, info, warn, error.
APP_LOG_FORMAT text Format wyjściowy: text (czytelny dla człowieka) lub json (ustrukturyzowany).
APP_LOG_TO_FILE true Zapisywanie dzienników do pliku równolegle ze standardowym wyjściem (stdout).
APP_LOG_FILE_PATH logs/application/app.log Ścieżka pliku dziennika (względem katalogu głównego projektu lub DATA_DIR).
APP_LOG_MAX_FILE_SIZE 50M Maksymalny rozmiar pliku przed rotacją. Akceptowane wartości: 50M, 1G, 512K lub liczba bajtów.
APP_LOG_RETENTION_DAYS 7 Liczba dni przechowywania rotowanych plików dziennika aplikacji.
APP_LOG_MAX_FILES 20 Maksymalna liczba kopii zapasowych rotowanych plików dziennika.
CALL_LOG_RETENTION_DAYS 7 Liczba dni przechowywania wpisów dziennika żądań/wywołań w bazie danych.
CALL_LOG_MAX_ENTRIES 10000 Maksymalna liczba wpisów dziennika wywołań w buforze pamięci.
CALL_LOGS_TABLE_MAX_ROWS 100000 Maksymalna liczba wierszy w tabeli SQLite call_logs przed jej oczyszczeniem.
ENABLE_REQUEST_LOGS (nieustawiona) Wymuszenie włączenia lub wyłączenia szczegółowego rejestrowania żądań, z pominięciem ustawienia w panelu.
MAX_PENDING_REQUEST_AGE_MS 3600000 (1 godzina) Maksymalny wiek osieroconych wpisów dziennika aktywnych żądań przed usunięciem ich z pamięci.
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS false Przechowywanie fragmentów strumienia w artefaktach potoku, gdy call_log_pipeline_enabled=true. Opcjonalne (true) — domyślnie wyłączone w celu oszczędzania miejsca na dysku.
CALL_LOG_PIPELINE_MAX_SIZE_KB 512 Maksymalny rozmiar artefaktu dziennika wywołań potoku w KB, gdy call_log_pipeline_enabled=true.
PROXY_LOGS_TABLE_MAX_ROWS 100000 Maksymalna liczba wierszy w tabeli SQLite proxy_logs przed jej oczyszczeniem.
PROXY_LOG_INCLUDE_IPS false Uwzględnianie adresów IP klienta/ruchu wychodzącego oraz prefiksów kont w dziennikach konsoli [ProxyEgress]. Rekordy dziennika proxy w panelu/bazie danych zachowują pełne szczegóły.
APP_LOG_ROTATION_CHECK_INTERVAL_MS 60000 (1 min) Częstotliwość ponownego sprawdzania rozmiaru aktywnego pliku dziennika przez src/lib/logRotation.ts.
CHAT_LOG_TEXT_LIMIT 65536 Maksymalna długość ciągu znaków zachowywanego w artefaktach dziennika czatu (domyślnie 64 KB).
CHAT_LOG_ARRAY_TAIL_ITEMS 128 Liczba elementów tablicy zachowywanych od końca podczas skracania ładunków dziennika czatu.
CHAT_LOG_MAX_DEPTH 6 Maksymalna głębokość zagnieżdżenia, po której ładunki dziennika czatu są skracane.
CHAT_LOG_MAX_OBJECT_KEYS 80 Maksymalna liczba kluczy obiektu zachowywanych w ładunkach dziennika czatu (0 = bez ograniczeń).
CHAT_LOG_MAX_BODY_KB 1024 Rozmiar całej treści żądania/odpowiedzi (KB), po którego przekroczeniu pełna kopia jest zastępowana uproszczonym podsumowaniem. Zwiększ tę wartość, jeśli w przypadku długich konwersacji agentowych panel wyświetla symbol zastępczy zamiast rzeczywistych wiadomości.
CHAT_DEBUG_FILE false Gdy ustawiono true, funkcja serializeArtifactForStorage pomija skracanie na podstawie rozmiaru. Tylko do debugowania.

17. Optymalizacja pamięci

Zmienna Wartość domyślna Opis
OMNIROUTE_MEMORY_MB auto (bezpośrednio na sprzęcie); 1024 w obrazie Docker Zalecany limit sterty V8 (MB) dla środowiska Docker/trybu autonomicznego. Gdy nie jest ustawiony, jest dynamicznie kalibrowany (~35% pamięci RAM systemu, ograniczone do zakresu [512, 4096]); 512 stanowi jedynie dolną granicę, gdy nie można odczytać całkowitej pamięci. W przypadku run-standalone.mjs (Docker CMD) jawnie podana wartość jest dołączana jako --max-old-space-size i ma pierwszeństwo przed kolidującą flagą sterty w NODE_OPTIONS (V8 stosuje ostatnią flagę). omniroute serve nadal preferuje istniejącą flagę sterty w NODE_OPTIONS (#5238). Nie ustawiaj obu na różne wartości — proces zapisze ostrzeżenie wskazujące obie wartości oraz zwycięską. Oficjalny obraz Docker zawsze ustawia 1024, więc kalibracja nigdy nie jest w nim wykonywana. /v1/responses agenta programistycznego wymaga 819212288 oraz zapasu dla cgroup — zobacz Przewodnik po Dockerze — pamięć RAM środowiska uruchomieniowego.
PROMPT_CACHE_MAX_SIZE 50 Maksymalna liczba buforowanych wpisów promptów systemowych.
PROMPT_CACHE_MAX_BYTES 2097152 (2 MB) Maksymalny całkowity rozmiar pamięci podręcznej promptów.
PROMPT_CACHE_TTL_MS 300000 (5 min) Czas TTL wpisu w pamięci podręcznej promptów.
SEMANTIC_CACHE_MAX_SIZE 100 Maksymalna liczba buforowanych odpowiedzi z temperature=0.
SEMANTIC_CACHE_MAX_BYTES 4194304 (4 MB) Maksymalny całkowity rozmiar semantycznej pamięci podręcznej.
SEMANTIC_CACHE_TTL_MS 1800000 (30 min) Czas TTL wpisu w semantycznej pamięci podręcznej.
OMNIROUTE_CORPUS_CACHE_SIZE 5 Katalogi główne lokalnych korpusów, których indeksy są jednocześnie przechowywane w pamięci (src/lib/localCorpus/configured.ts). LRU: po osiągnięciu limitu indeks najdawniej używanego katalogu głównego jest usuwany i odbudowywany przy następnym zapytaniu. Wartość jest ograniczana do minimum 1; wartość nienumeryczna powoduje użycie wartości domyślnej.
STREAM_HISTORY_MAX 50 Maksymalna liczba ostatnich zdarzeń strumienia w buforze widoku na żywo panelu.
CONTEXT_LENGTH_DEFAULT 128000 Globalna zastępcza maksymalna długość kontekstu dla modeli bez jawnej konfiguracji.
USAGE_TOKEN_BUFFER 100 Dodatkowy zapas tokenów rezerwowany podczas śledzenia limitów użycia.

Kompresja

Zmienna Wartość domyślna Opis
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS nie ustawiono Ufaj plikowi .rtk/filters.json projektu bez skrótu .rtk/trust.json. Używaj wyłącznie w kontrolowanym lokalnym środowisku programistycznym.

Silnik pamięci (plan 21)

Koszt pamięci, umiejętności i odświeżania tokenów dla pętli zdarzeń (#10349)

OmniRoute jest pojedynczym procesem Node. Wyodrębnianie i pobieranie pamięci, wstrzykiwanie umiejętności oraz odświeżanie tokenów dostawcy działają w tej samej pętli zdarzeń co GET /healthz i panel. Nie są osobnym wątkiem roboczym.

Działanie Kod Domyślnie Kontrola operatora
Ekstrakcja / pobieranie pamięci src/lib/memory/ memoryEnabled w panelu (domyślnie włączone) Wyłącz Ustawienia → Pamięć. Poza wyłączeniem funkcji w ustawieniach nie ma osobnego przełącznika awaryjnego w zmiennych środowiskowych.
Wstrzykiwanie umiejętności src/lib/skills/injection.ts skillsEnabled w panelu (domyślnie włączone) Wyłącz Ustawienia → Pamięć/Umiejętności (skillsEnabled). Poniższe ustawienia piaskownicy jedynie ograniczają wykonywanie po wcześniejszym włączeniu wstrzykiwania.
Odświeżanie tokenów src/sse/services/tokenRefresh.ts Włączone dla połączonych dostawców OAuth/internetowych Odłącz dostawcę lub pozwól tokenom zachować ważność; obecnie nie ma zmiennej środowiskowej TOKEN_REFRESH=0.

Jeśli /healthz działa wolno na nieobciążonym hoście, najpierw wyłącz pamięć i umiejętności, a następnie sprawdź obciążenie katalogu/kompresji (#10303, #9685). Te funkcje oddają sterowanie w punktach await, ale nadal konkurują o jedyny wątek.

Ustawienia warstwy osadzania, magazynu wektorowego i ponownego rankingowania dla podsystemu trwałej pamięci (src/lib/memory/).

Zmienna Wartość domyślna Opis
MEMORY_EMBEDDING_CACHE_TTL_MS 300000 (5 min) TTL pamięci podręcznej osadzeń w pamięci operacyjnej (dla każdej sygnatury źródła/modelu/wymiaru).
MEMORY_EMBEDDING_CACHE_MAX 1000 Maksymalna liczba wpisów LRU przechowywanych w pamięci podręcznej osadzeń.
MEMORY_TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 Identyfikator repozytorium HF dla opcjonalnego lokalnego potoku MiniLM @huggingface/transformers (~23 MB int8, ~400 MB RAM).
MEMORY_STATIC_MODEL minishlab/potion-base-8M Identyfikator repozytorium HF dla statycznego modelu osadzającego potion/Model2Vec opartego na tabeli wyszukiwania. Pobierany leniwie do katalogu pamięci podręcznej.
MEMORY_STATIC_CACHE_DIR <DATA_DIR>/embeddings Katalog używany do buforowania plików statycznego modelu potion. Jeśli nie ustawiono, domyślnie znajduje się w DATA_DIR.
HF_HUB_ENDPOINT https://huggingface.co Zastępuje bazowy adres URL Hugging Face Hub używany przez staticPotion.ts (np. punkt końcowy serwera lustrzanego dla środowisk bez dostępu do sieci).
MEMORY_VEC_TOP_K 20 Domyślna wartość top-K używana przez siłowe wyszukiwanie wektorowe sqlite-vec w src/lib/memory/vectorStore.ts.
MEMORY_RRF_K 60 Stała k algorytmu Reciprocal Rank Fusion dla hybrydowego pobierania FTS5 + wektorowego (metoda sqlite-vec).
VECTOR_STORE_DISABLE_VEC false Punkt rozszerzenia do testów/diagnostyki w getVectorStore() (src/lib/memory/vectorStore.ts): gdy ma wartość true, wymusza ustawienie magazynu wektorowego na null (symuluje środowisko chmurowe/WASM bez sqlite-vec), ograniczając pobieranie z pamięci do wyszukiwania słów kluczowych FTS5. W środowisku produkcyjnym pozostaw tę zmienną nieustawioną.
NOTION_API_KEY (nieustawione) Klucz API zaplecza Notion (używany przez znaną konfigurację zaplecza w genericBackend.ts).
NOTION_API_URL https://api.notion.com/v1 Bazowy adres URL API Notion (można go zastąpić w przypadku samodzielnie hostowanych alternatyw Notion).
OBSIDIAN_API_KEY (nieustawione) Klucz API zaplecza Obsidian Vault (używany przez znaną konfigurację zaplecza w genericBackend.ts).
OBSIDIAN_API_URL http://localhost:27123 Bazowy adres URL API Obsidian Vault (można go zastąpić w przypadku zdalnego skarbca).
MEMORY_TYPED_DECAY_ENABLED false Główny przełącznik zanikania pamięci według typów TV6. Opcjonalne (domyślnie wyłączone) — przebieg czyszczący usuwa wygasłe wspomnienia. Gdy funkcja jest wyłączona, access_count/last_accessed_at są wyłącznie danymi telemetrycznymi i nic nigdy nie jest usuwane.
MEMORY_TYPED_DECAY_EPISODIC_DAYS 30 TTL (w dniach), po którym nieużywane wspomnienie typu episodic zanika. Wartość 0 uodparnia również wspomnienia epizodyczne. Trwałe typy (factual/procedural/semantic) są zawsze odporne. Zegar zanikania jest ustawiany ponownie na podstawie last_accessed_at.
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY 3 Wspomnienie wstrzyknięte co najmniej tyle razy (>=) staje się odporne na zanikanie niezależnie od typu. Wartość 0 wyłącza odporność wynikającą z dostępu.
MEMORY_TYPED_DECAY_SWEEP_INTERVAL 0 (wyłączone) Interwał (w sekundach) opcjonalnego okresowego przebiegu usuwania wygasłych wspomnień w src/lib/memory/typedDecay.ts. 0/wartość nieustawiona = brak okresowego przebiegu. Wymaga podwójnego włączenia: konieczne jest również ustawienie MEMORY_TYPED_DECAY_ENABLED=true.
OMNIROUTE_STRICT_SYSTEM_PROVIDERS (nieustawione) Rozdzielone przecinkami identyfikatory dostawców (bez rozróżniania wielkości liter), którzy akceptują komunikat system wyłącznie pod indeksem 0 (src/lib/memory/injection.ts). Dla tych dostawców bezpieczne dla pamięci podręcznej wstawianie pamięci w środku tablicy jest niebezpieczne w rozmowach wieloturowych, dlatego pamięć jest scalana/dołączana na początku jako pierwszy komunikat systemowy. Domyślnie obejmuje tylko xiaomi-mimo/mimo; rozszerz tę listę dla samodzielnie hostowanych punktów końcowych zgodnych z OpenAI (np. Qwen3.5+/3.6), których szablon czatu wymusza to samo ograniczenie pojedynczego początkowego komunikatu systemowego.

Przykład konfiguracji Docker z małą ilością RAM

128 jest przeznaczone wyłącznie dla panelu. Agenty programistyczne przy takim rozmiarze sterty kończą długie żądania /v1/responses błędem FATAL ERROR. Nie używaj tego przykładu jako bramy 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. Synchronizacja cennika

Automatyczna synchronizacja danych o cenach modeli ze źródeł zewnętrznych.

Zmienna Wartość domyślna Plik źródłowy Opis
PRICING_SYNC_ENABLED false src/lib/pricingSync.ts Opcjonalna okresowa synchronizacja cen.
PRICING_SYNC_INTERVAL 86400 (24h) src/lib/pricingSync.ts Interwał synchronizacji w sekundach.
PRICING_SYNC_SOURCES litellm src/lib/pricingSync.ts Źródła danych rozdzielone przecinkami.

Synchronizacja ELO Areny

Zmienna Wartość domyślna Plik źródłowy Opis
ARENA_ELO_SYNC_ENABLED true src/shared/constants/featureFlagDefinitions.ts Okresowa synchronizacja ELO z rankingu Arena AI, konfigurowalna za pomocą flag funkcji w panelu lub możliwa do wyłączenia przez ustawienie false.
MODELS_CATALOG_PREFIX_MODE dual src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts Forma prefiksu używana w identyfikatorach modeli w GET /v1/models. dual udostępnia dla każdego modelu zarówno krótki prefiks aliasu, jak i kanoniczny prefiks dostawcy (zgodność wsteczna — katalog zwiększa się mniej więcej dwukrotnie); alias zwraca jeden identyfikator na model; canonical zwraca wyłącznie pełny prefiks identyfikatora dostawcy (dostawcy, których alias jest już identyfikatorem kanonicznym, zachowują pojedynczy wpis). Klienci mogą nadpisać to ustawienie dla pojedynczego żądania za pomocą ?prefix=alias. Zobacz API_REFERENCE.
ARENA_ELO_SYNC_INTERVAL 86400 (24h) src/lib/arenaEloSync.ts Interwał synchronizacji w sekundach.

Dostawca PromptQL Playground (nieoficjalny/eksperymentalny)

Odtworzony metodą inżynierii wstecznej most sesji GraphQL dla prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Wszystkie ustawienia są opcjonalne — wartości domyślne wskazują publiczne punkty końcowe środowiska testowego; należy je nadpisywać wyłącznie w przypadku samodzielnie hostowanego lub alternatywnego wdrożenia PromptQL.

Zmienna Wartość domyślna Plik źródłowy Opis
PROMPTQL_GRAPHQL_ENDPOINT https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql open-sse/executors/promptql.ts Punkt końcowy GraphQL używany do operacji czatu i sesji.
PROMPTQL_CREDITS_ENDPOINT https://data.pro.ql.app/v1/graphql open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts Punkt końcowy GraphQL używany do sprawdzania salda i wykorzystania środków.
PROMPTQL_TOKEN_REFRESH_URL https://auth.pro.ql.app/ddn/project/token open-sse/executors/promptql.ts Punkt końcowy używany do podejmowania prób odświeżenia tokenu.
PROMPTQL_POLL_TIMEOUT_MS 180000 open-sse/executors/promptql.ts Maksymalny czas (ms) odpytywania thread_events przed przekroczeniem limitu czasu oczekiwania.

Dostawca internetowy HyperAgent (nieoficjalny/eksperymentalny)

Odtworzony metodą inżynierii wstecznej most sesji dla hyperagent.com (src/shared/constants/providers/web-cookie.ts). Opcjonalne — domyślnie wskazuje publiczny punkt końcowy rozliczeń/użycia; należy go nadpisać wyłącznie w przypadku samodzielnie hostowanego lub alternatywnego wdrożenia HyperAgent.

Zmienna Wartość domyślna Plik źródłowy Opis
HYPERAGENT_USAGE_URL https://hyperagent.com/api/settings/billing/usage open-sse/services/usage/hyperagent.ts Punkt końcowy używany do pobierania bloków środków rozliczeniowych/użycia.

Limity użycia Kilo Code

Sprawdzanie osobistego salda w USD oraz użycia Kilo Pass dla dostawcy Kilo Code. Opcjonalne — domyślnie wskazuje publiczny interfejs API Kilo; należy je nadpisać wyłącznie na potrzeby przekaźnika lub testowego zestawu danych. Uwierzytelnianie korzysta z istniejącego tokenu dostępu OAuth połączenia.

Zmienna Wartość domyślna Plik źródłowy Opis
KILO_API_URL https://api.kilo.ai open-sse/services/usage/kilocode.ts Bazowy adres URL używany do pobierania osobistego salda Kilo Code oraz informacji o użyciu Kilo Pass.

Dostawca internetowy Adobe Firefly (nieoficjalny/eksperymentalny)

Odświeżanie sesji sterowane przez przeglądarkę dla dostawcy internetowego Adobe Firefly (open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts, open-sse/services/adobeFireflyClient.ts). Opcjonalne — wszystkie wartości domyślne są dostosowane do standardowej instalacji na komputerze.

Usunięto w #9255. Stare środowisko wykonawcze Chrome podłączane przez CDP (adobeFireflyChromeRuntime.ts) zastąpiono usługą logowania przez przeglądarkę Playwright, a jego opcje konfiguracyjne już nie istnieją. Zmienne ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, a także ADOBE_FIREFLY_LOGIN_WAIT_MS i ADOBE_FIREFLY_FORTER_WAIT_MS, nie są nigdzie odczytywane w bazie kodu — ich ustawienie nie przynosi żadnego efektu.

Zmienna Wartość domyślna Plik źródłowy Opis
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Ustaw na 1, aby włączyć rzeczywisty tryb bezinterfejsowy Chrome (wiadomo, że nie działa przy generowaniu; wyłącznie do debugowania).
ADOBE_FIREFLY_BROWSER_REFRESH 1 open-sse/services/adobeFireflySession.ts Włącza lub wyłącza proaktywne rozgrzewanie przeglądarki. 0 wyłącza proaktywne rozgrzewanie (odzyskiwanie po błędzie 408 w trakcie partii nadal działa).
ADOBE_FIREFLY_SESSION_DISK 1 open-sse/services/adobeFireflySession.ts Ustaw na 0, aby wyłączyć zapisywanie sesji Adobe Firefly na dysku.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS (nieustawione) open-sse/services/adobeFireflySession.ts Minimalny odstęp (ms) wymuszany między kolejnymi przesłaniami, zastępujący wbudowaną wartość domyślną.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS (nieustawione) open-sse/services/adobeFireflySession.ts Dodatkowy odstęp (ms) dodawany po pomyślnym przetworzeniu partii, zastępujący wbudowaną wartość domyślną.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS (nieustawione) open-sse/services/adobeFireflyClient.ts Bazowe opóźnienie (ms) przed przesłaniem żądania generowania, zastępujące wbudowaną wartość domyślną.

19. Synchronizacja modeli (środowisko deweloperskie)

Zmienna Wartość domyślna Plik źródłowy Opis
MODELS_DEV_SYNC_ENABLED (nieustawiona) src/lib/modelsDevSync.ts Nadrzędne ustawienie synchronizacji cen z models.dev. Brak wartości = uwzględnia ustawienie Ustawienia > AI (modelsDevSyncEnabled). 0/false/off/no ma pierwszeństwo przed bazą danych i pomija zarówno okresową synchronizację, jak i skanowanie SQL/JSON przez getModelsDevPricing() (umożliwia odzyskanie działania, gdy panel blokuje się w tej samej pętli zdarzeń). 1/true/on/yes wymusza synchronizację. Zapisywanie/czyszczenie cen nadal wywołuje backupDbFile("pre-write"), które nie wykonuje żadnej operacji w ramach 60-minutowego limitu częstotliwości lub przy ustawieniu DISABLE_SQLITE_AUTO_BACKUP.
MODELS_DEV_SYNC_INTERVAL 86400 (24 godz.) src/lib/modelsDevSync.ts Interwał synchronizacji katalogu modeli w środowisku deweloperskim, wyrażony w sekundach.
CONTEXT_WINDOW_RECONCILE_INTERVAL 86400 (24 godz.) src/lib/contextWindowResolver.ts Interwał (w sekundach) samokorygującego mechanizmu uzgadniania okna kontekstu (5004): przypina okna zadeklarowane przez dostawcę, wykryte za pośrednictwem /models, jako nadpisania auto:discovery, gdy różnią się one od katalogu. Ustaw 0, aby wyłączyć. Ponownie wykorzystuje już zsynchronizowane dane (bez ponownego pobierania); nigdy nie zastępuje nadpisań manual.

20. Ustawienia specyficzne dla dostawcy

Zmienna Wartość domyślna Plik źródłowy Opis
OPENROUTER_CATALOG_TTL_MS 86400000 (24 godz.) src/lib/catalog/openrouterCatalog.ts Czas życia pamięci podręcznej katalogu modeli OpenRouter.
MODEL_CATALOG_INCLUDE_NAMES true src/shared/constants/featureFlagDefinitions.ts Uwzględnia przyjazne do wyświetlania pola name w odpowiedziach /v1/models. Wyłącz dla klientów oczekujących wyłącznie identyfikatorów.
CATALOG_BUILD_TIMEOUT_MS 8000 (8 s) src/app/api/v1/models/catalogCache.ts Limit oczekiwania w zimnej ścieżce na scaloną ponowną kompilację katalogu GET /v1/models (#12627). Po przekroczeniu limitu czasu zwracana jest ostatnia poprawna odpowiedź 200, jeśli istnieje.
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS 2592000000 (30 dni) src/lib/db/models/activeSyncedCatalog.ts Czas, po którym zsynchronizowana lista modeli połączenia przestaje być wiążąca dla routingu, a system przechodzi awaryjnie do rejestru (#12849). Wiersze bez ustawionego znacznika czasu są uznawane za nieaktualne.
NANOBANANA_POLL_TIMEOUT_MS 120000 open-sse/handlers/imageGeneration.ts Maksymalny czas oczekiwania na zadania generowania obrazów NanoBanana.
NANOBANANA_POLL_INTERVAL_MS 2500 open-sse/handlers/imageGeneration.ts Częstotliwość odpytywania zadań NanoBanana.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyUpscale.ts Bazowe opóźnienie wykładniczego wycofywania przy ponawianiu przesyłania zadania skalowania Adobe Firefly.
AWS_REGION (nie ustawiono) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Region używany do tworzenia punktów końcowych AWS Bedrock (Kiro, audio).
AWS_DEFAULT_REGION (nie ustawiono) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Wartość zapasowa, gdy AWS_REGION nie jest ustawiona.
CLOUDFLARE_ACCOUNT_ID (nie ustawiono) open-sse/executors/cloudflare-ai.ts Identyfikator konta Cloudflare Workers AI.
CLOUDFLARE_PLAYGROUND_CHROME_PATH (nie ustawiono) open-sse/executors/cloudflare-playground.ts Pełna ścieżka do pliku binarnego desktopowej wersji Chrome dla executora Cloudflare AI Playground, używana, gdy bezgłowe sprawdzanie odcisku przeglądarki blokuje Chromium dołączone do Playwright.
CLOUDFLARE_API_BASE https://api.cloudflare.com/client/v4 src/app/api/settings/proxy/cloudflare-deploy/route.ts Nadpisuje bazowy adres API REST Cloudflare używany przez narzędzie wdrażające przekaźniki Workers puli serwerów proxy (#4640 / 9router#1360).
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx Domyślna nazwa projektu workera sugerowana w oknie modalnym „Deploy Relay” puli serwerów proxy.
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Ustaw na false, aby ukryć opcję przekaźnika Cloudflare Workers na karcie puli serwerów proxy.
CLOUDFLARED_BIN wykrywanie automatyczne src/lib/cloudflaredTunnel.ts Niestandardowa ścieżka do pliku binarnego cloudflared.
CLOUDFLARED_PROTOCOL http2 src/lib/cloudflaredTunnel.ts Protokół transportowy tunelu: http2 (domyślnie), quic lub auto.
CLOUDFLARED_CONFIG (nie ustawiono) src/lib/cloudflaredTunnel.ts Ścieżka do zarządzanego lokalnie pliku config.yml cloudflared (z tunnel:, credentials-file:, ingress:). Po ustawieniu OmniRoute uruchamia tunnel --config <path> run (nazwany tunel) zamiast tymczasowego szybkiego tunelu.
CLOUDFLARED_HOSTNAME (z konfiguracji ingress) src/lib/cloudflaredTunnel.ts Nadpisanie publicznej nazwy hosta nazwanego tunelu (np. ai.example.com), raportowanej jako publicUrl/apiUrl. Jeśli wartość nie jest ustawiona, jest odczytywana z pierwszej nazwy hosta ingress w konfiguracji.
DENO_DEPLOY_API_BASE https://api.deno.com/v2 src/app/api/settings/proxy/deno-deploy/route.ts Zastępuje bazowy adres interfejsu REST API Deno Deploy używany przez moduł wdrażający przekaźnik puli serwerów proxy (#4643 / 9router#1437).
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT omniroute-deno-relay src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx Domyślna nazwa aplikacji Deno Deploy sugerowana w oknie „Deploy Relay” puli serwerów proxy.
NEXT_PUBLIC_DENO_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Ustaw na false, aby ukryć opcję przekaźnika Deno Deploy na karcie puli serwerów proxy.
SEARCH_CACHE_TTL_MS 300000 (5 min) open-sse/services/searchCache.ts Czas TTL buforowania odpowiedzi interfejsów API wyszukiwania (Perplexity, Brave itp.).
ENABLE_CC_COMPATIBLE_PROVIDER false src/shared/utils/featureFlags.ts Wyświetla eksperymentalny interfejs dostawcy zgodnego z CC dla przekaźników obsługujących wyłącznie Claude Code.
NINEROUTER_HOST 127.0.0.1 open-sse/executors/ninerouter.ts Zastępuje host, na którym nasłuchuje osadzona instancja 9router.
NINEROUTER_PORT 20130 open-sse/executors/ninerouter.ts Zastępuje port, na którym nasłuchuje osadzona instancja 9router.
EMBED_WS_PROXY_HOST 127.0.0.1 src/lib/services/embedWsProxy.ts Host powiązania serwera proxy WebSocket dla osadzonej usługi (domyślnie wyłącznie interfejs pętli zwrotnej).
EMBED_WS_PROXY_PORT 20131 src/lib/services/embedWsProxy.ts Port serwera proxy WebSocket dla osadzonej usługi.
CLIPROXYAPI_HOST 127.0.0.1 open-sse/executors/cliproxyapi.ts Host pomostu CLIProxyAPI (starsza integracja).
CLIPROXYAPI_PORT 5544 open-sse/executors/cliproxyapi.ts Port pomostu CLIProxyAPI.
CLIPROXYAPI_API_KEY (puste) open-sse/handlers/chatCore/cliproxyapiCredentials.ts Zapasowy klucz warstwy danych używany w przypadku braku ustawienia cliproxyapi_api_key.
CLIPROXYAPI_MANAGEMENT_KEY (puste) src/lib/services/cliproxyAccountHealth.ts Klucz zarządzania do odczytu stanu konta z zewnętrznie zarządzanej instancji CLIProxyAPI.
CLIPROXYAPI_CONFIG_DIR ~/.cli-proxy-api src/lib/versionManager/processManager.ts Katalog konfiguracji CLIProxyAPI.
CLIPROXY_BIND_HOST 127.0.0.1 docker-compose.yml Interfejs hosta, na którym docker-compose publikuje usługę pomocniczą cliproxyapi (#12578). Jej wolumin danych zawiera poświadczenia OAuth/API dostawcy, a przypięty obraz nie obsługuje nadpisywania kluczy api-keys warstwy danych za pomocą zmiennych środowiskowych (wyłącznie przez zamontowany plik config.yaml), dlatego 0.0.0.0 udostępnia usługę zawierającą poświadczenia całej sieci LAN.
MUX_SERVICE_PORT 8322 src/lib/services/bootstrap.ts Zastępuje port, na którym nasłuchuje osadzony demon orkiestracji agentów Mux (coder/mux) (zawsze 127.0.0.1).
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Host powiązania/połączenia osadzonej usługi Dario (domyślnie wyłącznie interfejs pętli zwrotnej).
DARIO_PORT 3456 open-sse/executors/dario.ts Port osadzonej usługi Dario.
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Host powiązania/połączenia osadzonej usługi Dario (domyślnie wyłącznie interfejs pętli zwrotnej).
DARIO_PORT 3456 open-sse/executors/dario.ts Port osadzonej usługi Dario.
LOCAL_HOSTNAMES (puste) open-sse/config/providerRegistry.ts Rozdzielone przecinkami dodatkowe nazwy hostów traktowane jako „lokalne” (nazwy usług Docker itp.).

ENABLE_CC_COMPATIBLE_PROVIDER jest przeznaczone wyłącznie dla zewnętrznych serwerów pośredniczących, które akceptują tylko klientów Claude Code. OmniRoute przekształca żądania, aby te serwery je akceptowały. Jeśli chcesz używać wyłącznie Claude Code CLI lub nie masz pewności, czym są te serwery pośredniczące, pozostaw tę opcję wyłączoną i zamiast tego dodaj standardowego dostawcę zgodnego z Anthropic.


21. Stan serwerów proxy

Zmienna Wartość domyślna Plik źródłowy Opis
PROXY_FAST_FAIL_TIMEOUT_MS 2000 src/lib/proxyHealth.ts Limit czasu kontroli stanu w trybie szybkiego niepowodzenia.
PROXY_LATENCY_WINDOW_HOURS 3 src/lib/db/proxies.ts Przedział czasu (w godzinach) używany do obliczania średniego opóźnienia kandydujących serwerów proxy w strategii puli zoptymalizowanej pod kątem opóźnień.
PROXY_HEALTH_CACHE_TTL_MS 30000 src/lib/proxyHealth.ts Czas TTL pamięci podręcznej wyników kontroli stanu.
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS 2000 src/lib/proxyHealth.ts Czas TTL pamięci podręcznej dla nieudanych testów stanu serwera proxy. Powinien być krótszy niż PROXY_HEALTH_CACHE_TTL_MS, aby przejściowe przekroczenia limitu czasu serwera proxy przy dużej współbieżności były szybko ponawiane bez wyłączania mechanizmu szybkiego niepowodzenia dla rzeczywiście niedziałających serwerów proxy.
PROXY_HEALTH_ENABLED true src/lib/proxyHealth/scheduler.ts Ustaw false, aby wyłączyć działający w tle harmonogram kontroli stanu serwerów proxy, który okresowo testuje zarejestrowane serwery proxy.
PROXY_HEALTH_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Interwał cyklu harmonogramu kontroli stanu działającego w tle, podany w ms (minimum 60000).
PROXY_HEALTH_TEST_URL https://httpbin.org/ip src/lib/proxyHealth/probeTarget.ts Cel sondy osiągalności używany przez harmonogram oraz endpoint /api/settings/proxies/auto-test. Ustaw wewnętrzny/samodzielnie hostowany adres URL, aby uniknąć korzystania z domyślnej usługi publicznej.
PROXY_HEALTH_TEST_CONCURRENCY 10 src/lib/proxyHealth/probeTarget.ts Liczba sond uruchamianych jednocześnie w każdej partii, wspólna dla harmonogramu oraz endpointu /api/settings/proxies/auto-test. Minimalna wartość to 1, a maksymalna to 50.
PROXY_HEALTH_TEST_STAGGER_MS 100 src/lib/proxyHealth/probeTarget.ts Opóźnienie w ms między uruchomieniem dwóch sond w ramach partii. Bez niego cała partia jest wysyłana w tej samej chwili, przez co współdzielony wychodzący adres IP może uruchomić ograniczenie częstotliwości żądań po stronie celu. Ustaw 0, aby wyłączyć odstępy; maksymalna wartość to 5000.
PROXY_HEALTH_USE_PROVIDER_TARGET true src/lib/proxyHealth/providerProbeTarget.ts Ustaw "false", aby zaprzestać odpytywania rzeczywistego hosta dostawcy przypisanego do serwera proxy (GET /models, bez klucza API) i zamiast tego zawsze używać PROXY_HEALTH_TEST_URL.
PROXY_HEALTH_AUTO_DEACTIVATE false src/lib/proxyHealth/statusPolicy.ts Gdy ustawiono false (domyślnie), automatyczne sondy osiągalności (harmonogram oraz przycisk "Testuj wszystkie" endpointu /api/settings/proxies/auto-test) działają tylko do odczytu i nigdy nie zapisują statusu serwera proxy — tylko operator ustawia go jako aktywny/nieaktywny, dzięki czemu niestabilna sonda nie może zablokować przypisanego serwera proxy (#6246). Ustaw true, aby przywrócić starsze zachowanie polegające na testowaniu i ustawianiu statusu.
PROXY_POOL_EGRESS_OBSERVATION false src/shared/utils/featureFlags.ts Opcjonalna flaga funkcji (zobacz FEATURE_FLAGS.md; ustawienie zastępcze z bazy danych panelu ma pierwszeństwo). Wartość true (lub 1, yes) wyświetla w panelu obserwacje wychodzącego ruchu puli tylko do odczytu pod daną pulą serwerów proxy (odrębne wychodzące adresy IP, połączenia oraz największą liczbę połączeń zaobserwowanych za jednym adresem IP w ciągu ostatnich 24 h na podstawie dziennika serwerów proxy). Funkcja nigdy nie jest używana do routingu.
PROXY_AUTO_REMOVE false src/lib/proxyHealth/scheduler.ts Ustaw true, aby umożliwić harmonogramowi automatyczne usuwanie serwerów proxy po określonej liczbie kolejnych niepowodzeń.
PROXY_AUTO_REMOVE_AFTER 3 src/lib/proxyHealth/scheduler.ts Liczba kolejnych niepowodzeń, po której harmonogram automatycznie usuwa serwer proxy (gdy PROXY_AUTO_REMOVE=true).
PROXY_AUTO_DISABLE false src/lib/proxyHealth/scheduler.ts Ustaw true, aby harmonogram miękko wyłączał serwer proxy (status dead, bez usuwania) po kolejnych powtarzających się niepowodzeniach, zamiast go usuwać. Niedestrukcyjna alternatywa dla PROXY_AUTO_REMOVE: serwer proxy natychmiast przestaje być uwzględniany przy wyborze z puli/rotacji (filtr aktywnego statusu używany przy wyborze puli zakresu już go wyklucza) i jest automatycznie ponownie aktywowany, gdy znów zaczyna pomyślnie przechodzić testy. Korzysta z tego samego progu PROXY_AUTO_REMOVE_AFTER. Jeśli obie flagi mają wartość true, pierwszeństwo ma PROXY_AUTO_REMOVE.
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK false src/shared/constants/featureFlagDefinitions.ts Zezwól przepływom OAuth i walidacji dostawcy na pominięcie przypisanego serwera proxy i na bezpośrednie połączenie, gdy wstępne testy dostępności serwera proxy zakończą się niepowodzeniem. Obowiązująca kolejność pierwszeństwa: nadpisanie w bazie danych flag funkcji > zmienna środowiskowa > wartość domyślna.
RATE_LIMIT_MAX_WAIT_MS 30000 (30 s) open-sse/services/rateLimitManager.ts Maksymalny czas oczekiwania po otrzymaniu odpowiedzi 429 przed uznaniem żądania za nieudane.
RATE_LIMIT_EXECUTION_MAX_WAIT_MS 600000 (10 min) open-sse/services/rateLimitManager.ts Górny limit czasu, przez jaki przyjęte żądanie może być wykonywane, zanim wygaśnie jego rezerwacja limitu szybkości — niezależny od budżetu czasu oczekiwania w kolejce, dzięki czemu powolne rozpoczynanie pobierania w bramach nieprzyrostowych nie powoduje przekroczenia limitu czasu (#12027).
RATE_LIMIT_MAX_QUEUE_DEPTH 0 (wyłączone) open-sse/services/rateLimitManager.ts Limit przyjmowania do kolejki: odrzuć z odpowiedzią 429 queue_full, gdy w kolejce znajduje się już tyle żądań. 0 = bez ograniczeń (domyślnie).
RATE_LIMIT_AUTO_ENABLE (nieustawione) open-sse/services/rateLimitManager.ts Wymuś włączenie lub wyłączenie zabezpieczenia automatycznego włączania limitu szybkości niezależnie od ustawienia zapisanego w Panelu. Akceptuje true/1/on, aby wymusić włączenie, oraz false/0/off, aby wymusić wyłączenie.
PROVIDER_COOLDOWN_ENABLED (nieustawione → wyłączone) open-sse/services/providerCooldownTracker.ts Opcjonalne globalne śledzenie okresu karencji dostawcy/połączenia między żądaniami. Domyślnie WYŁĄCZONE (pokrywa się z okresem karencji połączenia / wyłącznikiem obwodu dostawcy). Akceptuje true/1/on, aby włączyć.
PROVIDER_COOLDOWN_MIN_MS 5000 open-sse/services/providerCooldownTracker.ts Minimalny okres karencji (ms) przed ponowieniem próby użycia dostawcy/połączenia, które zakończyło się niepowodzeniem. Zwiększany wykładniczo wraz z kolejnymi niepowodzeniami. Używany tylko wtedy, gdy włączono PROVIDER_COOLDOWN_ENABLED.
PROVIDER_COOLDOWN_MAX_MS 300000 (5 min) open-sse/services/providerCooldownTracker.ts Maksymalny limit czasu odczekania (ms), po którym ponawiana jest próba użycia dostawcy/połączenia niezależnie od wcześniejszego niepowodzenia. Używane tylko wtedy, gdy włączono PROVIDER_COOLDOWN_ENABLED.
STREAM_RECOVERY_ENABLED (nieustawione → wyłączone) src/lib/resilience/settings.ts (wartość początkowa) → open-sse/services/streamRecovery.ts (logika) Co robi: przezroczyste odzyskiwanie uciętych strumieni nadrzędnych (port z free-claude-code). Wstrzymuje początkowe okno SSE przez maksymalnie STREAM_RECOVERY.HOLDBACK_MS (750 ms), dzięki czemu ucięcie przed zatwierdzeniem — występujące, zanim jakikolwiek bajt dotrze do klienta — powoduje niewidoczne ponowne otwarcie strumienia i ponowienie próby. Kiedy włączyć: w przypadku niestabilnych usług nadrzędnych, które często ucinają strumień na poziomie 0 bajtów podczas jego uruchamiania; pozostaw WYŁĄCZONE, jeśli nie możesz pozwolić sobie na wydłużenie czasu do pierwszego tokenu o maksymalnie 750 ms dla każdego strumienia. Akceptuje true/1/on. Ustawia początkową wartość utrwalonego ustawienia odporności; po skonfigurowaniu pierwszeństwo ma ustawienie z panelu.
STREAM_RECOVERY_MIDSTREAM_ENABLED (nieustawione → wyłączone) src/lib/resilience/settings.ts (wartość początkowa) → open-sse/services/streamRecovery.ts (logika) Co robi: kontynuacja w trakcie strumienia (faza 4.4) — po ucięciu po zatwierdzeniu (bajty dotarły już do klienta) ponownie wysyła żądanie z częściowym tekstem jako wstępnie wypełnioną odpowiedzią asystenta i dołącza brakujący sufiks. Tylko strumienie zwykłego tekstu zgodne z OpenAI; funkcja nigdy nie jest uruchamiana podczas trwającego wywołania narzędzia. Kiedy włączyć: w przypadku długich generacji, które są ucinane w trakcie odpowiedzi, jeśli akceptujesz dostarczenie odzyskanej końcówki jednorazowo zamiast token po tokenie. Niezależne od STREAM_RECOVERY_ENABLED (inny profil ryzyka). Akceptuje true/1/on.
STREAM_THROUGHPUT_WATCHDOG_ENABLED (nieustawione → wyłączone) src/lib/resilience/settings.tsopen-sse/services/throughputWatchdog.ts Opcjonalny mechanizm monitorujący użyteczną przepustowość aktywnego strumienia. Wykrywa strumienie, które nadal wysyłają fragmenty danych, ale pozostają poniżej skonfigurowanej szybkości generowania odpowiedzi asystenta; sygnały podtrzymujące, zdarzenia użycia, puste delty oraz fazy używania narzędzi lub rozumowania nie są błędnie uznawane za postęp. Działa niezależnie od limitów czasu bezczynności i nieprzekraczalnego terminu.
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS 30000 src/lib/resilience/settings/normalize.ts Okres karencji przed rozpoczęciem oceny przepustowości, ograniczony do 0600000 ms.
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS 30000 src/lib/resilience/settings/normalize.ts Ruchome okno użytecznych danych wyjściowych, ograniczone do 1000600000 ms; przed przerwaniem wymagane jest jedno pełne okno.
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND 4 src/lib/resilience/settings/normalize.ts Minimalna szybkość danych wyjściowych asystenta w bajtach UTF-8 (konserwatywne przybliżenie liczby tokenów), ograniczona do 11000000.
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES 1 src/lib/resilience/settings/normalize.ts Minimalna niezerowa próbka użytecznych danych wyjściowych uznawana za mierzalną, ograniczona do 11000000 bajtów.
HEALTHCHECK_STAGGER_MS 3000 src/lib/tokenHealthCheck.ts Interwał przesunięcia (ms) między kontrolami kondycji tokenów dostawców podczas uruchamiania.
HEALTHCHECK_JITTER_MIN_MS 500 src/lib/tokenHealthCheck.ts Minimalne losowe opóźnienie (ms) dodawane do HEALTHCHECK_STAGGER_MS między kontrolami kondycji tokenów dostawców, aby zapobiec nagłemu spiętrzeniu żądań (problem #1220).
HEALTHCHECK_JITTER_MAX_MS 5000 src/lib/tokenHealthCheck.ts Maksymalne losowe opóźnienie (ms) dodawane do HEALTHCHECK_STAGGER_MS między kontrolami kondycji tokenów dostawców, aby zapobiec nagłemu spiętrzeniu żądań (problem #1220).
HEALTHCHECK_BATCH_SIZE 20 src/lib/tokenHealthCheck.ts Rozmiar partii równoczesnych kontroli podczas uruchamiania procedury sprawdzania kondycji tokenów; większe wartości umożliwiają równoległe sprawdzanie większej liczby połączeń, a mniejsze ograniczają obciążenie impulsowe (Issue #7875, regresja #7719).
REQUEST_RETRY 2 src/sse/services/cooldownAwareRetry.ts Liczba automatycznych ponowień w przypadku odpowiedzi dotyczących okresu karencji dla modelu przed zwróceniem błędu klientowi.
MAX_RETRY_INTERVAL_SEC 30 src/sse/services/cooldownAwareRetry.ts Maksymalny odstęp wycofywania (w sekundach) między ponowieniami po okresie karencji. Ograniczony do tej wartości niezależnie od nadrzędnego nagłówka Retry-After.
HEADROOM_URL http://localhost:8787 src/lib/headroom/detect.ts Adres URL serwera proxy Headroom oszczędzającego tokeny. Cykl życia panelu (api/headroom/*) domyślnie uruchamia lokalny interfejs CLI headroom-ai na adresie zwrotnym; wartość należy nadpisać tylko w celu wskazania zewnętrznego serwera proxy typu sidecar w Dockerze.

Stałe dostrajania odzyskiwania strumienia

Zachowanie bufora opóźniającego odzyskiwanie jest dostrajane za pomocą stałych zakodowanych na stałe w open-sse/config/constants.ts (STREAM_RECOVERY), przedstawionych tutaj w celach informacyjnych — ich zmiana wymaga edycji kodu, a nie zmiennej środowiskowej:

  • STREAM_RECOVERY.HOLDBACK_MS = 750 — czas, przez jaki początkowe okno SSE jest wstrzymywane, aby w razie wczesnego obcięcia można było ponowić próbę przed wysłaniem jakiegokolwiek bajtu do klienta.
  • STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536 — sztywny limit wstrzymywanego okna; zatwierdzenie (opróżnienie bufora + przekazywanie bezpośrednie) następuje natychmiast po zgromadzeniu tej liczby bajtów, niezależnie od czasomierza.
  • STREAM_RECOVERY.EARLY_RETRY_MAX = 4 — maksymalna liczba przezroczystych ponownych otwarć strumienia nadrzędnego, gdy bufor opóźniający nie został jeszcze zatwierdzony.

Limit częstotliwości z oknem przesuwnym dla poszczególnych dostawców (bez zmiennej środowiskowej): przeniesiony z FCC rezerwowy limit częstotliwości z oknem przesuwnym dla poszczególnych dostawców istnieje w kodzie (open-sse/services/providerDefaultRateLimit.ts, podłączony przez open-sse/services/rateLimitManager.ts), ale jest dostarczany z pustą mapą domyślną i obecnie nie ma zmiennej środowiskowej dla operatora — można go włączyć wyłącznie za pomocą haka testowego / edycji kodu. Celowo nie został wymieniony w powyższej tabeli. Ogranicznik przekaźnika dla poszczególnych par (token, IP), który ma opcję konfiguracji, to RELAY_IP_PER_MINUTE (§3 Sieć i porty).


22. Debugowanie

Caution

Te zmienne generują szczegółowe dane wyjściowe i mogą ujawniać dane poufne. Nigdy nie włączaj ich w środowisku produkcyjnym.

Zmienna Wartość domyślna Plik źródłowy Opis
CURSOR_DEBUG (nieustawiona) open-sse/executors/cursor.ts Ustaw 1, aby włączyć szczegółowe logi executora Cursor (zdekodowane fragmenty SSE itp.).
CURSOR_STREAM_DEBUG (nieustawiona) open-sse/executors/cursor.ts Wstecznie zgodny alias zmiennej CURSOR_DEBUG.
CURSOR_DUMP_FILE (nieustawiona) open-sse/executors/cursor.ts Opcjonalna ścieżka pliku, do którego trafiają nieprzetworzone, zdekodowane fragmenty Cursor, gdy CURSOR_DEBUG=1.
CURSOR_STREAM_TIMEOUT_MS 300000 open-sse/executors/cursor.ts Limit czasu bezczynności strumienia (ms) dla executora Cursor.
CURSOR_KV_GRACE_MS 2000 open-sse/executors/cursor.ts Okres prolongaty (ms) po miękkim terminatorze composer kv_after_text, gdy bajty nadal pozostają w buforze — zapewnia końcowemu wywołaniu narzędzia exec_mcp czas na ukończenie swojej ramki.
CURSOR_TOOL_DIRECTIVE włączona (!== "0") open-sse/executors/cursor.ts Dyrektywa zatwierdzania narzędzi, dzięki której composer-2.5 niezawodnie wykonuje wywołania narzędzi. Ustaw 0, aby ją wyłączyć.
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND (nieustawiona) open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts Zdefiniowany przez operatora tekst promptu systemowego dołączany do komunikatu systemowego PO translacji (wstrzyknięcie po translacji), trafiający do ścieżek codex/Responses i /v1/messages. Używany również jako prefiks dyrektywy usuwany z powtórzonych bloków preambuły systemowej. Pozostaw nieustawioną, aby wyłączyć.
CURSOR_IMAGE_FETCH_TIMEOUT_MS 15000 open-sse/utils/cursorImages.ts Limit czasu pobierania poszczególnych zdalnych danych wejściowych obrazu image_url (ms).
CURSOR_STATE_DB_PATH (wykrywana) open-sse/utils/cursorVersionDetector.ts Zastępuje lokalizację bazy danych stanu Cursor IDE używaną do wykrywania wersji IDE.
CURSOR_AGENT_CLI_VERSION (wykrywana / przypięta) open-sse/utils/cursorAgentCliVersion.ts Identyfikator kompilacji Agent CLI (YYYY.MM.DD-<hash>) dla x-cursor-client-version: cli-… w Agent Run.
CURSOR_AGENT_BIN (nieustawiona) open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Ścieżka do pliku binarnego Cursor Agent używanego do generowania obrazów. Jeśli nie jest ustawiona, handler używa providerSpecificData.agentBin, a następnie PATH.
CURSOR_IMG_TIMEOUT_MS 210000 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Limit czasu zegarowego (ms) na obraz dla zadań graficznych Cursor Agent.
CURSOR_IMG_MAX_CONCURRENT 2 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Limit współbieżności współdzielonego stanowiska dla zadań graficznych Cursor.
CURSOR_IMG_MODEL żądanie / auto open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Zastępuje opcję --model interfejsu Cursor CLI dla zadań graficznych.
UC_IMAGE_POLL_INTERVAL_MS 2000 open-sse/handlers/imageGeneration/providers/ucImage.ts Częstotliwość odpytywania wyniku generowania obrazów UC (uncensored.com) (ms).
UC_IMAGE_POLL_TIMEOUT_MS 60000 open-sse/handlers/imageGeneration/providers/ucImage.ts Limit czasu zegarowego odpytywania wyniku generowania obrazów UC (ms).
UC_VIDEO_POLL_INTERVAL_MS 3000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Częstotliwość odpytywania wyniku generowania wideo UC (uncensored.com) (ms).
UC_VIDEO_POLL_TIMEOUT_MS 300000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Limit czasu zegarowego odpytywania wyniku generowania wideo UC (ms).
CURSOR_DATA_DIR (wykrywany) open-sse/utils/cursorAgentCliVersion.ts Zastępuje katalog danych Cursor Agent CLI (…/versions/<id>); jest to ta sama zmienna, której używa oficjalny agent.
CURSOR_TOKEN (nieustawiona) scripts/ad-hoc/cursor-tap.cjs Bezpośredni token bearer Cursor używany przez narzędzia deweloperskie.
OMNIROUTE_LOG_REQUEST_SHAPE wyłączona (włączana przez "1") src/app/api/v1/chat/completions/route.ts Rejestruje znaczniki typu i długości zawartości dla dużych ładunków czatu, gdy ustawiono "1". Domyślnie wyłączona, aby ograniczyć szum w logach.
DEBUG_RESPONSES_SSE_TO_JSON (nieustawiona) open-sse/handlers/responseTranslator.ts Ustaw true, aby rejestrować szczegóły translacji Responses API z SSE do JSON.
DEBUG_CLAUDE_NONSTREAM (nieustawiona) open-sse/handlers/responseTranslator.ts Ustaw true, aby uwidocznić puste fragmenty textContent w ścieżce translacji odpowiedzi Claude (tylko do debugowania).
NEXT_PUBLIC_OMNIROUTE_E2E_MODE (nieustawiona) Zestaw testów E2E Ustaw true, aby włączyć tryb testów E2E (uproszczone uwierzytelnianie, haki testowe).

23. Integracja z GitHubem

Umożliwia użytkownikom zgłaszanie problemów bezpośrednio z Panelu.

Zmienna Wartość domyślna Plik źródłowy Opis
GITHUB_ISSUES_REPO (nieustawiona) src/app/api/v1/issues/report/route.ts Repozytorium w formacie owner/repo.
GITHUB_ISSUES_TOKEN (nieustawiona) src/app/api/v1/issues/report/route.ts Osobisty token dostępu GitHub z zakresem issues:write.
GITHUB_TOKEN (nieustawiona) segregacja zgłoszeń / narzędzia agenta chmurowego Ogólny token dostępu GitHub używany jako wartość zastępcza dla GITHUB_ISSUES_TOKEN oraz przez narzędzia agenta chmurowego w src/lib/cloudAgent/*.

Scenariusze wdrożenia

Wytyczne SRE dotyczące zaplecza przekaźnika (zachowanie ts/bifrost/auto, umiejscowienie 9router względem CLIProxyAPI oraz strategia awaryjna dla dużej przepustowości) zawiera dokument Strategia zaplecza przekaźnika.

Minimalne lokalne środowisko programistyczne

JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development

Produkcja w Dockerze

JWT_SECRET=<wygenerowana>
API_KEY_SECRET=<wygenerowana>
INITIAL_PASSWORD=<wygenerowane>
STORAGE_ENCRYPTION_KEY=<wygenerowany>
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

Środowisko izolowane od sieci / 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 z odwrotnym serwerem proxy (nginx + Cloudflare)

JWT_SECRET=<wygenerowana>
API_KEY_SECRET=<wygenerowana>
STORAGE_ENCRYPTION_KEY=<wygenerowany>
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. Piaskownica Skills (v3.8.0+)

Limity i ustawienia bezpieczeństwa stosowane, gdy framework Skills (src/lib/skills/) wykonuje automatyzacje zdefiniowane przez użytkownika w środowisku piaskownicy.

Zmienna Wartość domyślna Plik źródłowy Opis
SKILLS_SANDBOX_TIMEOUT_MS 10000 (10 s) src/lib/skills/builtins.ts Limit czasu zegarowego dla każdego wykonania kodu umiejętności w piaskownicy. Limit bezwzględny; każdy dłuższy proces zostanie zakończony.
SKILLS_EXECUTION_TIMEOUT_MS (używa zastępczo SKILLS_SANDBOX_TIMEOUT_MS) src/lib/skills/ Limit czasu koordynacji umiejętności wysokiego poziomu. Ustaw wartość wyższą niż SKILLS_SANDBOX_TIMEOUT_MS, aby umożliwić wieloetapowe przepływy pracy.
SKILLS_MAX_FILE_BYTES 1048576 (1 MB) src/lib/skills/builtins.ts Maksymalna liczba bajtów, które umiejętność może odczytać z pojedynczego pliku w piaskownicy.
SKILLS_MAX_HTTP_RESPONSE_BYTES 256000 (250 KB) src/lib/skills/builtins.ts Maksymalna liczba bajtów przechwytywanych z pojedynczej odpowiedzi HTTP wewnątrz umiejętności.
SKILLS_MAX_SANDBOX_OUTPUT_CHARS 100000 src/lib/skills/builtins.ts Bezwzględny limit liczby znaków stdout/stderr zwracanych przez wywołanie piaskownicy.
SKILLS_SANDBOX_NETWORK_ENABLED false src/lib/skills/builtins.ts Ustaw 1/true, aby zezwolić na wychodzący ruch sieciowy z piaskownicy. Ze względów bezpieczeństwa środowisko jest domyślnie izolowane.
SKILLS_ALLOWED_SANDBOX_IMAGES (pusta) src/lib/skills/builtins.ts Rozdzielona przecinkami lista dozwolonych obrazów kontenerów przeznaczonych do wykonywania w piaskownicy. Pusta wartość oznacza wyłącznie wbudowany obraz domyślny.
SKILLS_SANDBOX_DOCKER_IMAGE (wbudowana wartość domyślna) src/lib/skills/ Obraz kontenera używany podczas tworzenia piaskownicy opartej na Dockerze. Zastąp tę wartość, aby przypiąć niestandardowy, wzmocniony obraz bazowy.
SKILLS_SANDBOX_RUNTIME auto src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts Środowisko uruchomieniowe kontenerów do izolowania umiejętności: auto | docker | apple | wsl | orbstack | podman. Opcja auto wybiera najlepsze zainstalowane środowisko uruchomieniowe dla systemu operacyjnego hosta (Apple Container/OrbStack w systemie macOS, WSL Container w systemie Windows, Podman w systemie Linux), a w razie braku odpowiedniego środowiska używa Dockera.

Caution

Włączenie SKILLS_SANDBOX_NETWORK_ENABLED=true otwiera ścieżkę ruchu wychodzącego dla dowolnego kodu umiejętności. We współdzielonych wdrożeniach należy używać tej opcji wraz z OUTBOUND_SSRF_GUARD_ENABLED=true oraz rygorystycznymi zasadami CORS_ORIGIN/proxy.


25. Limity dostawców, tunele, kopie zapasowe i różne ustawienia środowiska uruchomieniowego

Endpointy limitów dostawców, tunele sieciowe (Tailscale, Ngrok, proxy debugowania MITM), pula ruchu wychodzącego 1Proxy, kopie zapasowe baz danych oraz niewielkie nadpisania dla poszczególnych funkcji, wykorzystywane przez warstwę wykonawczą lub skrypty.

Zmienna Wartość domyślna Plik źródłowy Opis
REDIS_URL redis://localhost:6379 src/shared/utils/rateLimiter.ts Ciąg połączenia Redis dla backendu ogranicznika częstotliwości żądań.
ALIBABA_CODING_PLAN_HOST (host produkcyjny) open-sse/services/bailianQuotaFetcher.ts Nadpisuje host używany do pobierania limitów planu programistycznego Alibaba Bailian.
ALIBABA_CODING_PLAN_QUOTA_URL wyprowadzany z hosta open-sse/services/bailianQuotaFetcher.ts Nadpisanie pełnego adresu URL limitów Alibaba Bailian.
QWEN_CLOUD_COOKIE (nieustawione) open-sse/services/qwenTokenPlanQuotaFetcher.ts Plik cookie sesji konsoli dla bramy limitów osobistego planu Token Plan w Qwen Cloud / Model Studio (klucz API wnioskowania nie może ich odczytać). Skopiuj cały nagłówek żądania Cookie — zawiera on login_qwencloud_ticket — z dowolnego wywołania api.json do cs-data.qwencloud.com na stronie home.qwencloud.com Rozliczenia Subskrypcja (F12 Sieć). Dane poufne i ograniczone do sesji; preferuj pole Dashboardu qwenCloudCookie dla danego połączenia.
QWEN_CLOUD_SEC_TOKEN (nieustawione) open-sse/services/qwenTokenPlanQuotaFetcher.ts Ręczne nadpisanie sec_token dla bramy konsoli Token Plan. Dane poufne; jeśli nie ustawiono tej wartości, moduł pobierający odczytuje ją z kodu HTML dashboardu przy użyciu pliku cookie.
QWEN_TOKEN_PLAN_HOST https://cs-data.qwencloud.com open-sse/services/qwenTokenPlanQuotaFetcher.ts Nadpisanie hosta bramy dla modułu pobierającego limity osobistego planu Token Plan (np. bailian-singapore-cs.alibabacloud.com dla konsoli Model Studio).
QWEN_TOKEN_PLAN_DASHBOARD_URL https://home.qwencloud.com/ open-sse/services/qwenTokenPlanQuotaFetcher.ts Adres URL dashboardu używany do odczytywania sec_token z kodu HTML zalogowanej sesji.
ALIBABA_FREE_TIER_VISION_FE_PATH /costing-balance/free-quota-image-video open-sse/services/alibabaFreeTierQuotaFetcher.ts Nadpisanie ścieżki front-endu konsoli służącej do pobierania bezpłatnego limitu Alibaba Model Studio dla funkcji wizyjnych i multimediów.
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH /costing-balance/free-quota-multimodal open-sse/services/alibabaFreeTierQuotaFetcher.ts Nadpisanie ścieżki front-endu konsoli używanej do pobierania limitu bezpłatnej warstwy dla modeli multimodalnych Alibaba Model Studio.
ALIBABA_FREE_TIER_AUDIO_FE_PATH /costing-balance/free-quota-audio open-sse/services/alibabaFreeTierQuotaFetcher.ts Nadpisanie ścieżki front-endu konsoli używanej do pobierania limitu bezpłatnej warstwy dla modeli audio Alibaba Model Studio.
ALIBABA_FREE_TIER_ALLOWLIST_PATH (nieustawione) open-sse/services/alibabaFreeTierAllowlist.ts Opcjonalna ścieżka do lokalnego pliku JSON zastępującego wbudowaną listę dozwolonych modeli tekstowych bezpłatnej warstwy Alibaba. W przypadku braku używany jest plik $DATA_DIR/alibaba-free-tier-allowlist.json, a następnie config/alibaba-free-tier-allowlist.json.
CONTEXT_RESERVE_TOKENS 1024 open-sse/services/contextManager.ts Tokeny zarezerwowane na dane wyjściowe uzupełniania podczas obliczania budżetów promptów.
CONTEXT_KEEP_LATEST_IMAGES 2 open-sse/services/contextManager.ts Liczba najnowszych obrazów osadzonych w treści, które mają zostać zachowane podczas usuwania starszych obrazów w celu dopasowania do okna kontekstu (#8560).
MODEL_ALIAS_COMPAT_ENABLED włączone open-sse/services/model.ts Przełącza starszą warstwę zgodności aliasów modeli używaną przez starszych klientów.
OMNIROUTE_EMERGENCY_FALLBACK włączone open-sse/services/emergencyFallback.ts Ustaw false (lub 0), aby wyłączyć awaryjny mechanizm zastępczy uruchamiany po wyczerpaniu budżetu, który przekierowuje nieudane żądania do bezpłatnego modelu nvidia/openai/gpt-oss-120b. Obowiązuje następująca kolejność priorytetów: nadpisanie w bazie danych Feature Flags > zmienna środowiskowa > wartość domyślna; jeśli są one niedostępne, usługa używa nieprzetworzonej wartości zmiennej środowiskowej.
COMMAND_CODE_CALLBACK_PORT (nieustawione) src/app/api/providers/command-code/auth/shared.ts Port lokalny używany do wywołań zwrotnych w stylu OAuth z narzędzia pomocniczego Command Code CLI.
COMMAND_CODE_VERSION 0.33.2 open-sse/executors/commandCode.ts Wartość wysyłana do usługi nadrzędnej Command Code w nagłówku x-command-code-version. Nadpisz ją, aby podnieść wersję CLI.
COMMANDCODE_API_URL https://api.commandcode.ai open-sse/services/usage/command-code.ts Bazowy adres URL usługi nadrzędnej Command Code do obsługi użycia/limitów, wykorzystywanej przez telemetrię modułu pobierającego limity dla smartfonów. Można go nadpisać, aby użyć samodzielnie hostowanego lub alternatywnego interfejsu API Command Code.
MITM_LOCAL_PORT 443 src/mitm/server.cjs Lokalny port nasłuchiwania proxy debugowania MITM.
MITM_DISABLE_TLS_VERIFY 0 src/mitm/server.cjs Ustaw 1, aby wyłączyć weryfikację TLS serwera nadrzędnego (tylko na potrzeby programowania).
MITM_IDLE_TIMEOUT_MS 60000 src/mitm/socketTimeouts.ts, src/mitm/server.cjs Limit czasu bezczynności gniazda (ms) dla połączeń proxy; bezczynne gniazda, które przekroczą ten limit, są zamykane, aby zapobiec pozostawianiu częściowo otwartych tuneli.
MITM_VERBOSE 1 src/mitm/server.cjs, src/mitm/_internal/bypass.cjs Szczegółowość dziennika decyzji routingu: 0 wyłącza rejestrowanie, a wyższe wartości powodują rejestrowanie większej liczby decyzji dotyczących pomijania/routingu.
MITM_ROOT_CA_ENABLED false src/mitm/manager.ts Ustaw true, aby włączyć model głównego urzędu certyfikacji (CA) i osobnych certyfikatów końcowych dla poszczególnych hostów (#6684). Świeże instalacje otrzymują go automatycznie; instalacje z istniejącym, zaufanym starszym certyfikatem końcowym zachowują starszy certyfikat ze stałymi nazwami SAN, chyba że ta opcja zostanie włączona.
MITM_CERT_MODE legacy src/mitm/manager.ts, src/mitm/server.cjs Ustawiane PRZEZ menedżera MITM dla uruchamianego procesu proxy (root-ca | legacy) — odzwierciedla decyzję dotyczącą migracji certyfikatów; nie należy ustawiać ręcznie.
OMNIROUTE_NO_SUDO 0 src/mitm/systemCommands.ts Ustaw 1 (wartość prawdziwa), aby usunąć początkowe sudo z poleceń zaufania certyfikatom MITM — na potrzeby wdrożeń bez roota lub z przestrzenią nazw użytkowników, w których operator ręcznie określa CA jako zaufany (np. za pomocą mechanizmu dodatkowych certyfikatów CA środowiska Node).
SKIP_ANTIGRAVITY_DNS (nieustawione) src/mitm/dns/provision.ts Ustaw true, aby całkowicie pominąć konfigurowanie wpisów DNS w /etc/hosts dla nazw hostów proxy Antigravity — na potrzeby kontenerów bez dostępu do sudo/roota.
OMNIROUTE_SKIP_DNS_WRITE (nieustawione) src/mitm/dns/dnsConfig.ts Ustaw 1, aby pominąć zapisywanie w pliku hosts podczas dodawania lub usuwania wpisów DNS — na potrzeby środowisk testowych działających w piaskownicy lub tylko do odczytu.
OMNIROUTE_SKIP_SYSTEM_TRUST 0 src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts Zabezpieczenie przeznaczone wyłącznie do testów/CI: ustaw 1, aby instalowanie lub odinstalowywanie zaufania do certyfikatów nie wykonywało żadnej operacji, dzięki czemu zestaw testów nigdy nie modyfikuje systemowego magazynu zaufania. Ustawiane automatycznie przez konfigurację testów i przepływy pracy CI.
CHANGELOG_BASE_REF (automatycznie) scripts/check/check-changelog-integrity.mjs Jawnie określona referencja bazowa dla mechanizmu zapobiegającego usuwaniu wpisów z CHANGELOG-u (domyślnie gałąź bazowa PR w CI lub najwyższa release/v*).
FREE_PROXY_AUTO_SYNC_ENABLED false src/lib/freeProxyProviders/scheduler.ts Ustaw true, aby włączyć działający w tle harmonogram automatycznej synchronizacji puli bezpłatnych serwerów proxy. Funkcja opcjonalna, domyślnie wyłączona.
FREE_PROXY_AUTO_SYNC_INTERVAL_MS 1800000 src/lib/freeProxyProviders/scheduler.ts Interwał automatycznej synchronizacji w milisekundach (domyślnie 30 min).
FREE_PROXY_1PROXY_ENABLED true src/lib/freeProxyProviders/oneproxy.ts Włącz źródło bezpłatnych serwerów proxy 1proxy. Ustaw false, aby je wyłączyć.
FREE_PROXY_1PROXY_API_URL (zobacz oneproxy.ts) src/lib/freeProxyProviders/oneproxy.ts Nadpisanie adresu URL API 1proxy.
FREE_PROXY_1PROXY_MAX 500 src/lib/freeProxyProviders/oneproxy.ts Maksymalna liczba serwerów proxy pobieranych z 1proxy podczas każdej synchronizacji.
FREE_PROXY_1PROXY_MIN_QUALITY 50 src/lib/freeProxyProviders/oneproxy.ts Minimalny próg oceny jakości dla importów z 1proxy.
FREE_PROXY_PROXIFLY_ENABLED true src/lib/freeProxyProviders/proxifly.ts Włącz źródło bezpłatnych serwerów proxy Proxifly. Ustaw false, aby je wyłączyć.
FREE_PROXY_PROXIFLY_QUANTITY 100 src/lib/freeProxyProviders/proxifly.ts Liczba serwerów proxy pobieranych podczas każdej synchronizacji z Proxifly.
FREE_PROXY_PROXIFLY_ANONYMITY elite src/lib/freeProxyProviders/proxifly.ts Filtr poziomu anonimowości dla Proxifly (elite, anonymous, transparent).
FREE_PROXY_IPLOCATE_ENABLED false src/lib/freeProxyProviders/iplocate.ts Włącza bezpłatne źródło serwerów proxy IPLocate. Wymaga jawnego włączenia.
FREE_PROXY_IPLOCATE_BASE_URL https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols src/lib/freeProxyProviders/iplocate.ts Nadpisuje bazowy adres URL listy serwerów proxy IPLocate.
FREE_PROXY_WEBSHARE_ENABLED true src/lib/freeProxyProviders/webshare.ts Włącza źródło puli serwerów proxy Webshare. Ustaw na false, aby je wyłączyć; wymaga również ustawienia FREE_PROXY_WEBSHARE_API_KEY.
FREE_PROXY_WEBSHARE_API_KEY (brak) src/lib/freeProxyProviders/webshare.ts Token API konta Webshare (Authorization: Token <key>). Wymagany — bez niego dostawca pozostaje wyłączony.
FREE_PROXY_WEBSHARE_API_URL https://proxy.webshare.io/api/v2/proxy/list/ src/lib/freeProxyProviders/webshare.ts Nadpisuje adres URL interfejsu API listy serwerów proxy Webshare.
FREE_PROXY_WEBSHARE_MAX 500 src/lib/freeProxyProviders/webshare.ts Maksymalna liczba serwerów proxy importowanych podczas każdej synchronizacji z Webshare.
NEXT_PUBLIC_VERCEL_RELAY_ENABLED true src/app/(dashboard)/…/ProxyPoolTab.tsx Pokazuje lub ukrywa przycisk wdrażania Vercel Relay na karcie puli serwerów proxy.
VERCEL_API_BASE https://api.vercel.com src/app/api/settings/proxy/vercel-deploy/route.ts Nadpisuje bazowy adres URL interfejsu API Vercel (do testowania).
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/…/VercelRelayModal.tsx Domyślna nazwa projektu wstępnie wypełniona w oknie wdrażania Vercel Relay.
TAILSCALE_BIN (wykrywanie automatyczne) src/lib/tailscaleTunnel.ts Jawna ścieżka do pliku binarnego tailscale.
TAILSCALED_BIN (wykrywanie automatyczne) src/lib/tailscaleTunnel.ts Jawna ścieżka do pliku binarnego demona tailscaled.
TAILSCALE_AUTHKEY (nieustawione) src/lib/tailscaleTunnel.ts Wstępnie udostępniony klucz uwierzytelniający Tailscale do nieinteraktywnego / bezobsługowego wykonania tailscale up (przekazywany za pomocą --auth-key=). Jeśli nie jest ustawiony, logowanie wykorzystuje interaktywny adres URL uwierzytelniania w przeglądarce.
NGROK_AUTHTOKEN (nieustawione) src/lib/ngrokTunnel.ts Uwierzytelnia wychodzące tunele ngrok.
DB_BACKUP_MAX_FILES 20 src/lib/db/backup.ts Maksymalna liczba plików kopii zapasowych SQLite zachowywanych podczas ręcznego lub zaplanowanego czyszczenia kopii zapasowych. Migawki migracji są adresowane zawartością i ponownie wykorzystywane dla identycznego stanu bazy danych; nie są usuwane w trakcie równoległego okna migracji. Zastępuje wartość zapisaną w Ustawienia → Okres przechowywania kopii zapasowych bazy danych.
DB_BACKUP_RETENTION_DAYS 0 src/lib/db/backup.ts Maksymalny wiek (w dniach) kopii zachowywanych podczas ręcznego lub zaplanowanego czyszczenia kopii zapasowych. 0 wyłącza usuwanie na podstawie wieku. Migawki migracji nie są usuwane w trakcie równoległego okna migracji. Zastępuje wartość zapisaną w Ustawienia → Okres przechowywania kopii zapasowych bazy danych.
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS 30000 src/lib/jobs/backupScheduleJob.ts Interwał wywoływania (w ms) zadania po stronie serwera, które wykonuje backup-schedule.json. Musi być znacznie krótszy niż jednominutowa rozdzielczość mechanizmu cron; wartości poniżej 5000 lub takie, których nie można przeanalizować, są zastępowane wartością 30000.
CONTAINER_HOST docker scripts/check-permissions.sh Wskazanie środowiska uruchomieniowego kontenera na potrzeby sprawdzania uprawnień w punkcie wejścia. Ustaw na podman dla dowolnej topologii Podman. Ponieważ kontener nie może ustalić, czy silnik jest lokalny, czy dostępny za pośrednictwem Podman Machine, ostrzeżenie pozostaje neutralne względem topologii i odsyła do contrib/podman/README.md.
QUOTA_STORE_DRIVER sqlite src/lib/quota/storeFactory.ts Backend magazynu zużycia współdzielonych limitów: sqlite (domyślnie) lub redis.
QUOTA_STORE_REDIS_URL (nieustawione) src/lib/quota/storeFactory.ts Ciąg połączenia Redis używany, gdy QUOTA_STORE_DRIVER=redis (np. redis://localhost:6379).
QUOTA_SATURATION_THRESHOLD 0.5 src/lib/quota/enforce.ts Współczynnik nasycenia puli (0..1); po jego osiągnięciu lub przekroczeniu pula przechodzi w tryb ścisły (bez pożyczania).
QUOTA_SOFT_DEPRIORITIZE_FACTOR 0.7 open-sse/services/combo.ts Mnożnik wyniku (0..1) stosowany do celu, gdy zasady miękkiego limitu obniżają jego priorytet.
STATUS_SOFT_DEPRIORITIZE_FACTOR 0.5 open-sse/services/combo/autoStrategy.ts Mnożnik wyniku (0..1) stosowany do dostawcy z wyczerpanym limitem (credits_exhausted/rate_limited) podczas obliczania punktacji auto-combo, gdy wstępne odcięcie limitu jest WYŁĄCZONE (#4540).
QUOTA_CONSUMPTION_RETENTION_DAYS 14 src/lib/db/quotaConsumption.ts Okres przechowywania (w dniach) przedziałów quota_consumption przed czyszczeniem pamięci (gcQuotaConsumption).
QUOTA_PREFLIGHT_CUTOFF_ENABLED false src/lib/resilience/settings.ts Opcja wymagająca włączenia (domyślnie WYŁĄCZONA): włącza twarde odcięcie limitu w automatycznym trasowaniu, które odrzuca kandydatów z niskim limitem przed obliczeniem punktacji.
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL false open-sse/services/autoCombo/virtualFactory.ts Opcja wymagająca włączenia (domyślnie WYŁĄCZONA): gdy filtr auto/<category>:<tier> nie dopasuje żadnych połączonych kandydatów, przywraca wcześniejsze zachowanie polegające na użyciu pełnej (niefiltrowanej) puli zamiast zwracania pustej puli. Domyślne ustawienie WYŁĄCZONE sprawia, że :free oznacza „tylko warstwa bezpłatna”.
OMNIROUTE_CHAOS_MAX_PANEL 5 open-sse/services/autoCombo/virtualFactory.ts Limit rozmiaru panelu (ograniczony do zakresu 110) dla wariantu rozgłoszeniowego auto/*:chaos — jedno żądanie jest rozsyłane do maksymalnie tylu modeli pochodzących od różnych dostawców.
OMNIROUTE_CHAOS_MIN_PANEL (wartość domyślna silnika) open-sse/services/autoCombo/virtualFactory.ts Ustawienie minimalnego rozmiaru panelu przekazywane do procedury obsługi rozgłaszania chaos; brak ustawienia zachowuje wartość domyślną silnika.
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS (wartość domyślna silnika) open-sse/services/autoCombo/virtualFactory.ts Twardy limit czasu (ms) dla całego rozsyłania do panelu chaos; brak ustawienia zachowuje wartość domyślną silnika.
GROK_AUTH_PATH ~/.grok/auth.json open-sse/services/grokQuotaFetcher.ts Ścieżka do pliku auth.json interfejsu wiersza poleceń Grok, używanego do pobierania tygodniowego limitu grok-web; można ją nadpisać na potrzeby testów lub niestandardowej instalacji interfejsu wiersza poleceń.
AGENTBRIDGE_UPSTREAM_CA_CERT (nieustawione) src/mitm/manager.ts Dodatkowy certyfikat CA (PEM) uznawany za zaufany dla nadrzędnych połączeń TLS AgentBridge.
INSPECTOR_BUFFER_SIZE 1000 src/mitm/inspector/buffer.ts Maksymalna liczba przechwyconych żądań przechowywanych w buforze cyklicznym Inspektora ruchu.
INSPECTOR_MAX_BODY_KB 1024 src/mitm/inspector/buffer.ts Maksymalny rozmiar treści przechwyconego żądania/odpowiedzi (KB), po którego przekroczeniu następuje obcięcie.
INSPECTOR_HTTP_PROXY_PORT 8080 src/mitm/inspector/httpProxyServer.ts Port lokalny serwera proxy HTTP Inspektora ruchu.
INSPECTOR_HTTP_PROXY_AUTOSTART false src/mitm/inspector/httpProxyServer.ts Automatyczne uruchamianie serwera proxy HTTP inspektora podczas rozruchu.
INSPECTOR_TLS_INTERCEPT false src/lib/inspector/captureState.ts Włącza przechwytywanie TLS (MITM) dla rejestrowanego ruchu HTTPS.
INSPECTOR_LLM_HOSTS_EXTRA (nieustawione) src/lib/inspector/captureState.ts Dodatkowe nazwy hostów (rozdzielone przecinkami), traktowane podczas przechwytywania jako punkty końcowe LLM.
INSPECTOR_MASK_SECRETS true src/mitm/inspector/buffer.ts Maskuje dane poufne (nagłówki uwierzytelniające / klucze API) w przechwyconym ruchu.
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES 30 src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts Liczba minut, po których mechanizm ochronny systemowego serwera proxy automatycznie przywraca ustawienia serwera proxy systemu operacyjnego.
INSPECTOR_INTERNAL_INGEST_TOKEN (automatycznie) src/app/api/tools/traffic-inspector/internal/ingest/route.ts Token uwierzytelniający wewnętrzne przekazywanie przechwyconych danych do inspektora.
PLAYGROUND_COMPARE_MAX_COLUMNS 4 src/app/(dashboard)/dashboard/playground/ Maksymalna liczba kolumn wyświetlanych obok siebie w trybie porównywania Playground.
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL (nie ustawiono) src/app/(dashboard)/dashboard/playground/ Domyślny model dla akcji „ulepsz prompt” w Playground (jeśli nie ustawiono, używany jest aktywny model).
BIFROST_ENABLED 1 src/app/api/v1/relay/chat/completions/bifrost/route.ts Główny wyłącznik awaryjny dla proxy sidecara Bifrost. Po ustawieniu na 0 trasa zwraca kod 503 z nagłówkiem X-Bifrost-Killswitch, a operator jest przekierowywany do ścieżki TS. Umożliwia wyłączenie sidecara bez ponownego wdrażania (incydent routera poziomu 1, rotacja kluczy).
BIFROST_BASE_URL (nie ustawiono) src/app/api/v1/relay/chat/completions/bifrost/route.ts Gdy ta zmienna jest ustawiona, trasa proxy sidecara Bifrost przekazuje ruch /v1/chat/completions do tej bramy Go zamiast do procedury obsługi przekaźnika TS. Brak ustawienia → kod 503 z przejściem awaryjnym. Końcowy ukośnik jest usuwany.
BIFROST_PORT 8080 src/lib/services/bootstrap.ts Port, z którym wiąże się nadzorowana, osadzona usługa Bifrost (127.0.0.1:<port>), gdy OmniRoute zarządza cyklem życia sidecara Bifrost. Wartość domyślna to 8080.
BIFROST_API_KEY (nie ustawiono) src/app/api/v1/relay/chat/completions/bifrost/route.ts Klucz API bramy Bifrost (wysyłany jako Authorization: Bearer ...). Jeśli nie jest ustawiony, trasa oczekuje, że żądanie będzie zawierać prawidłowy klucz API OmniRoute; ten klucz służy wyłącznie do uwierzytelniania po stronie bramy.
BIFROST_STREAMING_ENABLED true src/app/api/v1/relay/chat/completions/bifrost/route.ts Gdy wartość to true, trasa sidecara Bifrost przesyła odpowiedzi strumieniowo przez SSE za pośrednictwem bramy, zamiast używać mechanizmu przesyłania strumieniowego TS. Ustaw 0, aby wymusić niestrumieniowe odpowiedzi JSON przesyłane przez bramę.
BIFROST_TIMEOUT_MS 30000 src/app/api/v1/relay/chat/completions/bifrost/route.ts Limit czasu dla każdego żądania podczas przekazywania przez proxy do bramy Bifrost (ms). Po przekroczeniu limitu czasu trasa zwraca ścieżkę przekaźnika TS za pośrednictwem nagłówka X-Bifrost-Fallback.
OMNIROUTE_BIFROST_KEY (nie ustawiono) src/app/api/v1/relay/chat/completions/bifrost/route.ts Alias dla BIFROST_API_KEY (używany przez skrypty odczytujące zmienne środowiskowe przez OMNIROUTE_*). Jeśli ustawione są obie zmienne, pierwszeństwo ma BIFROST_API_KEY.
OMNIROUTE_RELAY_BACKEND ts / auto src/app/api/v1/relay/chat/completions/routingBackend.ts Backend przekaźnika dla /api/v1/relay/chat/completions: ts | bifrost | auto. ts = przekaźnik TypeScript (domyślny, gdy Bifrost nie jest skonfigurowany); auto wybiera Bifrost, gdy ustawiono BIFROST_BASE_URL, a BIFROST_ENABLED0, z automatycznym przejściem awaryjnym do TS, jeśli sidecar jest niedostępny; bifrost wymusza Bifrost (tryb ścisły, bez przejścia awaryjnego). Uwierzytelnianie, ograniczanie częstotliwości żądań, ochrona przed wstrzyknięciami i lista dozwolonych elementów są zawsze wykonywane najpierw w trasie Next. Odpowiedzi zawierają X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason.
RELAY_ROUTING_BACKEND (nie ustawiono) src/app/api/v1/relay/chat/completions/routingBackend.ts Akceptowany alias dla OMNIROUTE_RELAY_BACKEND (te same wartości ts | bifrost | auto). Jeśli ustawione są obie zmienne, pierwszeństwo ma OMNIROUTE_RELAY_BACKEND.
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS 5000 src/app/api/v1/relay/chat/completions/bifrostCooldown.ts Czas karencji (ms) po niepowodzeniu przejścia przez sidecar Bifrost w trybie auto, zanim przekaźnik ponownie spróbuje użyć sidecara; podczas trwania karencji kieruje żądania bezpośrednio do ścieżki TS, a następnie ponawia próbę. 0 wyłącza tę funkcję. Ma zastosowanie tylko wtedy, gdy OMNIROUTE_RELAY_BACKEND=auto.
OMNIROUTE_TLS_CERT (nieustawione) bin/cli/commands/serve.mjs Ścieżka do certyfikatu TLS w formacie PEM służącego do udostępniania omniroute serve przez HTTPS (odpowiednik --tls-cert). Musi być używana razem z OMNIROUTE_TLS_KEY; samodzielny serwer kończy wówczas połączenie TLS na tym samym porcie nasłuchującym (wss:// działa bez zmian). Brak ustawienia → zwykły HTTP. Podanie tylko certyfikatu lub klucza albo nieczytelnej ścieżki powoduje zapisanie ostrzeżenia w dzienniku i pozostanie przy HTTP.
OMNIROUTE_TLS_KEY (nieustawione) bin/cli/commands/serve.mjs Ścieżka do klucza prywatnego TLS w formacie PEM dla HTTPS w omniroute serve (odpowiednik --tls-key). Musi być używana razem z OMNIROUTE_TLS_CERT. Zobacz OMNIROUTE_TLS_CERT.
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED 0 src/lib/security/localEndpoints.ts Główny przełącznik tras /api/local/*. Gdy zmienna jest nieustawiona lub ma wartość 0, wszystkie trasy /api/local/* zwracają kod 503 w środowisku produkcyjnym. W przypadku wdrożeń poza interfejsem loopback musi mieć wartość 1, aby włączyć program uruchamiający Redis i podobne mechanizmy uruchamiania usług lokalnych jednym kliknięciem. Stanowi dodatkowe zabezpieczenie wraz z klasyfikacją strażnika tras isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES w src/server/authz/routeGuard.ts).
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN (nieustawione) src/lib/security/localEndpoints.ts Token Bearer dla klientów wywołujących /api/local/*, którzy nie korzystają z interfejsu loopback (np. aplikacji komputerowej). Gdy jest ustawiony, żądania z adresów IP spoza interfejsu loopback muszą zawierać Authorization: Bearer <token>. Wymagany, gdy OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 we wdrożeniach poza interfejsem loopback.
OMNIROUTE_REDIS_CONTAINER_NAME omniroute-redis bin/cli/commands/redis.mjs Nazwa kontenera dla programu uruchamiającego Redis jednym kliknięciem (omniroute redis up). Używana zarówno przez CLI, jak i interfejs graficzny RedisLauncherPanel.
OMNIROUTE_REDIS_HOST_PORT 6379 bin/cli/commands/redis.mjs Port hosta dla programu uruchamiającego Redis jednym kliknięciem. Zmień go, jeśli port 6379 jest już zajęty na hoście. Wewnętrzny port kontenera pozostaje ustawiony na 6379.
OMNIROUTE_REDIS_BIND_HOST 127.0.0.1 bin/cli/commands/redis.mjs Interfejs hosta, na którym program uruchamiający Redis jednym kliknięciem publikuje usługę. Program uruchamia Redis BEZ hasła, dlatego powiązanie z 0.0.0.0 udostępnia każdemu hostowi w sieci LAN nieuwierzytelnioną usługę Redis — rozszerzaj zakres powiązania tylko wtedy, gdy samodzielnie ustawisz również hasło dla instancji.
REDIS_BIND_HOST 127.0.0.1 docker-compose.yml Interfejs hosta, na którym docker-compose publikuje sidecar Redis (#9286). Redis uruchomiony przez compose działa bez requirepass; kontenery aplikacji łączą się z nim przez sieć compose (redis:6379) — opublikowany port służy wyłącznie narzędziom działającym po stronie hosta. 0.0.0.0 udostępnia nieuwierzytelnioną usługę Redis całej sieci LAN.
REDIS_PORT 6379 docker-compose.yml Port hosta dla sidecara Redis uruchamianego przez compose.
APP_BIND_HOST 127.0.0.1 docker-compose.yml, docker-compose.prod.yml Interfejs hosta, na którym docker-compose publikuje porty własnego panelu aplikacji/API/WS na żywo (#12568). Ponieważ REQUIRE_API_KEY=false jest domyślną wartością w .env.example, ustawienie 0.0.0.0 udostępnia anonimowe proxy LLM /v1 całej sieci LAN/WAN — zakres należy rozszerzać dopiero po ustawieniu REQUIRE_API_KEY=true lub gdy znajdujący się przed nim reverse proxy wymusza własne uwierzytelnianie.
QDRANT_BIND_HOST 127.0.0.1 docker-compose.yml Interfejs hosta, na którym docker-compose publikuje usługę pomocniczą pamięci Qdrant (#12578). Obowiązuje to samo uzasadnienie dotyczące udostępniania w sieci LAN co w przypadku REDIS_BIND_HOST.
BIFROST_BIND_HOST 127.0.0.1 docker-compose.yml Interfejs hosta, na którym docker-compose publikuje usługę pomocniczą routera Bifrost (#12578). Obowiązuje to samo uzasadnienie dotyczące udostępniania w sieci LAN co w przypadku REDIS_BIND_HOST.
REDIS_KEY_PREFIX omniroute: src/shared/utils/rateLimiter.ts Prefiks przestrzeni nazw stosowany do każdego klucza OmniRoute w Redisie (ogranicznik szybkości, pamięć podręczna uwierzytelniania, magazyn limitów, mechanizm awaryjny rozgrzewania). Zapobiega kolizjom kluczy, gdy instancja Redisa jest współdzielona z innymi aplikacjami (#11042).
OMNIROUTE_INTERNAL_SERVICE_TOKEN (nie ustawiono — mechanizm wyłączony) src/lib/api/internalServiceAuth.ts Współdzielony sekret dla wewnętrznych wywołań REST zachowujących tożsamość (#9260): komponenty OmniRoute wywołujące inne lokalne trasy OmniRoute wysyłają go jako x-omniroute-internal-service-token, dzięki czemu tożsamość pierwotnego wywołującego zostaje zachowana. Porównywany za pomocą timingSafeEqual.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE (nie ustawiono) src/lib/api/internalServiceAuth.ts Wariant tokenu usługi wewnętrznej przechowywany w pliku sekretu: ścieżka do pliku, którego treść po usunięciu białych znaków jest tokenem. Uwzględniany tylko wtedy, gdy zmienna bezpośrednia nie jest ustawiona.
OPENROUTER_PROVIDER_STATS_ENABLED true src/lib/catalog/openrouterProviderStats.ts Wzbogaca listę dostawców w panelu o cotygodniowe statystyki rankingu OpenRouter (#9324). Domyślnie włączone; ustaw false, aby całkowicie pominąć pobieranie w tle (nieblokujące i nigdy niepowodujące błędu krytycznego).
OPENROUTER_PROVIDER_STATS_TTL_MS 86400000 (24 godz.) src/lib/catalog/openrouterProviderStats.ts Czas TTL pamięci podręcznej migawki statystyk dostawców OpenRouter, w milisekundach.
OMNIROUTE_REDIS_IMAGE redis:7-alpine bin/cli/commands/redis.mjs Obraz Redisa używany przez uruchamiany jednym kliknięciem program uruchamiający Redis. W razie potrzeby zastąp go obrazem redis:8-alpine lub serwerem lustrzanym prywatnego rejestru.
QDRANT_HOST qdrant (opcjonalny profil klastra) Nazwa hosta usługi pomocniczej Qdrant, gdy aktywny jest profil --profile memory. Wartość domyślna wskazuje nazwę usługi qdrant w sieci wewnętrznej; zmień ją w przypadku wdrożenia zewnętrznego. Używane tylko wtedy, gdy qdrantEnabled ma w kodzie wartość true (src/lib/memory/vectorStore.ts:108).
QDRANT_PORT 6333 (opcjonalny profil klastra) Port REST kontenera pomocniczego Qdrant.
QDRANT_GRPC_PORT 6334 (opcjonalny profil klastra) Port gRPC kontenera pomocniczego Qdrant. Używany przez biblioteki klienckie, które preferują gRPC zamiast REST do operacji strumieniowych.
QDRANT_API_KEY (nieustawione) (opcjonalny profil klastra) Opcjonalny klucz API dla Qdrant Cloud lub uwierzytelnionej instancji lokalnej. Pusta wartość → nagłówek api-key nie jest wysyłany.
QDRANT_COLLECTION omniroute-memory (opcjonalny profil klastra) Nazwa kolekcji osadzeń pamięci konwersacji OmniRoute. Tworzona przy pierwszym uruchomieniu z liczbą wymiarów określoną przez QDRANT_VECTOR_SIZE.
QDRANT_EMBEDDING_MODEL text-embedding-3-small (opcjonalny profil klastra) Nazwa domyślnego modelu osadzania zapisywana w metadanych kolekcji Qdrant. Rzeczywiste osadzenia są generowane przez dostawcę wskazanego w polu embeddingModel w ustawieniach OmniRoute.
QDRANT_VECTOR_SIZE 1536 (opcjonalny profil klastra) Wymiar wektora osadzenia. Musi odpowiadać używanemu modelowi osadzania (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768).
QDRANT_HNSW_EF_CONSTRUCT 128 (opcjonalny profil klastra) Dokładność podczas tworzenia indeksu HNSW. Wyższa wartość = wolniejsze tworzenie, szybsze wyszukiwanie.
OMNIROUTE_ROTATION_ENABLED true open-sse/services/rotationConfig.ts Główny przełącznik rotacji kont konfigurowanej przez operatora. Gdy ma wartość false, żadna z poniższych klas OMNIROUTE_ROTATE_* nie uruchamia przełączenia awaryjnego na inne konto (wyłączenie głównego przełącznika blokuje również domyślnie włączone klasy 429/500/502). Umożliwia nadrzędnemu interfejsowi użytkownika (np. aplikacji komputerowej VibeProxy) odwzorowanie własnych reguł rotacji w mechanizmie przełączania awaryjnego kont po stronie zaplecza.
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS 0 open-sse/services/rotationConfig.ts Czas odczekania (w sekundach) stosowany wobec konta objętego ograniczeniem szybkości, gdy usługa nadrzędna nie podaje wyraźnej informacji o czasie zresetowania limitu. 0 = użycie domyślnego czasu odczekania mechanizmu zamiast stałej wartości nadpisującej.
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET true open-sse/services/rotationConfig.ts Odzwierciedlenie ustawienia interfejsu użytkownika „nie oznaczaj jako objęte ograniczeniem szybkości bez podanego czasu zresetowania limitu”.
OMNIROUTE_ROTATE_ON_429 true open-sse/services/rotationConfig.ts Włącza mechanizm awaryjny dla błędów 429. Gdy ustawiono false (oraz OMNIROUTE_ROTATION_ENABLED=true), błąd 429 nie wyzwala już rotacji konta i zamiast tego jest zwracany klientowi.
OMNIROUTE_ROTATE_429_THRESHOLD 1 open-sse/services/rotationConfig.ts Liczba błędów 429 w okresie OMNIROUTE_ROTATE_429_WINDOW_SECONDS wymagana do rotacji konta. Wartość 1 (domyślna) powoduje natychmiastową rotację, zachowując dotychczasowe działanie.
OMNIROUTE_ROTATE_429_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Ruchome okno czasowe (w sekundach), w którym błędy 429 są zliczane na potrzeby progu OMNIROUTE_ROTATE_429_THRESHOLD.
OMNIROUTE_ROTATE_ON_500 true open-sse/services/rotationConfig.ts Włącza mechanizm awaryjny dla błędów serwera 5xx (z wyjątkiem 502, który ma własną klasę). Gdy ustawiono false, błędy te nie wyzwalają już rotacji konta.
OMNIROUTE_ROTATE_500_THRESHOLD 1 open-sse/services/rotationConfig.ts Liczba błędów 5xx w okresie OMNIROUTE_ROTATE_500_WINDOW_SECONDS wymagana do rotacji konta. Wartość 1 (domyślna) powoduje natychmiastową rotację.
OMNIROUTE_ROTATE_500_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Ruchome okno czasowe (w sekundach), w którym błędy 5xx są zliczane na potrzeby progu OMNIROUTE_ROTATE_500_THRESHOLD.
OMNIROUTE_ROTATE_ON_502 true open-sse/services/rotationConfig.ts Włącza mechanizm awaryjny dla błędów 502 (nieprawidłowa brama). Gdy ustawiono false, błędy 502 nie wyzwalają już rotacji konta.
OMNIROUTE_ROTATE_502_THRESHOLD 1 open-sse/services/rotationConfig.ts Liczba błędów 502 w okresie OMNIROUTE_ROTATE_502_WINDOW_SECONDS wymagana do rotacji konta. Wartość 1 (domyślna) powoduje natychmiastową rotację.
OMNIROUTE_ROTATE_502_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Ruchome okno czasowe (w sekundach), w którym błędy 502 są zliczane na potrzeby progu OMNIROUTE_ROTATE_502_THRESHOLD.
OMNIROUTE_ROTATE_ON_400 false open-sse/services/rotationConfig.ts Opcja dobrowolna (domyślnie WYŁĄCZONA): gdy ustawiono true, zwykły błąd 400 (nieprawidłowe żądanie) również wyzwala rotację konta. Działa wyłącznie dodatkowo — nigdy nie blokuje istniejącego zachowania mechanizmu, zgodnie z którym błąd 400 zawierający tekst dotyczący limitu szybkości lub przydziału nadal uruchamia mechanizm awaryjny niezależnie od tej flagi.
OMNIROUTE_ROTATE_400_THRESHOLD 1 open-sse/services/rotationConfig.ts Liczba błędów 400 w okresie OMNIROUTE_ROTATE_400_WINDOW_SECONDS wymagana przed przełączeniem konta (uwzględniana tylko wtedy, gdy OMNIROUTE_ROTATE_ON_400=true).
OMNIROUTE_ROTATE_400_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Ruchome okno czasowe (w sekundach), w którym błędy 400 są zliczane na potrzeby progu OMNIROUTE_ROTATE_400_THRESHOLD.

Harmonogram rozgrzewania Claude

Rozgrzewanie sterowane przez cron dla połączeń OAuth Anthropic, które mają włączoną tę opcję, dzięki czemu 5-godzinne okno limitu szybkości jest otwierane przez proste zaplanowane żądanie, a nie przez pierwsze rzeczywiste żądanie (#8848). Harmonogram jest wyłączony, chyba że OMNIROUTE_WARMUP_ENABLED ma wartość uznawaną za prawdziwą i połączenie jest oznaczone w settings.claudeWarmup.connections; pusta lista połączeń oznacza, że nic nie jest rozgrzewane, nawet gdy zmienna środowiskowa jest włączona.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_WARMUP_ENABLED (nieustawiona → wyłączone) src/lib/warmupScheduler.ts Główny przełącznik harmonogramu rozgrzewania. Akceptuje 1/true/yes/on (bez rozróżniania wielkości liter, po usunięciu białych znaków). Każda inna wartość lub jej brak pozostawia harmonogram wyłączony.
OMNIROUTE_WARMUP_CRON 0 7 * * * src/lib/warmupScheduler.ts Pięciopolowe wyrażenie cron określające moment uruchomienia rozgrzewania, interpretowane w strefie America/Los_Angeles (strefie czasowej resetowania limitów Anthropic) niezależnie od zegara hosta.
OMNIROUTE_WARMUP_CONCURRENCY 3 src/lib/warmupScheduler.ts Liczba połączeń rozgrzewanych równolegle podczas każdego uruchomienia. Ograniczana do zakresu 110; wartość nienumeryczna powoduje użycie wartości domyślnej 3.
OMNIROUTE_WARMUP_MODEL claude-3-5-haiku-20241022 src/lib/warmupScheduler.ts Model używany do żądania rozgrzewającego. Zmień go tylko wtedy, gdy model domyślny jest niedostępny w Twoim planie; wybierz najtańszy model, który nadal otwiera okno.

Sesje VNC do logowania przez przeglądarkę i alias katalogu danych

Uruchamiane w kontenerze Chromium+VNC służące do interaktywnego przechwytywania poświadczeń podczas logowania przez przeglądarkę (/api/vnc-session) oraz starszy alias DATA_DIR. Wszystkie te elementy są opcjonalne — domyślne ustawienia VNC dotyczą dołączonego obrazu omniroute-vnc-chromium:local i są zastępowane tylko w przypadku niestandardowego obrazu kontenera, portów lub dostrajania cyklu życia.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Tag obrazu Docker dla kontenera logowania Chromium+VNC. Zbuduj docker/vnc-browser/chromium lub wskaż tutaj niestandardowy obraz.
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Plik wykonywalny środowiska uruchomieniowego kontenerów używany do uruchamiania kontenera VNC (np. ustaw na podman).
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Port VNC/noVNC udostępniany wewnątrz kontenera.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Port Chrome DevTools Protocol wewnątrz kontenera.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Ścieżka katalogu profilu Chromium wewnątrz kontenera.
OMNIROUTE_VNC_PROFILE_DIR $HOME/.omniroute/browser-login-profiles src/lib/vncSession/manifest.ts Katalog hosta zawierający zachowane profile logowania w przeglądarce.
OMNIROUTE_VNC_IDLE_MS 600000 (10 min) src/lib/vncSession/manifest.ts Limit czasu bezczynności (ms), po którym nieaktywna sesja VNC jest usuwana.
OMNIROUTE_VNC_MAX_MS 1800000 (30 min) src/lib/vncSession/manifest.ts Bezwzględny limit (ms) czasu trwania pojedynczej sesji VNC.
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Maksymalna liczba równoczesnych sesji VNC.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Limit czasu (ms) oczekiwania, aż przeglądarka w kontenerze będzie gotowa do obsługi CDP.
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Limit czasu (ms) na pobranie przechwyconej sesji/plików cookie po zakończeniu logowania.
OMNIROUTE_VNC_CHROMIUM_ARGS --remote-debugging-port=9222 --no-first-run --no-default-browser-check src/lib/vncSession/manifest.ts Dodatkowe flagi wiersza poleceń przekazywane do Chromium działającego w kontenerze.
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Dedykowana sieć Docker, do której dołącza kontener logowania VNC (#12571), zamiast domyślnej sieci mostkowej, dzięki czemu kontenery równorzędne nie mają dostępu do jego portu mostka CDP.
VIBEPROXY_DATA_DIR (nieustawiona) open-sse/services/notionThreadSessions.ts Starszy alias dla DATA_DIR, sprawdzany tylko wtedy, gdy zarówno DATA_DIR, jak i OMNIROUTE_DATA_DIR są nieustawione. Określa lokalizację pamięci podręcznej sesji wątków internetowych Notion (<dir>/notion-web-thread-sessions.json).

26. Środowisko testów i E2E

Używane przez scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs, scripts/dev/run-ecosystem-tests.mjs oraz scripts/build/uninstall.mjs. W środowiskach produkcyjnych pozostaw wszystkie poniższe wartości nieustawione.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_E2E_BOOTSTRAP_MODE auth scripts/dev/run-next-playwright.mjs Tryb inicjalizacji E2E (auth, fresh, reuse) dla narzędzia uruchamiającego Playwright.
OMNIROUTE_E2E_PASSWORD używa zastępczo INITIAL_PASSWORD scripts/dev/run-next-playwright.mjs Hasło administratora przekazywane do środowiska Playwright.
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Wyłącza lokalne cykliczne sprawdzanie kondycji podczas testów Playwright.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Wyłącza pętlę sprawdzania kondycji tokenów OAuth podczas testów.
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS (nieustawiona) src/lib/tokenHealthCheck.ts Lista dostawców oddzielonych przecinkami, wykluczonych z proaktywnego odświeżania tokenów (np. codex,openai). Jest to ukierunkowana alternatywa dla całkowitego wyłączenia sprawdzania kondycji — dostawcy z krótkim TTL nadal są odświeżani, natomiast dostawcy kaskadowi pozostają wyłącznie reaktywni.
OMNIROUTE_HIDE_HEALTHCHECK_LOGS true scripts/dev/run-next-playwright.mjs Wycisza komunikaty sprawdzania kondycji w standardowym wyjściu Playwright.
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD 0 scripts/dev/run-next-playwright.mjs Pomija kompilację produkcyjną Next.js przed uruchomieniem Playwright (optymalizacja CI).
OMNIROUTE_SKIP_UNINSTALL_HOOK 0 scripts/build/uninstall.mjs Pomija hak dezinstalacyjny OmniRoute (używane przez CI, aby zachować node_modules w stanie nienaruszonym).
ECOSYSTEM_SERVER_WAIT_MS 180000 scripts/dev/run-ecosystem-tests.mjs Czas oczekiwania (ms) na osiągnięcie przez serwer prawidłowego stanu przed uruchomieniem testów ekosystemu/protokołu.
ELECTRON_SMOKE_URL http://127.0.0.1:20128/login scripts/dev/smoke-electron-packaged.mjs Adres URL, pod którym środowisko testów dymnych Electron oczekuje dostępności spakowanej aplikacji.
ELECTRON_SMOKE_TIMEOUT_MS 45000 scripts/dev/smoke-electron-packaged.mjs Całkowity limit czasu (ms), po którym środowisko testów dymnych rezygnuje z dalszego oczekiwania.
ELECTRON_SMOKE_SETTLE_MS 2000 scripts/dev/smoke-electron-packaged.mjs Okres stabilizacji (ms) po załadowaniu strony.
ELECTRON_SMOKE_APP_EXECUTABLE (automatycznie) scripts/dev/smoke-electron-packaged.mjs Jawna ścieżka do pliku wykonywalnego spakowanej aplikacji Electron.
ELECTRON_SMOKE_DATA_DIR (tmpdir) scripts/dev/smoke-electron-packaged.mjs Katalog danych dla testu dymnego Electron.
ELECTRON_SMOKE_KEEP_DATA 0 scripts/dev/smoke-electron-packaged.mjs Ustaw 1, aby zachować katalog danych testu smoke po jego zakończeniu.
ELECTRON_SMOKE_STREAM_LOGS 0 scripts/dev/smoke-electron-packaged.mjs Ustaw 1, aby podczas działania przesyłać strumieniowo logi Electron do standardowego wyjścia.
ELECTRON_SMOKE_COLD_RESTART 0 scripts/dev/smoke-electron-packaged.mjs #7592: uruchom ponownie z tym samym katalogiem danych i sprawdź, czy przy drugim uruchomieniu zostanie wybrany natywny sterownik SQLite.
CLI_DEVIN_BIN (wyszukiwanie w PATH) open-sse/executors/devin-cli.ts Zastąp ścieżkę do pliku binarnego Devin CLI.

Potok tłumaczenia dokumentacji

Używany przez scripts/i18n/run-translation.mjs (polecenie npm run i18n:run). Wszystkie pięć zmiennych jest domyślnie nieustawionych — ustaw je w .env tylko na komputerach, które powinny mieć możliwość uruchamiania translatora dokumentacji.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_TRANSLATION_API_URL (nieustawiona) scripts/i18n/run-translation.mjs Bazowy adres URL backendu tłumaczeń zgodnego z OpenAI.
OMNIROUTE_TRANSLATION_API_KEY (nieustawiona) scripts/i18n/run-translation.mjs Token Bearer dla backendu tłumaczeń (nigdy nie jest zapisywany w logach).
OMNIROUTE_TRANSLATION_MODEL (nieustawiona) scripts/i18n/run-translation.mjs Identyfikator modelu, np. gpt-4o-mini lub cx/gpt-5.4-mini.
OMNIROUTE_TRANSLATION_TIMEOUT_MS 60000 scripts/i18n/run-translation.mjs Limit czasu pojedynczego żądania w milisekundach.
OMNIROUTE_TRANSLATION_CONCURRENCY 4 scripts/i18n/run-translation.mjs Liczba równoległych żądań tłumaczenia podczas przetwarzania wielu plików / ustawień regionalnych.

27. Kanał Radar (samodzielny hosting)

Opcjonalny dodatek kontrolowany przez flagę funkcji RADAR_ENABLED (domyślnie wyłączoną — jest to flaga funkcji przełączana za pomocą Ustawień/bazy danych, a nie zmienna środowiskowa; zobacz docs/frameworks/RADAR.md). Pierwsze cztery poniższe zmienne są opcjonalnymi ustawieniami zastępującymi dla samodzielnie hostowanego lub sforkowanego kanału oraz przepływów kluczy wspierających. Piąta, RADAR_ADMIN_URL, jest oddzielnym, domyślnie nieustawionym odnośnikiem do prywatnego panelu operacyjnego właściciela. Pełna dokumentacja modułu oraz jego kompletna sekwencja aktywacji i konfiguracji z przewodnikiem znajduje się w docs/frameworks/RADAR.md.

Ogólny czytnik ogłoszeń na stronie głównej oraz w dzienniku zmian nie jest konfigurowany za pomocą zmiennej środowiskowej i nie zależy od flagi funkcji RADAR_ENABLED. Odczytuje publiczny adres URL news.json repozytorium, zadeklarowany w src/shared/utils/releaseNotes.ts, wyłącznie za pomocą GET; identyfikatory odrzuconych ogłoszeń pozostają w lokalnej pamięci przeglądarki.

Zmienna Wartość domyślna Plik źródłowy Opis
RADAR_FEED_URL https://radar.omniroute.online src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts Bazowy adres URL współdzielony przez oddzielnie podpisane kanały katalogu, poleceń, ofert dla wspierających oraz Intel. Zmień go, aby wskazywał samodzielnie hostowaną lub sforkowaną usługę.
RADAR_FEED_PUBKEY (przypięty klucz domyślny) src/lib/radar/pinnedKeys.ts Klucz publiczny Ed25519 (SPKI w formacie DER zakodowanym jako base64 lub PEM), używany do weryfikowania podpisów niestandardowego kanału.
RADAR_CONTRIBUTOR_CLAIM_URL https://radar.omniroute.online/auth/github src/lib/radar/links.ts Adres URL otwierany przez przycisk „Jestem współtwórcą” w panelu (przepływ odbioru klucza wspierającego przez GitHub OAuth).
RADAR_SUPPORTER_PLANS_URL https://radar.omniroute.online/planos src/lib/radar/links.ts Adres URL otwierany przez przycisk „Wesprzyj projekt” w panelu (strona płatności/planów).
RADAR_ADMIN_URL (nieustawiona) src/lib/radar/links.ts Prywatny odnośnik do panelu operacyjnego przeznaczony wyłącznie dla właściciela. Wymagany jest protokół HTTPS, z wyjątkiem przekierowania SSH do interfejsu pętli zwrotnej przez HTTP; brak wartości lub nieprawidłowa wartość nie powoduje utworzenia elementu nawigacyjnego.

Audyt: usunięte / nieużywane zmienne

Poniższe zmienne występowały w poprzednich wersjach .env.example, ale nie mają żadnych odwołań w czasie wykonywania w obecnej bazie kodu. Zostały usunięte:

Zmienna Powód
STORAGE_DRIVER=sqlite Nigdy nie jest odczytywana przez żaden plik źródłowy. SQLite jest jedynym obsługiwanym sterownikiem — wybór nie jest potrzebny.
INSTANCE_NAME=omniroute Występuje w starej dokumentacji i szablonach środowiska, ale nie jest używana podczas działania. Może powrócić w przyszłej funkcji wielu instancji.
SQLITE_MAX_SIZE_MB=2048 Nie występuje w kodzie źródłowym. Rozmiar bazy danych nie jest sztucznie ograniczany.
SQLITE_CLEAN_LEGACY_FILES=true Nie występuje w kodzie źródłowym. Mechanizm czyszczenia starszych plików został prawdopodobnie usunięty.
CLI_ROO_BIN Nie jest zarejestrowana w src/shared/services/cliRuntime.ts.
CLI_KIMI_CODING_BIN Nie jest zarejestrowana w src/shared/services/cliRuntime.ts (Kimi Coding używa OAuth, a nie pliku binarnego CLI).
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET Nie występują nigdzie w kodzie źródłowym.
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 Usunięte w v3.8.0. Środowisko uruchomieniowe nie odczytuje już tych zmiennych środowiskowych — dane uwierzytelniające pochodzą z Dashboard / data/provider-credentials.json / zaszyfrowanej bazy danych.
CURSOR_PROTOBUF_DEBUG Usunięta w v3.8.0. Moduł wykonawczy Cursor używa CURSOR_DEBUG / CURSOR_STREAM_DEBUG (zob. §22).
CLI_COMPAT_KIRO Usunięta w v3.8.0. Kiro znajduje się w CLI_COMPAT_OMITTED_PROVIDER_IDS — jego przełącznik nie ma żadnego wpływu.
QIANFAN_API_KEY Usunięta wraz z innymi nieużywanymi atrapami kluczy API dostawców w v3.8.0.

Korekty wartości domyślnych

Zmienna Stara wartość w .env.example Rzeczywista wartość domyślna w kodzie Poprawka
APP_LOG_RETENTION_DAYS 90 7 Usunięto mylącą wartość; udokumentowano 7 jako domyślną
CALL_LOG_RETENTION_DAYS 90 7 Usunięto mylącą wartość; udokumentowano 7 jako domyślną

Ponowne generowanie konfiguracji OpenCode (narzędzia doraźne)

Używane przez scripts/ad-hoc/regen-opencode-config.ts do ponownego generowania pliku opencode.json z dokładnymi wartościami limit.context i limit.output pobieranymi z działającej instancji OmniRoute. Żadna z nich nie jest wymagana do normalnego działania — skrypt jest wyłącznie narzędziem dla programistów.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_URL http://localhost:20128 scripts/ad-hoc/regen-opencode-config.ts Bazowy adres URL instancji OmniRoute używany do odpytywania punktu końcowego /v1/models.
OMNIROUTE_KEY (nieustawiona) scripts/ad-hoc/regen-opencode-config.ts Klucz API służący do uwierzytelniania w punkcie końcowym OmniRoute /v1/models. Jeśli nie jest ustawiony, używa OPENCODE_API_KEY.
OPENCODE_API_KEY (nieustawiona) scripts/ad-hoc/regen-opencode-config.ts Klucz API w stylu OpenCode (sk-...) zapisywany w ponownie wygenerowanym pliku opencode.json. Jeśli nie jest ustawiony, używa OMNIROUTE_KEY.

Mechanizm oceny kompresji offline (narzędzia ad hoc)

Używany przez scripts/compression-eval/index.ts, interfejs CLI do oceny kompresji offline. Nie jest wymagany do normalnego działania — służy wyłącznie jako narzędzie deweloperskie.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_EVAL_CREDENTIALS {} (pusty) scripts/compression-eval/index.ts Dostarczone przez operatora dane uwierzytelniające JSON dla dostawcy używanego przez interfejs CLI do oceny kompresji offline (przetwarzane za pomocą JSON.parse). Pozostaw nieustawioną, aby wykonać próbne uruchomienie.

Sesje przeglądarki VNC

Używane przez src/lib/vncSession/manifest.ts do konfigurowania opartych na Dockerze sesji Chromium bez interfejsu graficznego dla dostawców automatyzacji przeglądarki. Wszystkie są opcjonalne — wartości domyślne przedstawiono poniżej.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Ścieżka do pliku binarnego Docker używanego do uruchamiania kontenerów VNC.
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Obraz Docker dla kontenera VNC Chromium.
OMNIROUTE_VNC_CHROMIUM_ARGS (wbudowane flagi) src/lib/vncSession/manifest.ts Dodatkowe argumenty CLI Chromium przekazywane do przeglądarki wewnątrz kontenera.
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Port VNC wewnątrz kontenera.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Port protokołu Chrome DevTools wewnątrz kontenera.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Katalog profilu wewnątrz kontenera.
OMNIROUTE_VNC_PROFILE_DIR (nieustawiona) src/lib/vncSession/manifest.ts Katalog po stronie hosta przeznaczony na trwałe profile przeglądarki.
OMNIROUTE_VNC_IDLE_MS 600000 src/lib/vncSession/manifest.ts Limit czasu bezczynności (ms), po którym sesja VNC jest zamykana.
OMNIROUTE_VNC_MAX_MS 1800000 src/lib/vncSession/manifest.ts Maksymalny czas trwania sesji (ms).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Maksymalna liczba jednoczesnych sesji VNC.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Limit czasu oczekiwania na gotowość przeglądarki (ms).
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Limit czasu zbierania danych/czyszczenia (ms).
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Dedykowana sieć Docker, do której dołącza kontener (#12571), odseparowana od domyślnej sieci typu bridge.
VIBEPROXY_DATA_DIR (nieustawiona) open-sse/services/notionThreadSessions.ts Katalog do trwałego przechowywania sesji wątków Notion.

Uwierzytelnianie usług wewnętrznych

Zmienna Wartość domyślna Opis
OMNIROUTE_INTERNAL_SERVICE_TOKEN Token podany bezpośrednio do uwierzytelniania między usługami płaszczyzny zarządzania.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE Ścieżka do pliku zawierającego token usługi wewnętrznej (preferowana w kontenerach; zastępuje zmienną podaną bezpośrednio).

Statystyki dostawców OpenRouter

Zmienna Wartość domyślna Opis
OPENROUTER_PROVIDER_STATS_ENABLED true Ustaw na false, aby pominąć pobieranie statystyk poszczególnych dostawców OpenRouter na potrzeby wzbogacania katalogu.
OPENROUTER_PROVIDER_STATS_TTL_MS 3600000 Czas TTL pamięci podręcznej (ms) dla pobranych statystyk dostawców OpenRouter.

Osadzone powiązanie Redis

Zmienna Wartość domyślna Opis
REDIS_BIND_HOST 127.0.0.1 Adres nasłuchiwania wbudowanej usługi Redis.
REDIS_PORT 6379 Port wbudowanej usługi Redis.
OMNIROUTE_REDIS_BIND_HOST Nadpisanie adresu nasłuchiwania wbudowanej usługi Redis w zakresie OmniRoute.

24. Dodatki w wydaniu v3.8.50

Te ustawienia wprowadzono po utworzeniu poprzedniej migawki kontraktu środowiskowego.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS 2000 src/shared/middleware/chatBodyAdmission.ts Maksymalny czas oczekiwania na miejsce dla obciążającego żądania czatu przed zwróceniem ponawialnego błędu 503; krótkie, ograniczone oczekiwanie szereguje nagłe serie żądań agentów zamiast natychmiast zwracać 503. Wartość 0 przywraca natychmiastowe odrzucanie.
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES 4194304 (4 MB) src/shared/middleware/chatBodyAdmission.ts Budżet bajtów oczekujących w kolejce: ogranicza łączną liczbę bajtów buforowanych treści żądań oczekujących w obrębie całego procesu, aby oczekiwanie nie zwiększało nadmiernie użycia sterty (#4380). Żądania przekraczające budżet natychmiast otrzymują ponawialny błąd 503.
OMNIROUTE_CHAT_VIRTUAL_TTL_MS 60000 (60 s) src/shared/middleware/chatBodyAdmission.ts Przestarzałe ustawienie bez efektu od #10110: tory przyjmowania żądań dla poszczególnych sesji usunięto na rzecz jednego budżetu obejmującego cały proces. Akceptowane ze względu na zgodność konfiguracji; ignorowane.
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS 64 src/shared/middleware/chatBodyAdmission.ts Przestarzałe ustawienie bez efektu od #10110: tory przyjmowania żądań dla poszczególnych sesji usunięto na rzecz jednego budżetu obejmującego cały proces. Akceptowane ze względu na zgodność konfiguracji; ignorowane.
OMNIROUTE_CHAT_VIRTUAL_LANES 0 (wyłączone) open-sse/services/admission/runtime.ts Adaptacyjne wirtualne tory przyjmowania żądań w środowisku wykonawczym (#9654): główny przełącznik adaptacyjnej bramy dla poszczególnych dzierżawców (system 2). Nie należy ich mylić z przestarzałymi zmiennymi torów dla poszczególnych połączeń powyżej (TTL_MS / MAX_SESSIONS, bez efektu od #10110). Flaga funkcji w panelu ma tę samą nazwę; zmienna środowiskowa ma pierwszeństwo przed ustawieniem w panelu; wymaga ponownego uruchomienia.
OMNIROUTE_RUNNOW_TIMEOUT_MS 30000 src/app/api/jobs/[id]/run-now/route.ts Ogranicza czas, przez jaki wywołanie natychmiastowego uruchomienia czeka na trwające zadanie przed rozpoczęciem wykonania oczekującego w kolejce.
ADOBE_FIREFLY_BROWSER_REFRESH włączone open-sse/services/adobeFireflySession.ts Utrzymuje aktualność stanu IMS i stanu ryzyka przeglądarki za pośrednictwem przypisanych do konta sesji Chrome CDP; ustaw 0, aby wyłączyć.
ADOBE_FIREFLY_SESSION_DISK włączone open-sse/services/adobeFireflySession.ts Utrwala naprawione sesje Adobe w katalogu DATA_DIR; ustaw 0, aby przechowywać stan wyłącznie w pamięci.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Minimalny odstęp między przesłaniami żądań generowania do Adobe Firefly.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Dodatkowy okres bezczynności po co trzecim pomyślnym przesłaniu do Adobe.
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Rzeczywisty tryb bez interfejsu graficznego przeznaczony wyłącznie do debugowania; Adobe colligo zwykle odrzuca powstałą w ten sposób sesję ryzyka.
CHROME_PATH wykrywanie automatyczne open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts Opcjonalna bezwzględna ścieżka do pliku wykonywalnego Chrome, używana przez wykonawców sterowanych za pomocą przeglądarki, gdy automatyczne wykrywanie na danej platformie jest niewystarczające.
TELEGRAM_BOT_TOKEN (nieustawione) src/lib/telegram/config.ts Token BotFather, który włącza przychodzący webhook i podpisuje initData aplikacji Mini App.
TELEGRAM_WEBHOOK_SECRET (nieustawione) src/lib/telegram/config.ts Wspólny sekret zarejestrowany za pomocą setWebhook i weryfikowany względem nagłówka X-Telegram-Bot-Api-Secret-Token przy każdym dostarczeniu do webhooka. Wymagany dla ścieżki webhooka; brak ustawienia oznacza, że dostarczenia do webhooka są odrzucane z kodem 503.
TELEGRAM_DEFAULT_MODEL auto/chat src/lib/telegram/chatProxy.ts Model używany do odpowiedzi na czacie Telegram.
TELEGRAM_BOT_API_BASE https://api.telegram.org src/lib/telegram/config.ts Nadpisanie bazowego adresu URL Bot API na potrzeby serwerów proxy lub samodzielnie hostowanych serwerów Bot API.
TELEGRAM_WEBHOOK_TIMEOUT_MS 60000 src/lib/telegram/config.ts Limit czasu wychodzących wywołań Bot API w milisekundach.
OMNIROUTE_OPTIONAL_PACK_TAR 1 (włączone) scripts/build/optionalPackStaging.mjs Ustaw 0, aby pominąć generowanie archiwów .tar.gz podczas przygotowywania opcjonalnych pakietów ML/przeglądarki dla autonomicznego drzewa Electron (katalogi pakietów i plik optional-packs.index.json nadal są tworzone). Używane przez proces wydawania wersji desktopowej w celu zmniejszenia rozmiaru przesyłanych artefaktów.

ChatGPT Web (Codex)

Globalne wartości domyślne dla przeglądarki działającej bez interfejsu graficznego i wychodzącego tunelu narzędzi. Wartości połączenia ustawione w panelu mają pierwszeństwo.

Zmienna Wartość domyślna Plik źródłowy Opis
CHATGPT_WEB_CODEX_CHROME_PATH (wykrywanie automatyczne) open-sse/executors/chatgpt-web-codex.ts Jawna ścieżka do Chrome/Chromium na potrzeby działania z npm, systemd i PM2.
CHROME_PATH (wykrywanie automatyczne) open-sse/executors/chatgpt-web-codex.ts Wspólna wartość zapasowa dla jawnej ścieżki do Chrome/Chromium.
CHATGPT_WEB_CODEX_CDP_URL (nieustawiona) open-sse/executors/chatgpt-web-codex.ts Wewnętrzny punkt końcowy CDP; Docker korzysta z kontenera pomocniczego na porcie 9223.
CDP_PROXY_TOKEN (nieustawiona) docker/chatgpt-web-codex-browser/cdp-proxy.mjs Jeśli ustawiono, każde żądanie do kontenera pomocniczego proxy CDP musi przesyłać tę wartość w nagłówku X-Omni-Cdp-Token (#13679). Bez tej wartości proxy przekazuje żądania bez uwierzytelniania — ochronę zapewnia wtedy wyłącznie izolacja sieciowa sieci Compose chatgpt-web-codex-net. Wygeneruj za pomocą openssl rand -hex 32.
CHATGPT_WEB_CODEX_TUNNEL_ID (nieustawiona) open-sse/executors/chatgpt-web-codex.ts Globalny identyfikator tunelu OpenAI dla lokalnych rund narzędzia Codex.
CHATGPT_WEB_CODEX_RUNTIME_KEY (nieustawiona) open-sse/executors/chatgpt-web-codex.ts Globalny klucz wykonawczy tunelu; nigdy nie zapisuj go w logach.
CHATGPT_WEB_CODEX_CONNECTOR_NAME OmniRoute Codex v2 open-sse/executors/chatgpt-web-codex.ts Dokładna nazwa nowo utworzonego niestandardowego konektora ChatGPT dla mostu MCP.
CODEX_CHATGPT_WEB_HOME <DATA_DIR>/chatgpt-web-codex open-sse/vendor/codex-chatgpt-web/config.ts Dedykowany katalog na stan przeglądarki, brokera i tunelu.
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS 0 open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts Przy wartości 1 na każdym punkcie kontrolnym przechwytywane są obrazy diagnostyczne przeglądarki.
CODEX_CHATGPT_WEB_LAUNCHER (nieustawiona) open-sse/vendor/codex-chatgpt-web/config.ts Opcjonalna ścieżka bezwzględna do trwałego pliku binarnego launchera.
CODEX_CHATGPT_WEB_BUN (wykrywanie automatyczne) open-sse/vendor/codex-chatgpt-web/config.ts Opcjonalna ścieżka bezwzględna do pliku binarnego środowiska uruchomieniowego Bun.
CODEX_WEB_GPT_BUN (nieustawiona) open-sse/vendor/codex-chatgpt-web/config.ts Starsza wartość zapasowa dla CODEX_CHATGPT_WEB_BUN; nowe konfiguracje używają nazwy kanonicznej.

Most OmniConductor

Długotrwały klient SSE, który odwzorowuje zadania centrum OmniConductor w lokalnym A2A TaskManager (src/lib/conductor/). Funkcja opcjonalna — most uruchamia się tylko wtedy, gdy ustawiono CONDUCTOR_HUB_URL. Wyłącznie po stronie serwera: token centrum nigdy nie może trafić do przeglądarki.

Zmienna Wartość domyślna Plik źródłowy Opis
CONDUCTOR_HUB_URL (pusta) src/lib/conductor/boot.ts Bazowy adres URL centrum OmniConductor (np. http://127.0.0.1:7910). Brak ustawienia = most wyłączony.
CONDUCTOR_HUB_TOKEN (pusta) src/lib/conductor/boot.ts Dane uwierzytelniające centrum dla kanału SSE — utwórz w centrum peera rodzaju spokesperson (POST /v1/peers, administrator).
CONDUCTOR_ORCHESTRATOR_TOKEN (pusta) src/lib/conductor/hubProxy.ts Dane uwierzytelniające do delegowania zadań przychodzących A2A→centrum (POST /v1/tasks); jeśli nie ustawiono, używany jest CONDUCTOR_HUB_TOKEN.
CONDUCTOR_SPOKESPERSON_URL http://127.0.0.1:7920 src/lib/conductor/faroProxy.ts Bazowy adres URL usługi spokesperson (Faro) działającej za serwerem proxy czatu panelu (/api/conductor/ask).

Planowanie uwzględniające limity

Używane przez open-sse/services/combo.ts i src/lib/quota/quotaScheduler.ts do sprawdzania budżetu tokenów przed wysłaniem żądania. Funkcja opcjonalna — jeśli nie jest ustawiona, domyślne działanie routingu pozostaje bez zmian.

Zmienna Wartość domyślna Plik źródłowy Opis
OMNIROUTE_QUOTA_AWARE_ROUTING 0 open-sse/services/combo.ts Gdy ma wartość 1, pomija połączenia, których budżet tokenów na okno (rateLimitOverrides.tpm, tabela provider_quota_state) nie wystarcza na pokrycie szacowanego kosztu żądania przed jego wysłaniem. W przypadku braku skonfigurowanego budżetu żądanie jest przepuszczane.