* 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.
669 KiB
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.examplemusi być opisana tutaj.npm run check:env-doc-syncwymusza tę zgodność podczas zatwierdzania zmian oraz w CI. Aby celowo pominąć zmienną, dodaj ją do listy dozwolonych wyjątków w plikuscripts/check/check-env-doc-sync.mjs.
Spis treści
- 1. Wymagane sekrety
- 2. Pamięć masowa i baza danych
- 3. Sieć i porty
- 4. Bezpieczeństwo i uwierzytelnianie
- 5. Oczyszczanie danych wejściowych i ochrona danych osobowych
- 6. Zasady dotyczące narzędzi i routingu
- 7. Adresy URL i synchronizacja z chmurą
- 8. Wychodzący serwer proxy
- 9. Integracja z narzędziami CLI
- 10. Integracje z wewnętrznym agentem i MCP
- 11. Dane uwierzytelniające dostawców OAuth
- 12. Nadpisywanie nagłówka User-Agent dostawców
- 13. Zgodność odcisku cyfrowego CLI
- 14. Dostawcy kluczy API
- 15. Ustawienia limitów czasu
- 16. Rejestrowanie zdarzeń
- 17. Optymalizacja pamięci
- 18. Synchronizacja cennika
- 19. Synchronizacja modeli (środowisko deweloperskie)
- 20. Ustawienia specyficzne dla dostawców
- 21. Stan serwera proxy
- 22. Debugowanie
- 23. Integracja z GitHub
- 24. Piaskownica umiejętności (v3.8.0+)
- 27. Kanał Radar (samodzielny hosting)
- Scenariusze wdrażania
- Audyt: usunięte / nieużywane zmienne
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
.envzawierających prawdziwe sekrety. Plik.gitignorejuż 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 katalogDATA_DIRnie może zapewnić tych gwarancji, uruchamianie zostaje bezpiecznie przerwane przed zastosowaniem migracji. PrzenieśDATA_DIRna wolumin obsługujący te mechanizmy; nie używajDISABLE_SQLITE_AUTO_BACKUPdo 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ść vscode — 1/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 (1–32). 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 2–3× 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 (40–50) 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 MiB–2 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. 40–50 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_URLna 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_URLjako wewnętrzny adres URL pętli zwrotnej/kontenera dla zadań komunikacji między serwerami. Nie używaj przeglądarkowego nagłówkaOriginani 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 żeOMNIROUTE_TRUST_PROXYjest 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 przeztests/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 256–1000000. 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
- Przejdź do Google Cloud Console → Dane logowania
- Utwórz identyfikator klienta OAuth 2.0 (typ: „Aplikacja internetowa”)
- Dodaj adres URL swojego serwera jako autoryzowany identyfikator URI przekierowania
- 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.ts→buildHeaders()
| 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_KEYdla 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 ijina-searchnie obciążają kosztami klucza środowiskowego klastra, gdy istnieje połączeniejina-ai(lub współdzielonejina-reader) skonfigurowane w panelu —getProviderCredentialsuzupełnia dane według zasady „pierwsza dostępna wartość”.JINA_AI_API_KEY/JINA_API_KEYsą używane tylko wtedy, gdy nie istnieje użyteczny klucz z panelu. Dzienniki wywołań przypisują rezerwową wartość ze środowiska jakoconnection_id=env:JINA_AI_API_KEY. Karta Reader (jina-reader,r.jina.ai) nigdy nie obsługuje/v1/embeddingsani/v1/rerank.Gemini:
gemini/gemini-embedding-2(aliasgoogle/gemini-embedding-2) najpierw korzysta z połączeniageminiskonfigurowanego w panelu.GEMINI_API_KEY/GOOGLE_API_KEYsą używane tylko wtedy, gdy nie istnieje użyteczny klucz z panelu. Dzienniki wywołań przypisują rezerwową wartość ze środowiska jakoconnection_id=env:GEMINI_API_KEY. Natywny ruch multimodalny używax-goog-api-keywzględem:embedContent/:batchEmbedContents— N elementów OpenAIinputdaje 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 8192–12288 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.ts → open-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 0–600000 ms. |
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS |
30000 |
src/lib/resilience/settings/normalize.ts |
Ruchome okno użytecznych danych wyjściowych, ograniczone do 1000–600000 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 1–1000000. |
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 1–1000000 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 przezopen-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, toRELAY_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=trueotwiera ścieżkę ruchu wychodzącego dla dowolnego kodu umiejętności. We współdzielonych wdrożeniach należy używać tej opcji wraz zOUTBOUND_SSRF_GUARD_ENABLED=trueoraz rygorystycznymi zasadamiCORS_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 1–10) 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_ENABLED ≠ 0, 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 1–10; 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. |