# Environment Variables Reference (Türkçe) 🌐 **Languages:** 🇺🇸 [English](../../../../reference/ENVIRONMENT.md) · 🇪🇹 [am](../../../am/docs/reference/ENVIRONMENT.md) · 🇸🇦 [ar](../../../ar/docs/reference/ENVIRONMENT.md) · 🇦🇿 [az](../../../az/docs/reference/ENVIRONMENT.md) · 🇧🇬 [bg](../../../bg/docs/reference/ENVIRONMENT.md) · 🇧🇩 [bn](../../../bn/docs/reference/ENVIRONMENT.md) · 🇧🇦 [bs](../../../bs/docs/reference/ENVIRONMENT.md) · 🇨🇿 [cs](../../../cs/docs/reference/ENVIRONMENT.md) · 🇩🇰 [da](../../../da/docs/reference/ENVIRONMENT.md) · 🇩🇪 [de](../../../de/docs/reference/ENVIRONMENT.md) · 🇬🇷 [el](../../../el/docs/reference/ENVIRONMENT.md) · 🇪🇸 [es](../../../es/docs/reference/ENVIRONMENT.md) · 🇪🇪 [et](../../../et/docs/reference/ENVIRONMENT.md) · 🇮🇷 [fa](../../../fa/docs/reference/ENVIRONMENT.md) · 🇫🇮 [fi](../../../fi/docs/reference/ENVIRONMENT.md) · 🇫🇷 [fr](../../../fr/docs/reference/ENVIRONMENT.md) · 🇮🇪 [ga](../../../ga/docs/reference/ENVIRONMENT.md) · 🇮🇳 [gu](../../../gu/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ha](../../../ha/docs/reference/ENVIRONMENT.md) · 🇮🇱 [he](../../../he/docs/reference/ENVIRONMENT.md) · 🇮🇳 [hi](../../../hi/docs/reference/ENVIRONMENT.md) · 🇭🇷 [hr](../../../hr/docs/reference/ENVIRONMENT.md) · 🇭🇺 [hu](../../../hu/docs/reference/ENVIRONMENT.md) · 🇦🇲 [hy](../../../hy/docs/reference/ENVIRONMENT.md) · 🇮🇩 [id](../../../id/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ig](../../../ig/docs/reference/ENVIRONMENT.md) · 🇮🇹 [it](../../../it/docs/reference/ENVIRONMENT.md) · 🇯🇵 [ja](../../../ja/docs/reference/ENVIRONMENT.md) · 🇬🇪 [ka](../../../ka/docs/reference/ENVIRONMENT.md) · 🇰🇭 [km](../../../km/docs/reference/ENVIRONMENT.md) · 🇮🇳 [kn](../../../kn/docs/reference/ENVIRONMENT.md) · 🇰🇷 [ko](../../../ko/docs/reference/ENVIRONMENT.md) · 🇱🇹 [lt](../../../lt/docs/reference/ENVIRONMENT.md) · 🇱🇻 [lv](../../../lv/docs/reference/ENVIRONMENT.md) · 🇮🇳 [ml](../../../ml/docs/reference/ENVIRONMENT.md) · 🇮🇳 [mr](../../../mr/docs/reference/ENVIRONMENT.md) · 🇲🇾 [ms](../../../ms/docs/reference/ENVIRONMENT.md) · 🇲🇹 [mt](../../../mt/docs/reference/ENVIRONMENT.md) · 🇲🇲 [my](../../../my/docs/reference/ENVIRONMENT.md) · 🇳🇵 [ne](../../../ne/docs/reference/ENVIRONMENT.md) · 🇳🇱 [nl](../../../nl/docs/reference/ENVIRONMENT.md) · 🇳🇴 [no](../../../no/docs/reference/ENVIRONMENT.md) · 🇮🇳 [or](../../../or/docs/reference/ENVIRONMENT.md) · 🇮🇳 [pa](../../../pa/docs/reference/ENVIRONMENT.md) · 🇵🇭 [phi](../../../phi/docs/reference/ENVIRONMENT.md) · 🇵🇱 [pl](../../../pl/docs/reference/ENVIRONMENT.md) · 🇵🇹 [pt](../../../pt/docs/reference/ENVIRONMENT.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/ENVIRONMENT.md) · 🇷🇴 [ro](../../../ro/docs/reference/ENVIRONMENT.md) · 🇷🇺 [ru](../../../ru/docs/reference/ENVIRONMENT.md) · 🇱🇰 [si](../../../si/docs/reference/ENVIRONMENT.md) · 🇸🇰 [sk](../../../sk/docs/reference/ENVIRONMENT.md) · 🇸🇮 [sl](../../../sl/docs/reference/ENVIRONMENT.md) · 🇷🇸 [sr](../../../sr/docs/reference/ENVIRONMENT.md) · 🇸🇪 [sv](../../../sv/docs/reference/ENVIRONMENT.md) · 🇰🇪 [sw](../../../sw/docs/reference/ENVIRONMENT.md) · 🇮🇳 [ta](../../../ta/docs/reference/ENVIRONMENT.md) · 🇮🇳 [te](../../../te/docs/reference/ENVIRONMENT.md) · 🇹🇭 [th](../../../th/docs/reference/ENVIRONMENT.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/ENVIRONMENT.md) · 🇵🇰 [ur](../../../ur/docs/reference/ENVIRONMENT.md) · 🇺🇿 [uz](../../../uz/docs/reference/ENVIRONMENT.md) · 🇻🇳 [vi](../../../vi/docs/reference/ENVIRONMENT.md) · 🇳🇬 [yo](../../../yo/docs/reference/ENVIRONMENT.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/reference/ENVIRONMENT.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/reference/ENVIRONMENT.md) --- > OmniRoute tarafından tanınan tüm ortam değişkenleri için eksiksiz başvuru. > Hızlı başlangıç şablonu için [`.env.example`](../../.env.example) dosyasına bakın. > [!IMPORTANT] > Burada belgelenen her değişken `.env.example` dosyasında da yer almalı ve > `.env.example` dosyasındaki her değişken burada da bulunmalıdır. `npm run check:env-doc-sync` > bunu commit sırasında ve CI içinde zorunlu kılar. Bir değişkeni kasıtlı olarak hariç tutmak için > `scripts/check/check-env-doc-sync.mjs` içindeki izin verilenler listesine ekleyin. --- ## İçindekiler - [1. Gerekli Gizli Değerler](#1-gerekli-gizli-değerler) - [2. Depolama ve Veritabanı](#2-depolama-ve-veritabanı) - [3. Ağ ve Portlar](#3-ağ-ve-portlar) - [4. Güvenlik ve Kimlik Doğrulama](#4-güvenlik-ve-kimlik-doğrulama) - [5. Girdi Temizleme ve Kişisel Veri Koruması](#5-girdi-temizleme-ve-kişisel-veri-koruması) - [6. Araç ve Yönlendirme Politikaları](#6-araç-ve-yönlendirme-politikaları) - [7. URL'ler ve Bulut Senkronizasyonu](#7-urller-ve-bulut-senkronizasyonu) - [8. Giden Proxy](#8-giden-proxy) - [9. CLI Aracı Entegrasyonu](#9-cli-aracı-entegrasyonu) - [10. Dahili Agent ve MCP Entegrasyonları](#10-dahili-agent-ve-mcp-entegrasyonları) - [11. OAuth Sağlayıcı Kimlik Bilgileri](#11-oauth-sağlayıcı-kimlik-bilgileri) - [12. Sağlayıcı User-Agent Geçersiz Kılmaları](#12-sağlayıcı-user-agent-geçersiz-kılmaları) - [13. CLI Parmak İzi Uyumluluğu](#13-cli-parmak-izi-uyumluluğu) - [14. API Anahtarı Sağlayıcıları](#14-api-anahtarı-sağlayıcıları) - [15. Zaman Aşımı Ayarları](#15-zaman-aşımı-ayarları) - [16. Günlük Kaydı](#16-günlük-kaydı) - [17. Bellek Optimizasyonu](#17-bellek-optimizasyonu) - [18. Fiyatlandırma Senkronizasyonu](#18-fiyatlandırma-senkronizasyonu) - [19. Model Senkronizasyonu (Geliştirme)](#19-model-senkronizasyonu-geliştirme) - [20. Sağlayıcıya Özgü Ayarlar](#20-sağlayıcıya-özgü-ayarlar) - [21. Proxy Sağlık Durumu](#21-proxy-sağlık-durumu) - [22. Hata Ayıklama](#22-hata-ayıklama) - [23. GitHub Entegrasyonu](#23-github-entegrasyonu) - [24. Skills Sandbox (v3.8.0+)](#24-skills-sandbox-v380) - [27. Radar Akışı (Kendi Sunucunuzda Barındırma)](#27-radar-akışı-kendi-sunucunuzda-barındırma) - [Dağıtım Senaryoları](#dağıtım-senaryoları) - [Denetim: Kaldırılan / Kullanılmayan Değişkenler](#denetim-kaldırılan--kullanılmayan-değişkenler) --- ## 1. Gerekli Gizli Değerler **Evet** olarak işaretlenmiş ve ayarlanmamış gizli değerler ilk çalıştırmada otomatik olarak oluşturulur (`JWT_SECRET`, `API_KEY_SECRET`) ve veri dizinindeki `server.env` dosyasına kalıcı olarak yazılır — bu dizin geçiciyse bu değerleri açıkça ayarlayın. İstisna `OMNIROUTE_WS_BRIDGE_SECRET` değeridir: bu değer `server.env` dosyasına yazılmaz — sunucu giriş noktaları, yalnızca süreç içi köprüünün kullanabileceği, her açılışta geçerli olan kısa ömürlü bir değer oluşturur; bu nedenle harici köprü istemcilerinin bu değeri açıkça ayarlaması gerekir. | Değişken | Gerekli | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------- | ------------------- | --------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `JWT_SECRET` | **Evet** | _(yok)_ | `src/lib/auth` | Tüm kontrol paneli oturum çerezlerini (JWT) imzalar/doğrular. `openssl rand -base64 48` ile oluşturun. | | `API_KEY_SECRET` | **Evet** | _(yok)_ | `src/lib/db/apiKeys.ts` | SQLite'ta bekleyen API anahtarı değerleri için AES şifreleme anahtarıdır. `openssl rand -hex 32` ile oluşturun. | | `INITIAL_PASSWORD` | Hayır | _(ayarlanmamış)_ | `src/lib/auth/managementPassword.ts` | Henüz kaydedilmiş bir parola yokken açılış sırasında pano parolasını ayarlar; bir parola kaydedildikten sonra yok sayılır. npm ve kaynak kurulumları `.env.example` dosyasını `.env` dosyasına kopyalar, dolayısıyla herkesin bildiği `CHANGEME` yer tutucusuyla başlarlar: ilk açılıştan önce değiştirin ya da ilk ziyarette parolayı onboarding sihirbazında oluşturmak için (ayarlanmamış değerin, yani Docker imgesinin varsayılanının yaptığı gibi) o `.env` dosyasında `INITIAL_PASSWORD=` (boş) olarak ayarlayın. Kaydedilmiş bir parolayı Kontrol Paneli → Ayarlar → Güvenlik yolundan değiştirin ya da `DATA_DIR` değerini sunucunun veri dizinine ayarlayarak `omniroute reset-password` komutunu (kaynak checkout'unda `node bin/reset-password.mjs`) çalıştırın. | | `OMNIROUTE_WS_BRIDGE_SECRET` | **Evet** (üretimde) | _(ayarlanmamış)_ | `src/app/api/internal/codex-responses-ws/route.ts` | Dahili Codex Responses WebSocket köprüsü için paylaşılan gizli değerdir. Electron/tarayıcı WS aktarıcısı ile OmniRoute arasındaki köprü isteklerinin kimliğini doğrular. ⚠️ **Üretimde GEREKLİDİR — ayarlanmadığında tüm WS köprüsü istekleri reddedilir.** `openssl rand -base64 32` ile oluşturun. | | `OMNIROUTE_SW_BUILD_ID` | Hayır | _(git SHA)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | PWA kabuğu için önbellek geçersiz kılmaya yönelik açık service worker kimliği (#11779); çözümleme zincirinde ilk sıradadır. | | `SOURCE_VERSION` | Hayır | _(ayarlanmamış)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Zincirde ikinci sıradadır — PaaS derleyicileri (ör. Heroku tarzı) tarafından dağıtılan commit değerine ayarlanır. | | `NEXT_PUBLIC_SW_BUILD_ID` | Hayır | _(türetilmiş)_ | `src/shared/components/PwaRegister.tsx` | İstemcinin `/sw.js?v=…` kaydını yapmak için kullandığı, derleme zamanında belirlenen herkese açık değer; yukarıdaki iki değerden, ardından git SHA'dan türetilir. | | `OMNIROUTE_PEER_STAMP_TOKEN` | Hayır (otomatik) | _(her başlatmada otomatik)_ | `src/server/authz/policies/management.ts` | Güvenilir eş IP damgasının OmniRoute'un kendi HTTP sunucusundan (`scripts/dev/peer-stamp.mjs`) geldiğini kanıtlayan süreç başına gizli değerdir. authz ara yazılımı, istek yerelliğine (LOCAL_ONLY rotalarının geri döngü/LAN geçit denetimi) yalnızca damga bu belirteci taşıdığında güvenir. Her başlatmada otomatik oluşturulur — ayarlamadan bırakın; yalnızca damgayı paylaşması gereken çok süreçli kurulumlarda sabitleyin. | | `OMNIROUTE_TRUSTED_PROXIES` | Hayır | _(ayarlanmamış)_ | `scripts/dev/peer-stamp.mjs` | IP izin/ret listesinin `X-Forwarded-For` / `X-Real-IP` bilgilerine güvenebileceği ters proxy'lerin virgülle ayrılmış IP'leri veya CIDR aralıklarıdır; her zaman güvenilen geri döngü, özel ağ adresleri ve Cloudflare uç noktalarına ek olarak kullanılır. Yalnızca başka bir genel adresteki proxy için gereklidir; aksi takdirde filtre proxy'nin kendi adresini değerlendirir. | ### Oluşturma Komutları ```bash # Dört gizli değerin tümünü bir kerede oluşturun: 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] > Gerçek gizli değerler içeren `.env` dosyalarını hiçbir zaman sürüm kontrolüne göndermeyin. `.gitignore`, `.env` dosyasını zaten hariç tutar; ancak göndermeden önce bunu doğrulayın. --- ## 2. Depolama ve Veritabanı OmniRoute, tüm kalıcı depolama işlemleri için **SQLite** (`better-sqlite3` aracılığıyla) kullanır. Bu değişkenler veri konumunu, şifrelemeyi ve yaşam döngüsünü kontrol eder. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------------ | ----------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `DATA_DIR` | `~/.omniroute/` | `src/lib/db/core.ts` | SQLite veritabanı, yedekler ve veri dosyalarının kök dizini. Docker birimleri veya özel yollar için geçersiz kılın. | | `OMNIROUTE_ALLOW_DEFAULT_DATA_DIR` | _(ayarlanmamış)_ | `src/lib/dataPaths.ts` | Test/değerlendirme DATA_DIR koruması için kaçış mekanizması (#10428). `DATA_DIR` içermeyen testler ve Node değerlendirme/yazdırma yoklamaları (`-e`/`--eval`/`-p`/`--print`; `--eval=`/`--print=` biçimleri dâhil), operatörün gerçek veritabanını açamamaları için tek kullanımlık geçici bir dizine yönlendirilir; gerçek dizini yeniden kullanmayı seçmek için bunu `1` olarak ayarlayın. | | `OMNIROUTE_BUILD_SHA` | _(ayarlanmamış)_ | `src/lib/monitoring/buildSha.ts` | Çalışan yapıtın Git SHA'sı. `npm run build:release` tarafından damgalanır; `dist/BUILD_SHA` gözcü dosyası olmadan dağıtılan konteynerlere enjekte edilebilir. `/api/monitoring/health` üzerinde `system.buildSha` olarak gösterilir. | | `OMNIROUTE_RELEASE_REF` | `origin/main` | `scripts/build/buildProvenance.ts` | Paketleme yapıtı köken doğrulama kapısının derleme SHA'sını karşılaştırdığı ref (#10427). | | `OMNIROUTE_ALLOW_CANARY_BUILD` | _(ayarlanmamış)_ | `scripts/build/buildProvenance.ts` | SHA'sı yayın hattında olmayan bir derlemenin paketlenmesine izin vermek ve kapının başarısız olmasına neden olmak yerine bunu kasıtlı bir kanarya olarak kaydetmek için `1` olarak ayarlayın (#10427). | | `OMNIROUTE_SMOKE_API_KEY` | _(ayarlanmamış)_ | `scripts/ops/deploy-canary.mjs` | Kanarya dağıtımı duman yoklamasının API anahtarı; `/v1/chat/completions` üzerinde `Authorization: Bearer` olarak gönderilir. Yalnızca dağıtım betiği tarafından kullanılır (#10429), sunucu tarafından asla kullanılmaz. İsteğe bağlı CLI duman test düzeneğinin `OMNIROUTE_SMOKE_*` değişkenleriyle (`tests/integration/upstream-cli-smoke.int.test.ts` içindeki `RUN_CLI_SMOKE=1`, `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS`) ilişkili değildir — bkz. [CLI Entegrasyonları → Gerçek duman taraması](../guides/CLI-INTEGRATIONS.md). | | `OMNIROUTE_BUILDING` | _(ayarlanmamış)_ | `src/lib/buildPhase.ts` | Derleme aşaması sinyali (#10060): `scripts/build/build-next-isolated.mjs` tarafından `1` olarak ayarlanır ve oluşturulan her derleme çalışanı tarafından devralınır; böylece veritabanı katmanı, çıkış sırasında çalışanı sonlandıran yerel better-sqlite3 eklentisini yüklemek yerine işlem yapmayan bir taklit nesne döndürür. Çalışan sunucu için asla ayarlanmaz. | | `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | Alışılmadık şekilde dışarıdan sağlanan ağaçlar için isteğe bağlı yerel bağımlılık ön derleme denetimini atlamak üzere `1` olarak ayarlayın. Bu, eksik bir bağımlılığı derlenebilir hâle getirmez; yalnızca yerel bağımlılıklar bant dışından sağlandığında kullanın. | | `OMNIROUTE_DATA_DIR` | _(ayarlanmamış)_ | `open-sse/executors/promptql/threadSticky.ts` | `DATA_DIR` için **yedek takma ad**; yalnızca `DATA_DIR` ayarlanmamışsa denetlenir. PromptQL yürütücüsünün disk üzerindeki iş parçacığına yapışkan oturum önbelleğini (`/promptql-thread-sessions.json`) bulmak için kullanılır; hiçbir değişken ayarlanmamışsa önbellek yalnızca bellekte tutulur (yeniden başlatmalar arasında kalıcı değildir). | | `OMNIROUTE_PLUGINS_DIR` | _(ayarlanmamış)_ | `src/lib/plugins/scanner.ts` | **Çalışma zamanı eklenti tarayıcısının** okuduğu ve eklenti yöneticisinin kurulum yaptığı kök dizin; ana dizinden türetilen varsayılanı geçersiz kılar (#11827). Yalnızca tarama yolunu yeniden konumlandırmak için HOME değerini taşımak yerine Docker/K8s içindeki bağlama ile monte edilmiş eklenti ağacını gösterin (HOME, ana dizine göre belirlenen diğer tüm davranışları da yönetir). Ayarlanmamışsa = `~/.omniroute/plugins`; süreç hiçbir ana dizin dışa aktarmıyorsa `/tmp/.omniroute/plugins` — bu değişkenin ortadan kaldırdığı sessiz keşfedememe durumu. Çözümlenen dizin, başlangıçta bir kez, öncelikli olan girdiyle birlikte `scanner.dir_resolved` olarak günlüğe kaydedilir. Yalnızca sunucu tarafı: CLI komut eklentileri kendi `OMNIROUTE_PLUGIN_PATH` değerlerini kullanmaya devam eder (bölüm 9). | | `STORAGE_ENCRYPTION_KEY` | _(boş = devre dışı)_ | `src/lib/db/encryption.ts` | Bekleme durumundaki SQLite veritabanının tamamını şifrelemek için kullanılan AES anahtarı. `openssl rand -hex 32` ile oluşturun. | | `STORAGE_ENCRYPTION_KEY_VERSION` | `v1` | `scripts/build/bootstrap-env.mjs`, `electron/main.js` | Şifreleme anahtarının sürüm etiketi. Eski yedeklerin şifresinin çözülebilmesini desteklemek için anahtar rotasyonu gerçekleştirirken artırın. | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | `src/lib/db/backup.ts` | `true` olduğunda rutin/yazma öncesi SQLite dosya yedeklemelerini (models.dev fiyatlandırmasını kaydetme/temizleme, ayar yazma işlemleri) atlar. Manuel ve geri yükleme öncesi yedeklemeler çalışmaya devam eder. Geçiş çalıştırıcısının zorunlu kalıcı güvenlik anlık görüntüsünü veya mevcut kalıcı bir veritabanı için toplu geçiş korumasını devre dışı **bırakmaz**. Manuel olmayan yedeklemeler en fazla 60 dakikada bir gerçekleştirilecek şekilde sınırlandırılır. Kontrol panelindeki **Ayarlar → Depolama** seçeneği, rutin otomatik yedeklemeyi bağımsız olarak devre dışı bırakabilir. | | `OMNIROUTE_CRYPT_KEY` | _(ayarlanmamış)_ | `src/lib/db/encryption.ts` | `STORAGE_ENCRYPTION_KEY` için **eski takma ad**. Birincil değişken mevcut olmadığında yedek seçenek olarak kabul edilir. | | `OMNIROUTE_API_KEY_BASE64` | _(ayarlanmamış)_ | `src/lib/db/encryption.ts` | Yedek seçenek olarak kabul edilen **eski takma ad** (Base64 kodlu biçim). Kullanımdan önce kodu otomatik olarak çözülür. | | `OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS` | _(ayarlanmamış)_ | `src/lib/db/core.ts` | Periyodik SQLite sistem durumu denetimi aralığını (ms) geçersiz kılın. Ayarlanmadığında varsayılan değerler `NODE_ENV` değişkeninden türetilir. | | `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` | _(kaldırıldı)_ | `src/lib/db/walMaintenance.ts` | **Kaldırıldı.** Periyodik bir canlı `wal_checkpoint(TRUNCATE)`, paylaşılan wal-index eşlemesini geçersiz kılabilir ve işlemin SIGBUS (#13973) nedeniyle çökmesine yol açabilir; bu nedenle zamanlayıcı artık mevcut değildir. Değişken etkisizdir: pozitif bir değer tek seferlik bir kullanım dışı bırakma uyarısının günlüğe kaydedilmesine neden olurken `0` değeri veya ayarlanmamış olması sessiz kalır. WAL, PASSIVE denetim noktalarıyla (aşağıda) korunur ve kapatma denetim noktası tarafından kısaltılır. | | `OMNIROUTE_WAL_PASSIVE_INTERVAL_MS` | `300000` (5 dk.) | `src/lib/db/walMaintenance.ts` | Sık gerçekleştirilen `wal_checkpoint(PASSIVE)` aralığını (ms) geçersiz kılın. Bekleyen WAL çerçevelerini küçük tutarak denetim noktalarının hızlı kalmasını ve WAL dosyasının kapatma sırasındaki kısaltmalar arasında sınırlı boyutta kalmasını sağlar. `0` devre dışı bırakır. | | `OMNIROUTE_WAL_GUARD_MAX_MB` | `256` | `src/lib/db/walMaintenance.ts` | Bir PASSIVE döngüsü WAL dosyasının bu boyutu aştığını tespit ettiğinde, eşlenmiş wal-index yeniden yazılmadan WAL'ın baştan başlaması için `wal_checkpoint(RESTART)` çalıştırılır. Canlı kısaltma modu denetim noktaları kaldırılmıştır (`OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` satırına bakın). | | `OMNIROUTE_PRESSURE_SELF_RESTART` | `false` | `open-sse/utils/resourcePressure.ts` | Kritik kaynak baskısı `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` boyunca devam ettiğinde işlemden çıkmak için `1`/`true`/`yes`/`on` olarak ayarlayın; böylece bir gözetici (systemd `Restart=always`, Docker yeniden başlatma politikası), süresiz olarak 503 yanıtları sunulması yerine temiz bir işlemi yeniden başlatabilir. | | `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` | `120000` (2 dk.) | `open-sse/utils/resourcePressure.ts` | Kendi kendine yeniden başlatma çıkışının tetiklenmesinden önce kritik baskının ne kadar süre devam etmesi gerektiği. | | `OMNIROUTE_PRESSURE_PSI_DISABLED` | `false` | `open-sse/utils/resourcePressurePolicy.ts` | Bu işlem sorunsuzken gürültülü bir komşu 503 yanıtlarını tetiklediğinde ana makine genelindeki `/proc/pressure/memory` (`psi_some` / `psi_full`) değerini yok saymak için `1`/`true`/`yes`/`on` olarak ayarlayın (#13124). Cgroup ve V8 yığın korumaları etkin kalır. PSI ayrıca `cgroup_high` için çekirdek kısıtlama kanıtı olarak sayılmayı bırakır: `memory.high` değerinin üzerindeki bir cgroup toplamı yalnızca `memory.events` içindeki `high`/`max` artışında kritik hâle gelir. `memory.events` olmadan ham oran korunur. | | `OMNIROUTE_SQLJS_WASM_PATH` | _(otomatik algılama)_ | `src/lib/db/adapters/sqljsAdapter.ts` | `sql.js` WASM yedek bağdaştırıcısı kullanılırken `sql-wasm.wasm` dosyasının açık yolu (mutlak veya cwd'ye göre göreli). Ayarlanmadığında paket bağımlılıkları ve aday düzenler aracılığıyla otomatik olarak algılanır. | | `OMNIROUTE_BATCH_RETENTION_DAYS` | `30` | `src/lib/db/cleanup.ts` | Sonlandırılmış (tamamlanmış/başarısız/iptal edilmiş/süresi dolmuş) bir Batch API işinin denetim noktalarının, başvurulan girdi/çıktı/hata dosyalarının ve satırının otomatik temizleme taraması tarafından silinmeden önce tutulacağı gün sayısı. Yalnızca `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` etkinleştirildikten sonra etkili olur; OpenAI'ın kendi Batch API çıktı saklama aralığıyla eşleşir. Tasarım gereği koşulsuz (yaş filtresi olmadan) kalan, operatör tarafından tetiklenen `DELETE /api/v1/batches/delete-completed` rotasını etkilemez. | | `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` | `false` | `src/lib/db/cleanup.ts` | `true` olduğunda, otomatik temizleme işleminin `OMNIROUTE_BATCH_RETENTION_DAYS` süresini aşmış terminal durumundaki Batch API işlerini (ve bunların denetim noktalarını) silmesine ve kendi `expires_at` süresini aşmış yüklenen dosyaların BLOB içeriğini temizlemesine izin verir. Varsayılan olarak kapalıdır: bir operatör etkinleştirene kadar mevcut tüm kurulumlar bu verileri tam olarak eskisi gibi tutar. Ayrıca pano üzerinden düzenlenebilir bir özellik bayrağıdır — bkz. `docs/reference/FEATURE_FLAGS.md` → Çalışma Zamanı. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts`, `src/lib/db/healthCheck.ts` | Başlangıçta DB sağlık denetimini tamamen atlamak için `1` olarak ayarlayın. Kısa süreli görevler ve entegrasyon testleri için kullanışlıdır. | | `OMNIROUTE_FORCE_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts` | Normalde atlanacak olsa bile (ör. kısa süreli görevlerde) DB sağlık denetimi döngüsünü zorla etkinleştirmek için `1` olarak ayarlayın. | | `OMNIROUTE_SKIP_POSTINSTALL` | `0` | `scripts/postinstall.mjs` | `npm install` sırasında yerel çalışma zamanı ön hazırlığını atlamak için `1` olarak ayarlayın. sqlite'ın zaten derlenmiş olduğu CI/başsız kurulumlarda kullanışlıdır. | | `OMNIROUTE_MIGRATIONS_DIR` | _(otomatik algılama)_ | `src/lib/db/migrationRunner.ts` | Geçiş çalıştırıcısının taradığı dizini geçersiz kılar. Özel derlemelerde paketlenmiş geçişler sunarken kullanışlıdır. | | `OMNIROUTE_EXTRA_MIGRATIONS_DIRS` | _(ayarlanmamış)_ | `src/lib/db/migrationRunner/extraDirs.ts` | Platformun yol ayırıcısıyla ayrılmış `namespace=dir` girdileri olarak ek geçiş dizinleri (ör. `ee=/opt/app/enterprise/db/migrations`). Burada bulunan dosyalar `-` biçiminde kaydedilir; böylece kendi geçişlerini sunan bir dağıtım, yukarı akıştaki sayısal yuvalarla hiçbir zaman çakışmaz. Hatalı biçimlendirilmiş bir girdi, geçersiz bir ad alanı veya eksik bir dizin, şemayı sessizce atlamak yerine başlangıçta hata oluşturur. | | `OMNIROUTE_MAX_PENDING_MIGRATIONS` | `50` | `src/lib/db/migrationRunner.ts` | Çok sayıda bekleyen geçiş için güvenlik eşiği (#3416). Mevcut bir DB'de bu sayıdan fazla geçiş bekliyorsa başlangıç iptal edilir (silinmiş bir izleme tablosuna karşı koruma sağlar). Eski bir yedeği geri yüklemek için değeri artırın; denetimi devre dışı bırakmak için `0` olarak ayarlayın. | | `OMNIROUTE_INSTALL_UPGRADE_WORKDIR` | _(`/.install-upgrade`)_ | `scripts/check/check-install-upgrade.mjs` | `check:install-upgrade` sürüm kapısı için çalışma dizini. Yaklaşık 12 GB gerektirir (iki adet yaklaşık 3 GB'lık kurulum ağacı ve tar arşivi), bu nedenle küçük bir tmpfs üzerinde çalıştırılmamalıdır — kendi kendine barındırılan çalıştırıcıda `/tmp`, RAM destekli 12 GB'lık bir tmpfs'tir ve kapı bunu tüketerek paketin yarım kalmasına neden olmuştur. | | `OMNIROUTE_SPEND_FLUSH_INTERVAL_MS` | _(kodda varsayılan)_ | `src/lib/spend/batchWriter.ts` | Toplu harcama/maliyet yazıcısı için boşaltma aralığı (ms). Daha düşük değerler yazma birleştirmesini azaltır; daha yüksek değerler DB çekişmesini azaltır. | | `OMNIROUTE_SPEND_MAX_BUFFER_SIZE` | _(kodda varsayılan)_ | `src/lib/spend/batchWriter.ts` | Zorunlu boşaltmadan önce arabelleğe alınabilecek en fazla harcama girdisi sayısı. Yüksek QPS'li dağıtımlarda artırın; sınırlı bellek daha önemli olduğunda azaltın. | | `OMNIROUTE_PROXY_FETCH_DEBUG` | _(ayarlanmamış)_ | `open-sse/utils/proxyFetch.ts` | Vercel aktarma yolunda `[ProxyFetch]` hata ayıklama günlüklerini yayınlamak için `"true"` olarak ayarlayın. Yönlendirme ipuçlarının sızmasını önlemek amacıyla varsayılan olarak kapalıdır. | | `OMNIROUTE_PROXY_CORE_BINARY_PATH` | _(ayarlanmamış)_ | `src/lib/proxySubscription/coreConfig/sync.ts` | Oluşturulan çekirdek yapılandırmasının benimsenmiş dosyanın yerini almasından önce bu yapılandırmayı denetleyen yerel proxy çekirdek ikili dosyasının (`sing-box` adlı bir dosya) mutlak yolu. Ayarlanmadığında, yalnızca benimsenmiş dosyanın yanına `.generated` yazılır. Yalnızca ana makine ortamı içindir: ikili dosya çalıştırıldığı için hiçbir zaman veritabanında saklanmaz veya yönetim API'si üzerinden kabul edilmez. | | `OMNIROUTE_PROXY_CORE_RELOAD_COMMAND` | _(ayarlanmamış)_ | `src/lib/proxySubscription/coreConfig/reload.ts` | Doğrulanmış yapılandırma değişiminden sonra yerel proxy çekirdeğinin nasıl yeniden yükleneceğini belirler: kabuk olmadan çalıştırılan bir JSON bağımsız değişken dizisi veya dosyayı dışarıdan bir gözlemci uyguladığında tam olarak `external`. Hiçbir zaman veritabanında saklanmaz veya API aracılığıyla kullanıma sunulmaz. | | `PROXY_LOG_INCLUDE_IPS` | `false` | `src/lib/proxyLogger.ts` | Ayrıntılı `[ProxyEgress]` işlem günlüğü satırına istemci/çıkış IP'lerini ve hesap önekini dahil etmek için `"true"` veya `"1"` olarak ayarlayın. İşlem günlüğünün IP'leri ya da hesap önekini sızdırmaması için varsayılan olarak KAPALI tutulur. | | `OMNIROUTE_DEBUG` | _(ayarlanmamış)_ | `bin/cli/commands/quota.mjs` | CLI kota komutlarından stderr'e istek başına zamanlama tanılamalarını (`[omniroute] GET Nms içinde tamamlandı`) yazdırmak için `1` olarak ayarlayın. | | `OMNIROUTE_HEALTHCHECK_PATH` | _(otomatik)_ | `scripts/dev/healthcheck.mjs` | Kapsayıcı sağlık denetiminin yokladığı açık yol. Ayarlanmadığında yoklama, yolu `OMNIROUTE_BASE_PATH` değerinden türetir; ayarlanması, ayrıntılı izleme uç noktasını yeniden etkinleştirir. | | `OMNIROUTE_DEBUG_COMPLETION` | _(ayarlanmamış)_ | `bin/cli/commands/completion.mjs` | CLI kabuk tamamlama önbelleği yollarından (okuma/yenileme/yazma) `[omniroute completion]` tanılamaları yayımlamak için boş olmayan herhangi bir değere ayarlayın. Varsayılan olarak kapalıdır — eksik/bozuk bir önbelleğin sekmeyle tamamlamayı asla bozmaması için bu önbellekler sessizce başarısız olur. | | `BATCH_RETRY_DURATION_MS` | `86400000` (24 sa.) | `open-sse/services/batchProcessor.ts` | Tekil toplu iş öğeleri için maksimum yeniden deneme aralığı (ms). Bu süreyi aşan öğeler başarısız olarak işaretlenir. | | `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | Toplu iş öğesi yeniden denemelerinde üstel geri çekilme için temel gecikme (ms). | | `BATCH_BACKOFF_MAX_MS` | `3600000` (1 sa.) | `open-sse/services/batchProcessor.ts` | Toplu iş öğesi yeniden denemeleri arasındaki üstel geri çekilme için üst sınır (ms). | | `BATCH_MAX_CONCURRENT` | `1` | `open-sse/services/batchProcessor.ts` | Eşzamanlı olarak işlenen maksimum toplu iş sayısı. İş hacmini artırmak için yükseltin; hız sınırı sorunlarından kaçınmak için düşük tutun. | > [!IMPORTANT] > Mevcut kalıcı bir veritabanını değiştirmeden önce geçiş çalıştırıcısı, `DATA_DIR/db_backups/` > altında içerik adresli eksiksiz bir anlık görüntü yayımlar. Yayımlama işlemi, aynı dosya sistemi > üzerinde üzerine yazmayan sabit bağlantıları ve kalıcı dosya eşitlemesini destekleyen bir dosya > sistemi gerektirir. POSIX ana makineleri ayrıca dizin eşitlemesi gerektirir; Windows'ta Node dizin > tanıtıcılarını reddedebilir, bu nedenle OmniRoute yayımlanan dosyayı diske yazar ve dizin girdisi > eşitlemesini mümkün olan en iyi şekilde gerçekleştirir. > Bağlanan `DATA_DIR` bu güvenceleri sağlayamıyorsa başlangıç, geçiş uygulanmadan önce güvenli > biçimde başarısız olur. `DATA_DIR` konumunu bu temel özelliklere sahip bir birime taşıyın; geçiş > güvenliğini atlamak için `DISABLE_SQLITE_AUTO_BACKUP` kullanmayın. ### Senaryolar | Senaryo | Yapılandırma | | ------------------------------- | ----------------------------------------------------------------------------------------- | | **Yerel geliştirme** | Tüm varsayılanları koruyun. Veritabanı `~/.omniroute/omniroute.db` konumunda bulunur. | | **Docker** | `DATA_DIR=/data` + `/data` konumuna bir birim bağlayın. | | **Bekleme durumunda şifreleme** | `STORAGE_ENCRYPTION_KEY` ayarlayın + anahtarı yedekleyin! Kaybetmek = verileri kaybetmek. | | **CI/Test** | `DATA_DIR=/tmp/omniroute-test` — geçicidir, şifreleme gerekmez. | --- ## 3. Ağ ve Portlar | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PORT` | `20128` | `src/lib/runtime/ports.ts` | Hem Dashboard kullanıcı arayüzü hem de API uç noktaları için birincil port (tek port modu). | | `OMNIROUTE_BASE_PATH` | _(boş = kök)_ | `next.config.mjs`, `scripts/docker/ensure-docker-base-path.mjs` | OmniRoute'u bir ters proxy arkasında sunmak için kullanılan URL alt yolu (Next.js `basePath` değerini ayarlar; kimlik doğrulama yönlendirmeleri basePath'i dikkate alır). Örn. `/omniroute`. Docker'da değer, `docker build` sırasında yerleşik hâle getirilir (`ARG OMNIROUTE_BASE_PATH`); önceden oluşturulmuş kök imajları, Next.js başlatılmadan önce konteyner başlangıcında bir kez farklı bir çalışma zamanı değeri uygulayabilir. `NEXT_PUBLIC_BASE_URL` değerini, aynı alt yolu içeren herkese açık kaynak olarak ayarlayın. | | `NEXT_PUBLIC_OMNIROUTE_BASE_PATH` | _(boş = kök)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | `OMNIROUTE_BASE_PATH` değerinin tarayıcıda görülebilen yansımasıdır; derleme sırasında satır içine alınır, böylece dashboard uç nokta gösterimi `https://host/v1` yerine `https://host/omniroute/v1` gösterir. Ayarlanmadığında `OMNIROUTE_BASE_PATH` değerine geri döner. Değiştirdikten sonra yeniden derleyin (Next `basePath` derleme zamanında belirlenir). | | `DASHBOARD_ALLOW_EMBED` | _(ayarlanmamış = hiçbir zaman çerçevelenemez)_ | `next.config.mjs`, `scripts/build/dashboardEmbed.mjs` | HTML sayfalarının iframe içine gömülmesini isteğe bağlı olarak etkinleştirir. Ayarlanmadığında her rota `frame-ancestors 'none'` + `X-Frame-Options: DENY` ile sunulur. Sayfaları (dashboard, giriş, belgeler, açılış sayfası) `frame-ancestors 'self' vscode-webview:` ile ve `X-Frame-Options` olmadan sunmak için `vscode` olarak ayarlayın; böylece VS Code Simple Browser bunları işleyebilir (OmniCopilot'ın `dashboardOpen: "editor"` modu). API yüzeyi (`/api`, `/v1`, `/v1beta`, `/a2a`, `/healthz`, kök düzeyindeki diğer adlar) her iki durumda da katı üstbilgileri korur. Yalnızca `vscode` tanınır — `1`/`true` bunu etkinleştirmez. Derleme zamanı: değiştirdikten sonra yeniden derleyin (imajlar için `docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode`; önceden oluşturulmuş bir kurulumda ayarlanmasının hiçbir etkisi yoktur). | | `API_PORT` | _(ayarlanmamış)_ | `src/lib/runtime/ports.ts` | Ayarlandığında `/v1/*` proxy API'sini bu ayrı port üzerinden sunar. | | `API_HOST` | `0.0.0.0` | `src/lib/runtime/ports.ts` | API portunun bağlanacağı adres. | | `DASHBOARD_PORT` | _(ayarlanmamış)_ | `src/lib/runtime/ports.ts` | Ayarlandığında Dashboard kullanıcı arayüzünü bu ayrı port üzerinden sunar. | | `OMNI_MAX_CONCURRENT_CONNECTIONS` | `0` _(devre dışı)_ | `src/sse/utils/backpressure.ts` | Devam eden eş zamanlı sohbet bağlantılarını sınırlar; sınırı aşan istekler `Retry-After` ile birlikte `503` alır. Pozitif bir tam sayı korumayı etkinleştirir; ayarlanmamış/`0` olması devre dışı bırakır. | | `OMNIROUTE_INSTANCE_ID` | _(ayarlanmamış)_ | `src/shared/resilience/peerRouting.ts` | OmniRoute örneklerini zincirlerken bu ağ geçidi için kararlı ve benzersiz kimlik. Gelen eş döngüsü denetimlerini etkinleştirir. İzin verilen karakterler: harfler, rakamlar, `.`, `_`, `:` ve `-`; en fazla 64 karakter. | | `OMNIROUTE_PEER_URLS` | _(ayarlanmamış)_ | `src/shared/resilience/peerRouting.ts`, `open-sse/executors/base.ts` | `X-OmniRoute-Peer-Trace` alabilecek, virgülle ayrılmış OmniRoute temel URL'leri. Yalnızca açıkça izin listesine eklenmiş yukarı akış URL'leri eş meta verilerini alır; diğer tüm sağlayıcılara dokunulmaz. | | `OMNIROUTE_PEER_MAX_HOPS` | `4` | `src/shared/resilience/peerRouting.ts` | Zincirlenmiş bir istekte kabul edilen, daha önce ziyaret edilmiş OmniRoute örneklerinin azami sayısı (`1`-`32`). Yinelenen örnekler veya tükenmiş bir bütçe, HTTP `508 Loop Detected` yanıtı döndürür. | | `PROD_DASHBOARD_PORT` | `20130` | `docker-compose.prod.yml` | Docker üretim modunda Dashboard için ana makinede yayımlanan port. | | `PROD_API_PORT` | `20131` | `docker-compose.prod.yml` | Docker üretim modunda API için ana makinede yayımlanan port. | | `OMNIROUTE_PORT` | _(ayarlanmamış)_ | `src/lib/runtime/ports.ts` | Electron veya diğer sarmalayıcılar içinde çalışırken `PORT` değerine göre önceliklidir. | | `LIVE_WS_PORT` | `20129` | `src/server/ws/liveServer.ts` | Gerçek zamanlı WebSocket canlı izleme sunucusunun portu. | | `LIVE_WS_HOST` | `127.0.0.1` | `src/server/ws/liveServer.ts` | Canlı WebSocket sunucusunun bağlanma adresi. LAN üzerinde erişime açmak için `0.0.0.0` olarak ayarlayın (`LIVE_WS_ALLOWED_ORIGINS` değişkenini de yapılandırın). | | `LIVE_WS_ALLOWED_ORIGINS` | _(ayarlanmamış)_ | `src/server/ws/liveServer.ts` | Canlı bir WebSocket açmasına izin verilen, virgülle ayrılmış ek kaynaklar. Geri döngü Dashboard kaynaklarına varsayılan olarak zaten izin verilir. | | `LIVE_WS_ALLOWED_HOSTS` | _(ayarlanmamış)_ | `src/server/ws/liveServerAllowList.ts` | Canlı WebSocket kaynakları için izin verilen, virgülle ayrılmış ek ana makine adları. `LIVE_WS_ALLOWED_ORIGINS` (tam kaynak URL'leri) değişkeninden farklı olarak yalnızca ana makine kısmıyla eşleşir; LAN/Tailscale kurulumları için kullanışlıdır. | | `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL` | _(ayarlanmamış)_ | `src/hooks/useLiveDashboard.ts` | Canlı Dashboard WebSocket'inin genel URL'si (tarayıcı tarafı). WS sunucusunun önüne ters proxy veya Cloudflare Tunnel yerleştirirken ayarlayın (ör. `wss://ws.my-ai.com/live-ws`); tarayıcı `ws://hostname:20132` yerine buraya bağlanır. Yol adı bölümü ayrıca WebSocket yükseltme yolu olarak kullanılır (varsayılan: `/live-ws`). | | `OMNIROUTE_ENABLE_LIVE_WS` | `true` | `src/server/ws/liveServer.ts` ve `scripts/start-ws-server.mjs` | Gerçek zamanlı WebSocket sunucusunu devre dışı bırakmak için `0` veya `false` olarak ayarlayın (varsayılan olarak etkindir ve geri döngü adresine bağlıdır). Bağımsız canlı WebSocket yardımcı betiğini devre dışı bırakan CI/test altyapısı geçiş anahtarıdır. | | `RELAY_IP_PER_MINUTE` | `30` | `src/app/api/v1/relay/chat/completions/route.ts` | (Token, IP) başına röle hız sınırı; istek/dakika cinsindendir. Bellek içindedir ve örnek başına uygulanır. `0` veya negatif bir değer, IP boyutu denetimini devre dışı bırakır (token başına veritabanı sınırı uygulanmaya devam eder). | | `NODE_ENV` | `production` | Next.js çekirdeği | Günlük kaydı ayrıntı düzeyini, önbelleğe almayı, hata ayrıntılarının gösterilmesini ve Next.js optimizasyonlarını denetler. | | `OMNIROUTE_USE_TURBOPACK` | `1` (Turbopack — kod varsayılanı) | `package.json` / Next.js 16 | Turbopack, `npm run dev` ve `npm run build` için varsayılan paketleyicidir (kıyaslamalara göre 2-3 kat daha hızlı derlemeler). Windows'ta, yerel bağlama / paketleyici uyumluluğu sorunları yaşandığında **veya RAM'i kısıtlı makinelerde** webpack'e geri dönmek için `0` olarak ayarlayın — bu Next.js sürüm serisindeki (16.2.x) Turbopack üretim derlemelerinin, büyük modül grafiklerinde webpack'e kıyasla çok daha yüksek bellek kullanımına ulaştığı bilinen bir üst kaynak sorunudur (Next 16.3'ün Turbopack bellek boşaltma düzeltmesi henüz kararlı değildir); webpack'e geri dönüşte en yüksek bellek kullanımı çok daha düşüktür. Bkz. #6409. **Docker imajı derlemeleri varsayılan olarak `0` (webpack) kullanır**: `Dockerfile`, bellek sınırı olan bir derleyicide basit bir `docker build .` komutunun (Railway ve diğer tek tıklamalı barındırma hizmetleri, ihtiyaca özel kendi sunucusunda barındıranlar) OOM nedeniyle sonlandırılmaması için `ARG OMNIROUTE_USE_TURBOPACK=0` tanımlar; imajı Turbopack ile derlemek için `--build-arg OMNIROUTE_USE_TURBOPACK=1` geçin. Bkz. `docs/guides/DOCKER_GUIDE.md` → Derleme zamanı kaynakları. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | _(ayarlanmamış)_ | `src/lib/db/core.ts` / `src/lib/db/healthCheck.ts` | Başlangıçta SQLite bütünlük durumu denetimini atlamak için `1` olarak ayarlayın. Büyük veritabanlarında daha hızlı başlatma için kullanışlıdır. | | `NOTIFY_SOCKET` | _(ayarlanmamış)_ | systemd (sd_notify protokolü) | İşlem, sd_notify entegrasyonuna sahip bir hizmet birimi altında çalıştığında systemd tarafından ayarlanır; OmniRoute, READY/WATCHDOG bildirimleri göndermek için bunu okur (bkz. `OMNIROUTE_DISABLE_SD_NOTIFY`). Kullanıcı tarafından asla ayarlanmamalıdır. | | `OMNIROUTE_DISABLE_SD_NOTIFY` | _(ayarlanmamış)_ | `scripts/dev/systemd-notify.mjs` | Bir systemd birimi altında çalışırken bile systemd sd_notify özelliğini (Type=notify / WatchdogSec=) devre dışı bırakmak için `1` olarak ayarlayın. Bildirim aracı, systemd dışında her durumda hiçbir işlem yapmaz. | | `CREDENTIAL_HEALTH_CHECK_INTERVAL` | `3600000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/scheduler.ts` | Arka plan kimlik bilgisi durum denetimi zamanlayıcısının aralığı (ms). Minimum: 10000 (10 sn). | | `CREDENTIAL_HEALTH_CACHE_TTL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/cache.ts` | Önbelleğe alınan kimlik bilgisi durumunun TTL değeri (ms). | | `OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK` | `false` | `src/lib/credentialHealth/scheduler.ts` | Sağlayıcı bağlantılarının arka planda düzenli olarak sınanmasını devre dışı bırakmak için `1` veya `true` olarak ayarlayın. Arama sağlayıcıları (`src/lib/providers/validation/searchProviders.ts` içindeki SEARCH_VALIDATOR_CONFIGS, ör. `tavily-search`) her zaman taramanın dışında tutulur — bunların "doğrulaması", gerçekten ücretlendirilen bir üst kaynak sorgusudur; bu nedenle hiçbir zaman zamanlayıcıyla durum denetimine tabi tutulmazlar (#9970). | | `DEEP_HEALTH_CHECK_ENABLED` | `0` | `src/app/api/monitoring/health/route.ts` | Kimliği doğrulanmış bir çağıranın, her TTL döneminde tamamlama yüzeyini bir kez örnekleyen `/api/monitoring/health?deep=1` isteğinde bulunmasına izin vermek için `1` olarak ayarlayın. Anonim çağıranlar yoklamayı hiçbir zaman tetiklemez. | | `HOST` | `0.0.0.0` | `scripts/dev/run-next.mjs` | Next.js geliştirme/başlatma sunucusunun bağlanma adresi. Ayarlandığında varsayılan `0.0.0.0` değerini geçersiz kılar. | | `HOSTNAME` | `127.0.0.1` | `scripts/dev/run-next-playwright.mjs` | Next.js başlatılırken Playwright çalıştırıcısının kullandığı bağlanma adresi. Yalıtılmış testler için varsayılan değer `127.0.0.1`'dir. **`omniroute serve` için kullanmayın** — bunun yerine `OMNIROUTE_SERVER_HOST` kullanın (POSIX kabukları `HOSTNAME` değerini otomatik olarak makine adına ayarlar; `.env` bunu geçersiz kılamaz). | | `OMNIROUTE_SERVER_HOST` | `0.0.0.0` | `bin/cli/commands/serve.mjs` | `omniroute serve` için dinleme adresi. POSIX kabuğundaki `HOSTNAME` değişkeniyle çakışmayı önler (bash/zsh tarafından her zaman makine adına ayarlanır). Ayarlanmadığında varsayılan olarak `0.0.0.0` kullanılır. (#6194) | ### Port Modları ``` ┌─────────────────────────── Tek Port (varsayılan) ───────────────────────────┐ │ PORT=20128 │ │ → Kontrol Paneli: http://localhost:20128 │ │ → API: http://localhost:20128/v1/chat/completions │ └─────────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────── Ayrı Portlar ────────────────────────────────────┐ │ DASHBOARD_PORT=20128 │ │ API_PORT=20129 │ │ API_HOST=0.0.0.0 │ │ → Kontrol Paneli: http://localhost:20128 │ │ → API: http://0.0.0.0:20129/v1/chat/completions │ │ Kullanım örneği: Kontrol Paneli'ni localhost ile sınırlandırırken API'yi │ │ LAN'a açın. │ └─────────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────── Docker Üretim Ortamı ───────────────────────────┐ │ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │ │ → Konteyner portlarını docker-compose.prod.yml içindeki ana makine │ │ portlarına eşler. │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 4. Güvenlik ve Kimlik Doğrulama | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MACHINE_ID_SALT` | `endpoint-proxy-salt` | `src/lib/auth` | Makine parmak izi oluşturmak için donanım tanımlayıcılarıyla birleştirilen salt değeri. Yalıtım sağlamak için her dağıtımda değiştirin. | | `OMNIROUTE_CLI_SALT` | _(ayarlanmamış = kurulum başına rastgele oluşturulan ve `/cli-token-salt.json` konumunda kalıcı olarak saklanan salt)_ | `src/lib/machineToken.ts` | Yerel CLI kimlik doğrulama belirtecini türetmek için kullanılan HMAC salt değeri. Bu değerin ayarlanması, makinedeki tüm CLI belirteçlerini yeniler ve kalıcı olarak saklanan salt değerine karşı her zaman önceliklidir. Bkz. `docs/security/CLI_TOKEN.md`. | | `AUTH_COOKIE_SECURE` | `false` | `src/lib/auth` | Oturum çerezlerinde `Secure` bayrağını ayarlar. HTTPS arkasında çalışırken **`true` olmalıdır**. | | `REQUIRE_API_KEY` | `false` | API ara yazılımı | `true` olduğunda, tüm `/v1/*` proxy istekleri geçerli bir API anahtarı içermelidir. **Bu bayrak `GET /v1/models` erişimini denetlemez**; bu uç nokta bunun yerine Dashboard oturum açma duruşunu (`requireAuthForModels`) izler. Dolayısıyla `/v1/models` tarafından döndürülen bir `401`, çıkarımın korunduğu anlamına GELMEZ. Bkz. `docs/security/INFERENCE_AUTH_POSTURE.md` (#13695). | | `ALLOW_API_KEY_REVEAL` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Dashboard kullanıcı arayüzünde API anahtarı değerlerinin tamamının gösterilmesine izin verir. Dashboard Özellik Bayrakları üzerinden yapılandırılabilir; paylaşılan örneklerde güvenlik riski oluşturur. | | `NO_LOG_API_KEY_IDS` | _(boş)_ | `src/lib/compliance/index.ts` | İstek günlüğünü atlayan, virgülle ayrılmış API anahtarı kimlikleri (GDPR uyumluluğu). | | `DEFAULT_RATE_LIMIT_PER_DAY` | _(ayarlanmamış = sınırsız)_ | `src/shared/utils/apiKeyPolicy.ts` | `rate_limits` sütunu null olan API anahtarlarına uygulanan günlük yedek istek bütçesi. Ayarlanmamış veya boş: örtük sınır yoktur (#2289, #11017). `0` da aynı anlama gelir (sınırsız). Pozitif N tam sayısı; günlük N, haftalık 5N ve aylık 20N sınırlarını etkinleştirir. Hatalı biçimlendirilmiş boş olmayan değerler, eski günlük 1000, haftalık 5000 ve aylık 20000 pencerelerine geri döner. | | `MAX_BODY_SIZE_BYTES` | `10485760` (10 MB) | `src/shared/middleware/bodySizeGuard.ts` | İzin verilen en büyük istek gövdesi boyutu. Bu sınırı aşan yükleri reddeder. | | `OMNIROUTE_CHAT_LARGE_BODY_BYTES` | `262144` (256 KB) | `src/shared/middleware/chatBodyAdmission.ts` | Bu eşiğe eşit veya bu eşiğin üzerindeki gerçek istek gövdeleri, JSON ayrıştırmasından önce atomik, süreç yerelindeki ağır iş kabul kirasını alır (`POST /v1/responses` dâhil BYTE yolu). Yapısal açıdan ağır isteklerle aynı [#10437](https://github.com/diegosouzapw/OmniRoute/pull/10437) sağlıklı boş kapasite kaçışını kullanır; [#7849](https://github.com/diegosouzapw/OmniRoute/issues/7849) sorununun geri dönmemesi için yine de `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / [#10110](https://github.com/diegosouzapw/OmniRoute/issues/10110) ile sınırlandırılır. | | `OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES` | `52428800` (50 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Sınırlı alım sırasında okunan baytlara göre uygulanan sohbet rotası kesin üst sınırı; eksik, geçersiz veya gerçeği yansıtmayan `Content-Length` içeren istekler de buna dahildir; sınır aşımında `413` döndürülür. | | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` | _(ayarlanmamış — istek sayısı sınırı yok)_ | `src/shared/middleware/chatBodyAdmission.ts` | **#503-fanout:** Bu eski istek SAYISI sınırı artık yalnızca açıkça ayarlandığında bağlayıcıdır. Ayarlanmadan bırakıldığında (varsayılan), ağır sohbet kabulü bunun yerine `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` tarafından denetlenir — **tek bir süreçte** (tek bir V8 heap'i), sürecin gerçek bellek üst sınırına göre boyutlandırılan ve otomatik türetilen bir BAYT bütçesi. Çakışan iki adet ~750 bin token'lık `/v1/responses` isteği ~12 GiB heap'leri sonlandırır (#7849) — bu, 2 şeklinde kesin bir ürün üst sınırı değil, bir **bellek bütçesi** uyarısıdır. Sağlıklı bir süreç (heap, yük azaltma oranının altındaysa), `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` aracılığıyla daha fazla eşzamanlı uzun `/v1/responses` isteğini kabul EDEBİLİR. Onlarca uzun SSE istemcisi (40–50), “en fazla 2” değil; heap + `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / #10110 ile ilgilidir. “Ana makineyi kullanmak” için bu değeri körü körüne artırmak #7849 sorununu yeniden ortaya çıkarır. **N bağımsız `DATA_DIR`** ile **heap'leri** çoğaltın (#11024); tek bir SQLite dosyasında asla `replicas>1` kullanmayın. | | `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` | _(otomatik türetilir)_ | `src/shared/middleware/admissionBudget.ts` | **#503-fanout:** Otomatik türetilen alım bayt bütçesinin geçersiz kılınması (daha kısıtlayıcı olan V8/cgroup bellek üst sınırının %25'inin, 8 kat geçici büyütme katsayısına bölünmesi). Türetilen ve açıkça belirtilen değerler 8 MiB–2 GiB aralığına sınırlandırılır. Etkin bütçeden daha büyük bir gövde, `413 body_exceeds_budget` ile hemen başarısız olur; tek tek işlenebilir gövdeler arasındaki çekişme ise yeniden denenebilir `503` olarak kalır. 40–50 eşzamanlı uzun SSE istemcisi kesin bir “en fazla 2” sınırı değil, bu bütçe + heap ile ilgilidir. Ayarlama yapmadan önce `/api/monitoring/health` adresindeki `chatAdmission.maxInflightBytes` / `budgetSource` / `pressureSeverity` değerlerini okuyun. | | `OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO` | `0.75` | `src/shared/middleware/chatBodyAdmission.ts` | BAYT ve YAPI ağır yük kabulü için heap baskısı yük azaltma oranı (`heapUsed / heap_size_limit`) (#10183, #10268, #10437). `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` sınırını aşan eşzamanlı bir ağır istek, yalnızca heap AYNI ZAMANDA bu oranda veya üzerinde olduğunda yeniden denenebilir `503` ile reddedilir; sağlıklı bir heap'te bunun yerine sağlıklı ek kapasite yoluyla kabul edilir. | | `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` (varsayılan `1`) | `src/shared/middleware/chatBodyAdmission.ts` | **Hem** YAPI hem de BAYT için (`OMNIROUTE_CHAT_LARGE_BODY_BYTES` değerine eşit veya bundan büyük gövdeler dahil olmak üzere `admitChatRequest`) sağlıklı heap hızlı yoluna (#10437) yönelik sınırlı ek kapasite. Bu sınır olmadan, meşgul ancak sağlıklı heap'e sahip her istek, hiçbir üst sınır olmaksızın kabul denetimini atlıyordu. Sağlıklı heap yolu üzerinden bu sayıda eşzamanlı kira etkin olduğunda, sonraki meşgul istekler gerçek heap baskısı altında kullanılan AYNI sınırlı bekleme/yük azaltma yoluna aktarılır. `0`, atlamayı tamamen devre dışı bırakır. | | `OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT` | `200` | `src/shared/middleware/chatBodyAdmission.ts` | Gövdesi bayt eşiğinin altında olsa bile bir sohbet isteğini ağır olarak sınıflandıran mesaj sayısı. | | `OMNIROUTE_CHAT_HEAVY_TOOL_COUNT` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Gövdesi bayt eşiğinin altında olsa bile bir sohbet isteğini ağır olarak sınıflandıran araç sayısı. | | `OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS` | `32000` | `src/shared/middleware/chatBodyAdmission.ts` | Bir isteği ağır olarak sınıflandıran ihtiyatlı dize boyutu token tahmini; bu, sağlayıcı faturalandırma tokenizasyonu değil, kabul maliyeti için bir vekil ölçüttür. | | `OMNIROUTE_CHAT_HARD_MAX_MESSAGES` | `0` (devre dışı) | `src/shared/middleware/chatBodyAdmission.ts` | İsteğe bağlı sohbet geçmişi üst sınırı. Varsayılan olarak devre dışıdır: Mesaj sayısı, isteğin evrensel bir özelliği değil, dağıtım politikasıdır ve burada sınırlandırma yapılması, sıkıştırma işlem hattı konuşmaları işlenebilir hâle getiremeden önce bunları nihai bir `413` ile reddeder. Heap büyümesi, `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` ve heap baskısı yük azaltmasıyla sınırlandırılır. Kesin bir üst sınıra ihtiyaç duyan bellek kısıtlı dağıtımlarda pozitif bir değer ayarlayın; bu durumda sınır aşımında yapılandırılmış, sıkıştırma gerektiğini belirten `413` döndürülür. | | `OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES` | `67108864` (64 MB) | `open-sse/handlers/chatCore/nonStreamingResponseBody.ts` | Tamamen belleğe arabelleğe alınan, akışsız bir yukarı akış yanıtı için kesin üst sınır. Bu sınır aşıldığında, heap tükenene kadar sınırsız bir dizenin büyümesine izin vermek yerine yukarı akış okuyucusu iptal edilir ve istek hızlıca başarısız olur. | | `OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES` | `768` | `open-sse/handlers/chatCore/responseHeaders.ts` | Yukarı akış yanıt başlıklarından iletilecek maksimum hat baytı. Bütçe aşıldığında, yaygın ters proxy başlık sınırları içinde kalmak için daha düşük öncelikli başlıklar (ör. özel `x-codex-*`, `x-oai-request-id`) çıkarılır. Yanıt başlığı boyutunu büyütme pahasına daha fazla yukarı akış meta verisi iletmek için daha yüksek bir değere ayarlayın. | | `CORS_ORIGIN` | _(ayarlanmamış)_ | `src/server/cors/origins.ts` | Eski tek kaynaklı CORS izin listesi. Yeni dağıtımlar için `CORS_ALLOWED_ORIGINS` tercih edin. CORS yalnızca farklı kaynaklardan gelen tarayıcı API istemcileri içindir; kimliği doğrulanmış kontrol paneli yazma işlemleri bunun yerine aynı kaynaklı istekleri ve oturuma bağlı CSRF korumasını kullanır. | | `CORS_ALLOWED_ORIGINS` | _(ayarlanmamış)_ | `src/server/cors/origins.ts` | Virgülle ayrılmış CORS izin listesi. `CORS_ALLOW_ALL=true` açıkça yapılandırılmadığı sürece joker karakter gönderilmez. | | `CORS_ALLOW_ALL` | `false` | `src/server/cors/origins.ts` | Herhangi bir tarayıcı `Origin` değerini yansıtmak için yalnızca geliştirme amaçlı kaçış mekanizması. Paylaşılan veya üretim dağıtımlarında etkinleştirmeyin. | | `OUTBOUND_SSRF_GUARD_ENABLED` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | Eski takma ad. Kontrol panelindeki anahtarı (bir DB geçersiz kılması) bu ortam değerinden önce okunur; bunlardan herhangi birindeki `false`, `0`, `no` veya `off`, söz konusu bayrağın kontrol paneli anahtarı kapalı olarak kaydedilmiş olsa bile ana makine denetimlerini `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` ile aynı şekilde kapatır; diğer değerler korumayı aşağıdaki iki bayrağa bırakır. | | `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS` | `false` | `src/shared/network/outboundUrlGuardPolicy.ts` | Koruma modunu izleyen sağlayıcı yollarında giden URL korumasının ana makine denetimlerini, bulut meta verisi engeli dâhil (169.254.0.0/16'nın tamamı, metadata.google.internal) kapatır: URL doğrulama, model keşfi, sağlayıcı düğümü temel URL'leri (uzak yeniden sıralama düğümleri dâhil) ve proxy geri dönüş testi ile uzak görüntü/medya getirme gibi sağlayıcıyla ilişkili diğer giden yollar. Ayrıca bulut meta verisi/bağlantı yerel uç noktaları dışında özel webhook hedeflerine izin verir; bu uç noktalar, bu bayrak açıkken bile engellenmeye devam eder. `BaseExecutor.execute()` üzerinden gönderilen sohbet istekleri bulut meta verisi denetimini sürdürür. Yerel sağlayıcılar varsayılan ayarlarla çalışır: `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` (varsayılan `true`), doğrulama, keşif ve sağlayıcı düğümü yollarında yerel ve LAN URL'lerine zaten izin verir; proxy geri dönüş testi ve özel webhook hedefleri yalnızca bu bayrağı dikkate alır ve bayrak kapalıyken yerel/LAN ana makinelerini engeller. `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` ayarını geçersiz kılar. Kontrol paneli anahtarından kaydedilen bir değer, bu değişkene göre önceliklidir. | | `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | Sağlayıcı doğrulaması, model keşfi, sohbet ve koruma modunun yönettiği sağlayıcıyla ilişkili diğer giden yollar için yerel/özel adreslerdeki (127.0.0.1, localhost, LAN, özel aralıklar) sağlayıcı URL'lerine izin verir. **Varsayılan `true`** (önce yerel): Bu durumda koruma, bulut meta verisi uç noktalarını — 169.254.0.0/16'nın tamamı ve bilinen meta veri ana makine adları (metadata.google.internal, metadata.goog, Alibaba/Azure/Oracle IMDS, fd00:ec2::254) — engeller. Özel ve geri döngü ana makinelerini de engelleyen yalnızca genel mod için `false` olarak ayarlayın. Koruma, herhangi bir DNS aramasından önce ana makine adını veya IP değişmezini yazıldığı şekliyle denetler; yalnızca genel modda güvenli getirme sarmalayıcısı ayrıca ana makine adını çözümler ve herhangi bir özel yanıtı reddeder. `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true`, kendi satırında listelenen yollarda bu denetimleri kapatır. LM Studio, Ollama, vLLM, Llamafile ve Triton gibi yerleşik yerel sağlayıcılar, anahtar doğrulaması ve sohbet için tüm ana makine denetimlerini atlar. Kontrol paneli anahtarından kaydedilen bir değer, bu değişkene göre önceliklidir. (#5066) | | `AUDIO_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/audioProviderNodes.ts` | `/v1/audio/*` rotalarının (transkripsiyonlar, konuşma, çeviriler) localhost dışında barındırılan OpenAI uyumlu bir sağlayıcı düğümü kullanmasına izin verir. Varsayılan olarak kapalıdır — sesi uzak bir ana makineye yönlendirmek çıkış kimliğini değiştirir ve açık bir operatör kararı gerektirir. Geri döngü/özel düğümlere (localhost, 127.0.0.1, 172.16-31.x) her zaman izin verilir ve bunlar etkilenmez. (#3963) | | `RERANK_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/rerankProviderNodes.ts` | `POST /v1/rerank` işleminin (ve bellek motorunun geri döngü yeniden sıralama adımının) localhost dışında barındırılan OpenAI uyumlu bir sağlayıcı düğümünü — TEI, Infinity, vLLM vb. çalıştıran bir LAN makinesi veya Tailscale eşini — kullanmasına izin verir. Varsayılan olarak kapalıdır — uzak bir ana makineye yönlendirmek çıkış kimliğini değiştirir ve açık bir operatör kararı gerektirir. Geri döngü düğümlerine (localhost, 127.0.0.1, 172.16-31.x) her zaman izin verilir ve bunlar etkilenmez. Uzak bir düğümün temel URL'si ayrıca sağlayıcı giden URL politikasını (`OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` / `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS`) geçmelidir. | | `OMNIROUTE_LOCAL_PROVIDER_NODE_HOSTS` | _(boş)_ | `src/shared/network/localNodeHosts.ts` | Sağlayıcı düğümü yönlendirmesinin yerel olarak değerlendirdiği ana bilgisayar adları (virgül veya boşlukla ayrılmış) — genellikle OmniRoute'un kendi Docker ağındaki bir yeniden sıralayıcının, TEI'nin veya ses yan hizmetinin Docker/Compose hizmet adı (`http://reranker:8080/v1`); böylece düğüm, sabit kodlanmış bir konteyner IP'sine ihtiyaç duymaz. Listelenen ana bilgisayarlar, her uzak düğüm için `RERANK_REMOTE_PROVIDER_NODES` / `AUDIO_REMOTE_PROVIDER_NODES` etkinleştirilmeden `/v1/rerank`, `/v1/audio/*` ve yerel sistem durumu denetimi için kullanılabilir ve doğrudan çağrılır — hiçbir zaman `HTTP(S)_PROXY` veya bir bağlantının sabitlenmiş proxy'si üzerinden çağrılmaz. Yine de bağlantının API anahtarını gönderirler. Yalnızca tek etiketli adlar ve `.internal`/`.local` adları kabul edilir; genel FQDN'ler, IP değişmez değerleri ve bulut meta verisi adları bir uyarıyla yok sayılır. (#14635) | | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | OIDC etkinleştirildiğinde parola ile oturum açmayı devre dışı bırakır; böylece kullanıcılar yalnızca OIDC Tek Oturum Açma üzerinden kimlik doğrulayabilir. Kısa diğer ad `OIDC_DISABLE_PASSWORD_LOGIN` da kabul edilir; aynı anahtara sahip Gösterge Paneli Özellik Bayrağı önceliklidir. (#10889) | | `OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` için kısa diğer ad (#10889). | ### Güçlendirme Kontrol Listesi ```bash # Minimum üretim güvenliği: AUTH_COOKIE_SECURE=true # HTTPS gerektirir REQUIRE_API_KEY=true # Tüm proxy çağrılarının kimliğini doğrula ALLOW_API_KEY_REVEAL=false # Anahtarları kullanıcı arayüzünde asla gösterme CORS_ALLOWED_ORIGINS=https://your.domain.com MAX_BODY_SIZE_BYTES=5242880 # 5 MB sınırı ``` --- ## 5. Girdi Temizleme ve PII Koruması OmniRoute iki katmanlı bir savunma sağlar: istek tarafında enjeksiyon taraması ve yanıt tarafında PII ayıklama. > **⚠️ Sınırlamalar:** Bu koruma önlemleri, eksiksiz bir istem enjeksiyonu güvenlik duvarı veya PII DLP sistemi değil, _en iyi gayret esasına dayalı sezgisel_ tespitlerdir. Yanlış pozitifler (zararsız persona/RPG istemlerinin işaretlenmesi) ve yanlış negatifler (leetspeak, boşluk kullanımı, İngilizce dışı kalıplar) üretebilirler. Tek başlarına uyumluluk için yeterli değildirler. Bunlara güvenmeden önce modları ayarlayın ve kendi trafiğinize karşı test edin. ### İstek Tarafı: İstem Enjeksiyonu Koruması | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | --------------------------------- | ---------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `INPUT_SANITIZER_ENABLED` | `true` | `src/middleware/promptInjectionGuard.ts` | Gelen mesajların istem enjeksiyonu kalıplarına karşı taranmasını etkinleştirir. | | `INPUT_SANITIZER_MODE` | `warn` | `src/middleware/promptInjectionGuard.ts` | Enjeksiyon politikası: `warn` = yalnızca günlüğe kaydet, `block` = isteği 400 ile reddet. Eski `redact`, enjeksiyon metnini **ayıklamaz**; istek PII'sini yeniden yazmak için `PII_REDACTION_ENABLED` kullanın. | | `INJECTION_GUARD_MODE` | _(ayarlanmamış)_ | `src/middleware/promptInjectionGuard.ts` | `INPUT_SANITIZER_MODE` için eski takma ad — aynı davranış. | | `INPUT_SANITIZER_BLOCK_THRESHOLD` | `high` | `src/shared/utils/injectionSeverity.ts` | `MODE=block` tarafından reddedilen minimum önem derecesi: `high` (varsayılan), `medium` veya `low`. Eşik düşürülmediği sürece orta önem derecesindeki kalıplar yalnızca gözlemlenir. | | `INJECTION_GUARD_BLOCK_THRESHOLD` | _(ayarlanmamış)_ | `src/shared/utils/injectionSeverity.ts` | `INPUT_SANITIZER_BLOCK_THRESHOLD` için eski takma ad — aynı davranış. | | `PII_REDACTION_ENABLED` | `false` | `src/lib/guardrails/piiMasker.ts` | `true` olduğunda, gelen isteklerdeki PII'yi ayıklar (enjeksiyon modundan bağımsızdır). | | `CREDENTIAL_REDACTION_ENABLED` | `false` | `src/lib/guardrails/credentialMasker.ts` | İstek/yanıt yüklerindeki yaygın API anahtarı / gizli belirteç kalıplarını ayıklar. İsteğe bağlıdır; `PII_REDACTION_ENABLED` davranışını yansıtır. | ### Yanıt Tarafı: PII Temizleyici | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | -------------------------------- | ---------- | ------------------------- | ----------------------------------------------------------------------------------------------- | | `PII_RESPONSE_SANITIZATION` | `false` | `src/lib/piiSanitizer.ts` | İstemciye döndürmeden önce LLM yanıtlarını sızdırılmış PII açısından tarar. | | `PII_RESPONSE_SANITIZATION_MODE` | `redact` | `src/lib/piiSanitizer.ts` | `redact` = PII'yi maskele, `warn` = yalnızca günlüğe kaydet, `block` = yanıtın tamamını kaldır. | ### VS Code Belirteçli Rota Bağlamı Temizleyicisi | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------------------- | ---------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_VSCODE_SANITIZE_CONTEXT` | `1` | `src/app/api/v1/vscode/contextSanitizer.ts` | `/v1/vscode/[token]/*` isteklerinden örtük etkin düzenleyici bağlamını (`editorContext`, `activeEditor`, `currentFile`, `selection`, `openTabs`…) çıkarır ve açıkça eklenmiş hassas dosyaların içeriğini ayıklar. Varsayılan olarak güvenlidir; devre dışı bırakmak için `0` olarak ayarlayın. | ### Senaryolar | Senaryo | Yapılandırma | | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Kurumsal uyumluluk** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=block`, `PII_REDACTION_ENABLED=true`, `PII_RESPONSE_SANITIZATION=true` (enjeksiyonları engeller + istek/yanıt PII'sini ayıklar; modlar birbirinden bağımsızdır) | | **Yalnızca izleme** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=warn` — günlüğe kaydeder ancak hiçbir zaman engellemez | | **Kişisel kullanım** | Tümünü devre dışı bırakın — ek yük yok | --- ## 6. Araç ve Yönlendirme Politikaları | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------------------------------------------- | ---------------------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `TOOL_POLICY_MODE` | `disabled` | `src/lib/toolPolicy.ts` | LLM araç/işlev çağırma erişimini denetler. `allowlist` = yalnızca listelenen araçlar, `denylist` = listelenenler dışındaki tüm araçlar, `disabled` = kısıtlama yok. | | `OMNIROUTE_PAYLOAD_RULES_PATH` | `./config/payloadRules.json` | `open-sse/services/payloadRules.ts` | Yük işleme kurallarını içeren JSON dosyasının yolu (model/protokol bazında yukarı akış ayarlamaları). | | `OMNIROUTE_PAYLOAD_RULES_RELOAD_MS` | `5000` | `open-sse/services/payloadRules.ts` | Yük kuralları dosyasını çalışırken yeniden yükleme aralığı (ms). En az `1000`. | | `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS` | `false` | `open-sse/services/model.ts` | İsteğe bağlı: Claude Code istemcilerinden gelen yalın `claude-*` model kimliklerini, sağlayıcı öneki gerektirmek yerine Claude Code OAuth hesabı üzerinden yönlendirir. Açık sağlayıcı önekleri yine önceliklidir. Claude sağlayıcı sayfasındaki bir pano geçiş düğmesiyle de yapılandırılabilir. | | `BARE_MODEL_DEFAULT_OVERRIDE_LEGACY` | `false` | `open-sse/services/model.ts` | Eski `resolveBareModelToConnectionDefault` davranışı (#4825): herhangi bir yalın model adını, seçilen bağlantının `defaultModel` değeriyle değiştirir. Varsayılan olarak kapalıdır; yalnızca `auto` veya boş bir model değiştirilir. Açıkken her çift için bir uyarı günlüğe kaydedilir. | | `COMBO_CONCURRENCY_PER_MODEL` | `3` | `open-sse/services/comboConfig.ts` | Döngüsel kombinasyonlar için model başına eşzamanlılık üst sınırı (#9100). Döngüsel kombinasyon semaforu, geçersiz kılma olanağı olmaksızın model başına 3 eşzamanlı istekle sabit olarak sınırlandırılmıştı ve daha yüksek eşzamanlılığa sahip trafiği bu sınırın arkasında serileştiriyordu. `>= 1` olacak şekilde doğrulanır, `<= 32` olacak şekilde sınırlandırılır. | | `DISABLE_CONTEXT_WINDOW_CHECKS` | `false` | `open-sse/handlers/chatCore.ts` | Doğrudan tek modelli isteklerde OmniRoute'un yerel bağlam penceresi / maksimum girdi belirteci denetimini atlayan tehlikeli, isteğe bağlı ayar. Yukarı akış sağlayıcıları gerçek sınırlarını uygulamaya devam eder; istem sıkıştırma ve modelin kendi çıktı belirteci üst sınırı etkin kalır. Geçerli öncelik sırası Özellik Bayrakları Veritabanı geçersiz kılması > ortam değişkeni > varsayılan şeklindedir; yeniden başlatma gerekmez. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS` | _(ayarlanmamış)_ | `open-sse/services/selfHostedEntry.ts` | Satır içi YAML `providers:` belgesi (RIC-738, D4). Ayarlandığında (`strategy:` bloğu olsun veya olmasın), `/v1/chat/completions` bulut işlem hattı yerine kendi kendine barındırılan birleşik OpenAI uyumlu girişe yönlendirilir. Ayarlanmamışsa (varsayılan), rota doğrudan mevcut bulut işlem hattına geçer. Bkz. `docs/routing/SELF_HOSTED_OPENAI_ENTRY.md`. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE` | _(ayarlanmamış)_ | `open-sse/services/selfHostedEntry.ts` | Satır içi ortam değişkeni yerine dosya kullanmayı tercih eden dağıtımlar için `OMNIROUTE_SELF_HOSTED_PROVIDERS` ile aynı `providers:` belgesini içeren YAML dosyasının yolu. Bunlardan herhangi biri kendi kendine barındırılan girişi etkinleştirir. | | `OMNIROUTE_SELF_HOSTED_API_KEY` | _(ayarlanmamış — açık rota)_ | `open-sse/services/selfHostedEntry.ts` | Birleşik, kendi kendine barındırılan giriş için isteğe bağlı paylaşılan API anahtarı (D5 iskelesi, anahtar başına kota sistemi için ayrılmıştır). Ayarlandığında istekler `Authorization: Bearer ` içermelidir. Ayarlanmamışsa rota açıktır ve mevcut, kendi kendine barındırılan yerel sağlayıcı düzeniyle eşleşir (geri döngü/güvenilir ağ dağıtımı). | | `OMNIROUTE_SELF_HOSTED_STRATEGY` | _(ayarlanmamış)_ | `open-sse/services/routingStrategies.ts` | Belirlenimci yönlendirme motoru için satır içi YAML `strategy:` belgesi (M2/RIC-740, D3) — kara liste/beyaz liste, bekleme süresi devre kesicisi, maliyet önceliği, gecikme farkındalığı, geri dönüş zinciri. Anahtar bazında `OMNIROUTE_SELF_HOSTED_PROVIDERS` içine yerleştirilmiş satır içi `strategy:` bloğunu geçersiz kılar. Bkz. `docs/routing/DETERMINISTIC_ROUTING.md`. | | `OMNIROUTE_SELF_HOSTED_STRATEGY_FILE` | _(ayarlanmamış)_ | `open-sse/services/routingStrategies.ts` | Satır içi bir ortam değişkeni yerine dosya kullanmayı tercih eden dağıtımlar için, `OMNIROUTE_SELF_HOSTED_STRATEGY` ile aynı `strategy:` belgesini içeren YAML dosyasının yolu. | | `OMNIROUTE_DISABLE_CONVERSATION_TRACKING` | _(ayarlanmamış)_ | `open-sse/services/conversationTracker.ts` | Konuşma geçmişinin toplanmasını durdurmak için `1` olarak ayarlayın. `resolveConversationId()`, SQLite'ı okumadan veya mesaj geçmişini ayrıştırmadan önce izlenmeyen bir sonuç döndürür; istemci tarafından sağlanan oturum kimlikleri de buna dahildir. Yönlendirme oturumu işleme davranışı değişmez ve mevcut kayıtlar silinmez. Bu seçenek, kontrol panelinin konuşma görünümünü kullanmayan ve konuşma turları tablosunun büyümesini durdurmak isteyen dağıtımlar içindir. | | `OMNIROUTE_NADIR_API_KEY` | _(ayarlanmamış)_ | `open-sse/services/autoCombo/nadirStrategy.ts` | Kombonun kendi `config.nadir.apiKey` değeri ayarlanmadığında kullanılan, isteğe bağlı `nadir` otomatik kombo yönlendirici stratejisinin API anahtarı. İsteğe bağlıdır: anahtarsız çağrılar Nadir'in IP başına hız sınırlaması uygulanan anonim katmanına yönlendirilir; bu nedenle paylaşılan bir ağ geçidinin arkasında kullanılamaz. Hassas bilgidir; kombolar farklı hesaplar kullanıyorsa kombo başına alanı tercih edin. | | `OMNIROUTE_NADIR_BASE_URL` | `https://api.getnadir.com` | `open-sse/services/autoCombo/nadirStrategy.ts` | Kombonun kendi `config.nadir.baseUrl` değeri ayarlanmadığında kullanılan Nadir karar API'sinin temel kaynağı. Yalnızca istem başlarını kendi ağınızda tutan, kendi sunucunuzda barındırılan bir Nadir için gereklidir. Sondaki `/v1` kabul edilir ve kaldırılır. | | `OMNIROUTE_API_KEY_WEEKLY_WINDOW` | `provider` | `src/lib/usage/apiKeyUsageLimits.ts` | API anahtarı başına USD kullanım sınırları için haftalık pencere (isteklerin uygulanması, `GET /api/keys/{id}/usage-limits`, `@@om-usage`). `provider`: hafta, anahtarın erişebildiği yukarı akış bağlantıları arasındaki en erken haftalık sıfırlamada sona erer; bilinen bir sıfırlama yoksa kayan 7 günlük dönem kullanılır. `calendar`: her anahtar için aynı olacak şekilde, yerel saate göre Pazartesi 00:00'dan sonraki Pazartesi 00:00'a kadar olan hafta. Bir yukarı akış hesapları havuzu, ayrı ayrı bütçelendirilmiş çok sayıda anahtar tarafından paylaşılıyorsa `calendar` önerilir. Geçersiz değerler `provider` değerine geri döner. | | `OMNIROUTE_API_KEY_WEEKLY_WINDOW_TIMEZONE` | _(işlem saat dilimi)_ | `src/lib/usage/apiKeyUsageLimits.ts` | `calendar` haftalık penceresi için Pazartesi 00:00'ı tanımlayan IANA saat dilimi (örneğin `Asia/Shanghai`). Ayarlanmamış veya geçersizse: OmniRoute işleminin saat dilimi (ana makinenin veya konteynerin `TZ` değeri; konteyner imajlarında genellikle ayarlanmamıştır, yani Eşgüdümlü Evrensel Zaman kullanılır). `provider` modunda yok sayılır. | | `OMNIROUTE_MAX_TOOLS_LIMIT` | `128` | `open-sse/config/constants.ts` | Bir istekte izin verilen varsayılan azami araç sayısı (OpenAI varsayılanı). Yalnızca pozitif tam sayılar; ayarlanmamış veya geçersiz değerlerde `128` korunur. Bilinen/proaktif bir sınıra sahip sağlayıcı (`grok-cli` 200, `nvidia` 1536) yine kendi üst sınırını uygular — bu seçenek yalnızca varsayılan üst sınırı değiştirir. | | `OMNIROUTE_PROMPT_EMULATE_TOOLS` | _(açık)_ | `open-sse/executors/syntxChat.ts` | SYNTX.ai istem öykünmeli araç çağırma: ayarlanmamış olması veya `1`/`true`/`on`/`yes` değeri, yerel araç kataloğunu isteme ekler; diğer tüm değerler (ör. `0`) bu eklemeyi atlar. | --- ## 7. URL'ler ve Bulut Senkronizasyonu | Değişken | Varsayılan Değer | Kaynak Dosya | Açıklama | | ---------------------------------------- | --------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `BASE_URL` | `http://localhost:20128` | `src/lib/cloudSync.ts` | Dahili senkronizasyon işlerinin `/api/sync/cloud` çağrısı yapmak için kullandığı sunucu tarafı URL'si. Uygulama herkese açık olarak proxy üzerinden sunulsa bile bunu bir geri döngü/konteyner URL'si olarak tutun. | | `CLOUD_URL` | _(boş)_ | `src/lib/cloudSync.ts` | Bulut aktarma uç noktası URL'si (premium özellik). | | `CLOUD_SYNC_TIMEOUT_MS` | `12000` | `src/lib/cloudSync.ts` | Bulut senkronizasyonu istekleri için HTTP zaman aşımı. | | `OMNIROUTE_BUILD_PROFILE` | `full` | Webpack derleme yapılandırması | Derleme zamanı profili (ayrıcalıklı modülleri paketten fiziksel olarak hariç tutmak için `minimal` olarak ayarlayın). | | `OMNIROUTE_STANDALONE_DIR` | _.build/ bağımsız çıktısı_ | `scripts/build/colocate-standalone.mjs` | Derleme sonrası birlikte konumlandırma adımı tarafından kullanılan bağımsız çıktı dizini için derleme zamanı geçersiz kılma ayarı. Çalışma zamanı ayarı değildir. | | `OMNIROUTE_CLOUD_SYNC_SECRET` | _(boş)_ | `src/lib/cloudSync.ts` | Bulut Senkronizasyonu yanıtlarının HMAC-SHA256 imzasını doğrulamak için kullanılan paylaşılan gizli anahtar. | | `OMNIROUTE_CLOUD_SYNC_SECRETS` | `false` | `src/lib/cloudSync.ts` | Bulut Senkronizasyonu uç noktasının yerel kimlik bilgileri üzerine yazmasına izin vermek için `true` olarak ayarlayın. Varsayılan değer `false`'dur. | | `OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE` | `false` | `src/lib/cloudSync.ts` | Yerel bir gizli anahtar yapılandırılmadığında imzasız Bulut Senkronizasyonu yanıtını reddetmek için `true` olarak ayarlayın (#13679). Mevcut bir imza her zaman doğrulanır ve bu bayraktan bağımsız olarak `OMNIROUTE_CLOUD_SYNC_SECRET` ayarlanmamışsa her zaman reddedilir. v3.9 sürümünde varsayılan olarak zorunlu hâle gelir. | | `OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP` | `false` | `src/app/api/providers/zed/import/route.ts` | Kullanıcı onayı olmadan v3.8.5 sürümündeki tek adımlı "her şeyi içe aktar" davranışına geri dönmek için `true` olarak ayarlayın. | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | OAuth, Pano, senkronizasyon | OAuth redirect_uri, Pano bağlantıları ve oluşturulan herkese açık URL'ler için dışarıya açık URL. OAuth geri çağrılarının veya oluşturulan tarayıcı bağlantılarının standart bir ters proxy ana makinesi kullanması gerektiğinde bunu kararlı herkese açık URL olarak ayarlayın. | | `NEXT_PUBLIC_CLOUD_URL` | _(boş)_ | İstemci tarafı | `CLOUD_URL` değişkeninin istemci tarafındaki yansıması. | | `NEXT_PUBLIC_APP_URL` | _(ayarlanmamış)_ | `src/shared/services/cloudSyncScheduler.ts` | `NEXT_PUBLIC_BASE_URL` için eski uyumluluk geri dönüşü. | | `NEXT_PUBLIC_PORT` | _(ayarlanmamış — `PORT` değerine geri döner)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Kaynak bilinmediğinde (SSR/testler) görüntüleme URL'leri için istemci tarafı geri dönüş portu; `PORT` değerinden önce okunur. | | `OMNIROUTE_PUBLIC_BASE_URL` | _(ayarlanmamış)_ | Genel kaynak çözümleyicisi, görüntü URL'leri | Genel URL oluşturma ve kontrol paneli dışındaki tarayıcı kaynağı doğrulaması için kullanılan, en yüksek öncelikli ve tarayıcıya yönelik OmniRoute kaynağı. OpenWebUI veya başka bir aktarıcı OmniRoute'a dahili bir URL üzerinden erişirken kullanıcının tarayıcısının oluşturulan medyayı bir LAN, tünel ya da genel kaynak üzerinden alması gerektiğinde bunu ayarlayın. `/v1` eklemeyin. | | `OMNIROUTE_PROVIDER_MANIFEST_URL` | _(ayarlanmamış)_ | `open-sse/config/providerPluginManifestUrl.ts` | Yardımcı istemcilere bildirilen mutlak sağlayıcı eklentisi manifest URL'si. Ayarlanmadığında OmniRoute, istek kaynağından veya HOST/PORT değerlerinden `/api/v1/provider-plugin-manifest` türetir. | | `OMNIROUTE_PUBLIC_PROTOCOL` | `http` | `open-sse/config/providerPluginManifestUrl.ts` | İstek kaynağı olmadan HOST/PORT değerlerinden sağlayıcı eklentisi manifest URL'si türetilirken kullanılan protokol. Açık bir `OMNIROUTE_PROVIDER_MANIFEST_URL` ayarlanmamışsa TLS sonlandıran genel bir proxy arkasında `https` olarak ayarlayın. | | `OMNIROUTE_TRUST_PROXY` | _(ayarlanmamış)_ | `src/server/origin/publicOrigin.ts` | İletilen genel kaynak başlıkları için isteğe bağlı güven modu. Ayarlanmamış = güvenlik kararlarında `Forwarded` / `X-Forwarded-*` başlıklarına güvenme. `true` / `loopback`, iletilen ana makineye/protokole yalnızca token damgalı bir geri döngü proxy'sinden geldiğinde güvenir. `private` / `lan`, özel LAN proxy eşlerine de güvenir ve `API_PORT` köprüsünün böyle bir eşin `X-Forwarded-For` değerini korumasına izin verir. Üretimde açıkça belirtilmiş `NEXT_PUBLIC_BASE_URL` değerini tercih edin. | | `KIE_CALLBACK_URL` | _(ayarlanmamış)_ | `open-sse/utils/kieTask.ts` | Eşzamansız kie.ai işleri için genel geri çağırma URL'si. `OMNIROUTE_KIE_CALLBACK_URL` ve `OMNIROUTE_PUBLIC_URL` öncesinde en yüksek öncelikli geçersiz kılma. | | `OMNIROUTE_KIE_CALLBACK_URL` | _(ayarlanmamış)_ | `open-sse/utils/kieTask.ts` | `KIE_CALLBACK_URL` için alternatif yazım. Birincil değişken ayarlanmadığında buna geri döner. | | `OMNIROUTE_PUBLIC_URL` | _(ayarlanmamış)_ | `open-sse/utils/kieTask.ts` | Eşzamansız geri çağırma URL'lerini oluşturmak için kullanılan genel kaynak. kie.ai geri çağırmaları için en düşük öncelikli geri dönüş; diğer aktarıcılar için de genel amaçlı bir genel URL olarak kullanılır. | | `OMNIROUTE_CROF_USAGE_URL` | `https://crof.ai/usage_api/` | `open-sse/services/usage.ts` | Kullanım sayfasının kullandığı CrofAI kota sorgulama uç noktası. Aktarıcılar / test düzenekleri için geçersiz kılın. | | `OMNIROUTE_CLINEPASS_USAGE_URL` | `https://api.cline.bot/api/v1/users/me/plan/usage-limits` | `open-sse/services/usage/clinepass.ts` | Kullanım sayfasının kullandığı ClinePass 5 saatlik / haftalık / aylık kota uç noktası. Aktarıcılar / test düzenekleri için geçersiz kılın. | | `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/usage` | `open-sse/services/opencodeQuotaFetcher.ts` | Kullanım sayfasının kullandığı, API anahtarıyla kimliği doğrulanmış resmi OpenCode Go kullanım uç noktası. Aktarıcılar / test düzenekleri için geçersiz kılın. | | `OPENCODE_SYNTHESIZE_CLI_HEADERS` | `true` | `open-sse/executors/opencode.ts` | İstemcinin göndermediği OpenCode CLI kimlik başlıklarını (User-Agent, x-opencode-client/project, istek/oturum UUID'leri) opencode-go/zen üst sistem isteklerinde sentezleyerek VPS çıkışındaki Cloudflare'in bunları kabul etmesini sağlar (#6210/#5997). #10571'den beri varsayılan olarak etkindir; `false`/`0`/`no`/`off` ile devre dışı bırakabilirsiniz. | | `OPENCODE_USER_AGENT` | `opencode/1.18.31` | `open-sse/utils/opencodeHeaders.ts` | `OPENCODE_SYNTHESIZE_CLI_HEADERS` açıkken ve sağlayıcıya özel bir `_USER_AGENT` geçersiz kılma değeri ayarlanmamışken kullanılan varsayılan User-Agent. Yalnızca opencode yürütücülerine uygulanır. Üst sağlayıcının engellediği anahtarsız bir istekte, `opencode/= 1.17>` içermeyen yapılandırılmış bir değer reddedilmek yerine bu varsayılanla değiştirilir. | | `OMNIROUTE_FORWARD_ATTRIBUTION` | `1` (açık) | `open-sse/utils/opencodeHeaders.ts` | İstemci uygulaması ilişkilendirme başlıklarını (`x-session-id`, `x-title`, `http-referer`) üst sağlayıcılara iletir; böylece listelenen bir çalışma düzeneği içinde başlayan istek, yönlendirici boyunca kimliğini korur (OpenRouter yayıncı geçitleri bunları anahtar olarak kullanır). `0`/`false`/`no`/`off`, kayıt defteri/operatör kimliğini korur ve istemci tarafından sağlanan değerleri çıkarır. Operatör tarafından yapılandırılan özel başlıklar her zaman istemci değerlerine göre önceliklidir. | | `OPENCODE_CLIENT` | `desktop` | `open-sse/executors/opencode.ts` | `OPENCODE_SYNTHESIZE_CLI_HEADERS` açıkken sentezlenen `x-opencode-client` başlığının değeri. | | `OPENCODE_PROJECT` | `global` | `open-sse/executors/opencode.ts` | `OPENCODE_SYNTHESIZE_CLI_HEADERS` açıkken sentezlenen `x-opencode-project` başlığının değeri. | | `OMNIROUTE_EGRESS_IP_LOCK_PROVIDERS` | _(ayarlanmamış)_ | `open-sse/config/providerErrorRules.ts` | Üst sağlayıcı hataları çıkış IP'sine göre gruplandırılan sağlayıcıların etkin kümesi (tek bir 429, aynı IP'yi paylaşan tüm eş bağlantıları beklemeye alır). Ayarlanmamışsa ücretsiz katman için varsayılan `opencode,opencode-go,opencode-cli` kullanılır; `none`/`off`/`false`/`0`, art arda etkiyi tamamen devre dışı bırakır; virgülle ayrılmış bir liste kümenin yerini alır. Ücretli planlar üst sağlayıcıda hesaba göre gruplandırılır ve bunu güvenle devre dışı bırakabilir (#9611). | | `OPENCODE_FREE_TIER_REQUEST_CONTRACT` | _(ayarlanmamış)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Anahtarsız OpenCode isteklerinin gövdesini (akış bayrağı ve araç listesi) ayarlamayı durdurmak için `off` olarak ayarlayın. Başlıklar yine de uygulanır. Her istek için yeniden okunur, dolayısıyla bir değişiklik anında yürürlüğe girer. | | `OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS` | _(ayarlanmamış)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Henüz söz konusu model için hiçbir şey gözlemlenmemişken, araç içermeyen anahtarsız bir OpenCode isteğinde bildirilecek virgülle ayrılmış araç adları. Boş bırakılırsa modele çağırmaması söylenen tek bir yer tutucuya geri dönülür. En fazla 32 girdi, `[A-Za-z_][A-Za-z0-9_-]{0,63}`; geçersiz girdiler yok sayılır. | | `OMNIROUTE_OLLAMA_CLOUD_USAGE_URL` | `https://ollama.com/settings` | `open-sse/services/usage.ts` | Kota verilerini çekmek için kullanılan Ollama Cloud ayarları URL'si. Aktarıcılar / test sabitleri için geçersiz kılınabilir. | | `OLLAMA_USAGE_COOKIE` | _(ayarlanmamış)_ | `open-sse/services/usage.ts` | Ayarlar sayfasından kota verilerini çekmek için kullanılan Ollama Cloud `__Secure-session` çerezi. Hassastır; birden fazla hesap yapılandırıldığında bağlantı başına Dashboard alanını tercih edin. | | `OLLAMA_CLOUD_USAGE_COOKIE` | _(ayarlanmamış)_ | `open-sse/services/usage.ts` | Alternatif Ollama Cloud `__Secure-session` çerezi ortam değişkeni. Hassastır; birden fazla hesap yapılandırıldığında bağlantı başına Dashboard alanını tercih edin. | | `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(ayarlanmamış)_ | `open-sse/services/usage.ts` | Daha kısa alternatif adlardan önce kullanılan alternatif Ollama Cloud `__Secure-session` çerezi ortam değişkeni. Hassastır; birden fazla hesap yapılandırıldığında bağlantı başına Dashboard alanını tercih edin. | | `OMNIROUTE_CODEWHISPERER_BASE_URL` | `https://codewhisperer.us-east-1.amazonaws.com` | `open-sse/services/usage.ts` | CodeWhisperer (AWS Kiro) kullanım sınırları uç noktası. Aktarıcılar / test sabitleri için geçersiz kılınabilir. | > [!IMPORTANT] > Ters proxy (nginx, Caddy) arkasında dağıtım yaparken, OAuth geri çağrılarının veya oluşturulan herkese açık bağlantıların bu ana bilgisayar adını kullanması gerekiyorsa `NEXT_PUBLIC_BASE_URL` değişkenini kararlı herkese açık URL'nize (ör. `https://omniroute.example.com`) ayarlayın. Bu ayar olmadan, redirect_uri eşleşmeyeceği için OAuth geri çağrıları başarısız olabilir ve oluşturulan herkese açık bağlantılar dahili kapsayıcı kaynağını gösterebilir. > > Sunucudan sunucuya işler için `BASE_URL` değişkenini dahili bir geri döngü/kapsayıcı URL'si olarak tutun. Kimlik bilgileri taşıyan dahili öz getirmeler için tarayıcı `Origin` değerini veya herkese açık bir ana bilgisayar adını kullanmayın. > > Kimliği doğrulanmış kontrol paneli yazma işlemleri statik bir herkese açık temel URL gerektirmez: kontrol paneli, aynı kaynaklı güvenli olmayan istekleri oturuma bağlı bir CSRF belirteciyle gönderir. OmniRoute, kontrol paneli dışındaki tarayıcı entegrasyonları için herkese açık kaynak doğrulamasını yine de merkezileştirir: açıkça belirtilen herkese açık URL ortam değişkenlerine önce güvenilir; ham `Forwarded` / `X-Forwarded-*` üstbilgileri ise `OMNIROUTE_TRUST_PROXY` etkinleştirilmedikçe ve doğrudan proxy eşi bir belirteçle güvenilir olarak işaretlenmedikçe yok sayılır. Aynı kaynaklı kontrol paneli isteklerini düzeltmek için CORS ayarlarını kullanmayın; CORS yalnızca farklı kaynaklı tarayıcı istemcileri içindir. --- ## 8. Giden Proxy Üst akış LLM sağlayıcısı çağrılarını çıkış kontrolü, coğrafi yönlendirme veya IP maskeleme amacıyla bir HTTP ya da SOCKS5 proxy üzerinden yönlendirin. `OMNIROUTE_UPSTREAM_HTTP2_ENABLED` varsayılan olarak `true` değerine sahiptir. `open-sse/utils/proxyDispatcher.ts` ve `open-sse/utils/proxyFetch.ts` içindeki Undici dispatcher'larında HTTP/1.1 kullanımını zorunlu kılmak için bunu `false`, `0`, `no` veya `off` olarak ayarlayın: doğrudan çıkış, HTTP(S)/SOCKS proxy'leri, aktarıcılar ve bunların yeni soketle yeniden denemeleri. Bu ayar; TLS sertifikası doğrulamasını, proxy kimlik doğrulamasını, bağlantı sınırlarını ve keep-alive ayarlarını korur. Dispatcher'lar önbelleğe alındığından ve aktarıcı agent'ları başlangıçta oluşturulduğundan, bu ayarı değiştirdikten sonra OmniRoute'u yeniden başlatın. Bu anahtar, wreq TLS parmak izi oluşturmayı veya sağlayıcıya özgü taşıma mekanizmalarını denetlemez. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------------------- | ---------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ENABLE_SOCKS5_PROXY` | `true` | `open-sse/executors` | Yukarı akış çağrıları için SOCKS5 proxy aracısını etkinleştirir. Devre dışı bırakmak için `false` kullanın. | | `NEXT_PUBLIC_ENABLE_SOCKS5_PROXY` | `true` | İstemci tarafı | SOCKS5 kullanılabilirliğine ilişkin istemci tarafı farkındalığı. | | `PROXY_SKIP_RECENTLY_FAILED` | `true` | `src/shared/utils/featureFlags.ts` | Varsayılan olarak etkin özellik bayrağı ([FEATURE_FLAGS.md](./FEATURE_FLAGS.md) dosyasına bakın; kontrol panelindeki DB geçersiz kılma ayarı önceliklidir). Proxy havuzlarının ve hesap başına rotasyonun, kısa süre önce başarısız olan bir üyeyi (reddedilen TCP yoklaması veya üzerinden alınan 429 yanıtı) her tekrarda iki katına çıkan ve bir üst sınıra kadar süren bir dönem boyunca yeniden sunmasını engeller. `false`, normal seçimi geri yükler. | | `SELECTOR_CONTROL_ALLOWLIST` | _(ayarlanmamış)_ | `src/lib/proxySubscription/selectorGuard.ts` | Geri döngü dışındaki yerel çekirdek seçici kontrol hedefleri için izin listesi (virgül/boşlukla ayrılmış ana bilgisayarlar veya IP'ler; `*`, LAN/özel ağ erişimini açar ancak meta veri/bağlantı yerelini hiçbir zaman açmaz). http/https üzerinden geri döngüye varsayılan olarak izin verilir. Ayarlandığında ve boş olmadığında, kontrol panelindeki DB değeri bu değişkene göre önceliklidir. | | `PROXY_QUOTA_429_BASE_MS` | `300000` | `open-sse/utils/proxyRefusalMemory.ts` | Her tekrarda iki katına çıkan 429 ayırma süresinin taban değeri (ms). Başlangıçta bir kez okunur. `1000..3600000` aralığıyla sınırlandırılmıştır; aralık dışındaki veya okunamayan değerlerde bir uyarıyla varsayılana geri dönülür. | | `PROXY_QUOTA_429_MAX_MS` | `900000` | `open-sse/utils/proxyRefusalMemory.ts` | 429 ayırma süresinin üst sınırı (ms). Başlangıçta bir kez okunur. `1000..3600000` aralığıyla sınırlandırılmıştır; aralık dışındaki veya okunamayan değerlerde bir uyarıyla varsayılana geri dönülür. Üst sınır taban değerin altındaysa varsayılana geri dönülür. Üst sınırın düşürülmesi, seri unutma süresini de kısaltır: girdiler, süre dolduktan sonra `2 x max` içinde temizlenir. | | `PROXY_POOL_SHARED_EGRESS_ORDER` | `false` | `src/shared/utils/featureFlags.ts` | İsteğe bağlı özellik bayrağı ([FEATURE_FLAGS.md](./FEATURE_FLAGS.md) dosyasına bakın; kontrol panelindeki DB geçersiz kılma ayarı önceliklidir). Kotası çıkış adresine göre gruplandırılan sağlayıcılarda, yakın zamanda reddedilen bir üyeyle aynı gözlemlenmiş çıkış adresini paylaşan havuz üyesini sağlıklı üyelerin hemen altında sıralar. Yalnızca sıralamayı etkiler, hiçbir zaman hariç tutmaz. Okuduğu ret sinyalini üreten `PROXY_SKIP_RECENTLY_FAILED` gerekir. | | `PROXY_WEBHOOK_REBOUND_MS` | `300000` | `src/lib/proxyEvents/proxyTransitionBridge.ts` | Reddedilme yoğunluğunun tek bir olay göndermesi için havuz üyesi başına yinelenen `proxy.set_aside` webhook uyarılarını sınırlayan geri tepme penceresi (ms). Her gönderimde okunur. `1000..3600000` aralığıyla sınırlandırılmıştır; aralık dışındaki veya okunamayan değerlerde sessizce varsayılana geri dönülür. | | `HTTP_PROXY` | _(ayarlanmamış)_ | Node.js standardı | Yukarı akış çağrıları için HTTP proxy'si. | | `HTTPS_PROXY` | _(ayarlanmamış)_ | Node.js standardı | Yukarı akış çağrıları için HTTPS proxy'si. | | `ALL_PROXY` | _(ayarlanmamış)_ | Node.js standardı | Evrensel proxy (`socks5://` desteğiyle). | | `OMNIROUTE_PROXY_ECHO_URL` | _(ayarlanmamış)_ | `src/lib/proxyEchoTarget.ts` | Proxy çıkış sondaları tarafından kullanılan yankı IP hedefini tek bir URL'ye sabitler. Ayarlanmadığında sonda önce `api64.ipify.org`, ardından `api4.ipify.org` adresini dener; böylece yalnızca IPv4 destekleyen tüneller çalışmıyor olarak bildirilmez (#9694). | | `NO_PROXY` | _(ayarlanmamış)_ | Node.js standardı | Proxy'yi atlamak için virgülle ayrılmış ana makine adları/IP'ler. | | `OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS` | `32` | `open-sse/utils/proxyDispatcher.ts` | Önbelleğe alınmış HTTP/SOCKS proxy dağıtıcısı başına maksimum eşzamanlı soket sayısı. Codex `/v1/responses` gibi uzun ömürlü SSE akışları, birden fazla istek aynı hesap düzeyindeki proxy'yi paylaştığında birden fazla bağlantıya ihtiyaç duyar. `256` üzerindeki değerler sınırlandırılır. | | `SOCKS_HANDSHAKE_TIMEOUT_MS` | `10000` | `open-sse/utils/socksConnectorWithFamily.ts` | Milisaniye cinsinden SOCKS5 el sıkışması (bağlantı) zaman aşımı. Tek bir konut tipi ağ geçidi ana makinesi yüksek eşzamanlılığa maruz kaldığında (ör. aynı anda 100 istek) bu değeri artırın — proxy erişilebilir olsa bile doygun bir havuzda gerçek el sıkışması 10 saniyeyi aşabilir; aksi takdirde bu durum hatalı bir `[Proxy Fast-Fail] Proxy unreachable` mesajı olarak görünür. Üst sınır `120000` değeridir. | | `PROXY_FAIL_OPEN` | `false` | `src/sse/handlers/chatHelpers.ts` | `false` olduğunda (varsayılan), atanmış proxy'si çözümlenemeyen bir istek doğrudan bağlantıya geri dönmek yerine **reddedilir (fail-closed)** — gerçek IP sızıntılarını önler. Eski DIRECT geri dönüşünü yeniden etkinleştirmek için `true` olarak ayarlayın. | | `ENABLE_TLS_FINGERPRINT` | `false` | `open-sse/executors` | wreq-js kullanarak TLS parmak izini taklit eder (Chrome 124'ü taklit eder). JA3/JA4 engellemesine karşı koyar. | | `TLS_FINGERPRINT_PROVIDERS` | _(ayarlanmamış)_ | `open-sse/utils/proxyFetch.ts` | Yeni proxy üzerinden TLS yönlendirmesi (`open-sse/utils/proxyFetch.ts`) için virgülle ayrılmış sağlayıcı izin listesi. Ayarlanmadığında doğrudan TLS eski davranışını korur; yalnızca bu sağlayıcılar Chrome-124 parmak izi köprüsü üzerinden yönlendirilir. Groq (`api.groq.com`), izin listesi ayarlanmamış olsa bile hariç tutulur; çünkü Chrome JA3, Cloudflare 1010 hatasını tetiklerken yerel undici API'ye ulaşabilir. | | `OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS` | `false` | `open-sse/services/claudeTurnstileSolver.ts` | Claude Turnstile Playwright tarayıcı bağlamının HTTPS sertifika hatalarını yok saymasına izin verir. | ### Senaryolar | Senaryo | Yapılandırma | | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **SSH tüneli üzerinden SOCKS5** | `ALL_PROXY=socks5://127.0.0.1:7890`, `ENABLE_SOCKS5_PROXY=true` | | **Kurumsal HTTP proxy'si** | `HTTP_PROXY=http://proxy.corp.com:3128`, `HTTPS_PROXY=http://proxy.corp.com:3128`, `NO_PROXY=localhost,internal.corp.com` | | **Parmak izi önleme** | `ENABLE_TLS_FINGERPRINT=true` — `wreq-js` gerektirir (dahildir) | | **Çıkış denetimli / doğrudan erişim yok** | `PROXY_FAIL_OPEN=false` olarak bırakın (varsayılan). Proxy kullanılamadığında istekler doğrudan bağlantı üzerinden sızmak yerine kesin olarak başarısız olur. | | **Eski / geliştirme — doğrudan geri dönüşe izin ver** | `PROXY_FAIL_OPEN=true`. Güçlendirme öncesi davranışı geri getirir: proxy çözümlemesi başarısız olduğunda doğrudan bağlantı kullanılır. | > **Not (NVIDIA doğrulama atlaması — #3226):** NVIDIA'nın API anahtarı doğrulama uç noktası, > global proxy/TLS yamalı fetch üzerinden yönlendirildiğinde takılır (undici dağıtıcısı → 504). > `src/lib/providers/validation.ts::directHttpsRequest()`, `safeOutboundFetch({ bypassProxyPatch: true })` > kullanarak yalnızca bu doğrulama çağrısında proxy yamasını kasıtlı olarak atlar. > Bu, belgelenmiş ve kapsamı sınırlandırılmış bir istisnadır — sohbet/kullanım çıkışını **etkilemez**. > Atlamanın kapsamı `tests/unit/proxy-bypass-scope-guard-3226.test.ts` tarafından sabitlenir. --- ## 9. CLI Aracı Entegrasyonu OmniRoute'un CLI yardımcı süreçlerini (Claude Code, Codex vb.) nasıl keşfedip başlattığını kontrol eder. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | --------------------------------- | -------------------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLI_MODE` | `auto` | `src/shared/services/cliRuntime.ts` | `auto` = sistem PATH'inde ara; `manual` = yalnızca açıkça belirtilen yolları kullan. | | `CLI_EXTRA_PATHS` | _(ayarlanmamış)_ | `src/shared/services/cliRuntime.ts` | CLI ikili dosyalarının bulunması için ek PATH girdileri (iki nokta üst üste ile ayrılmış). | | `CLI_CONFIG_HOME` | _(ayarlanmamış)_ | `src/shared/services/cliRuntime.ts` | CLI yapılandırmalarını (`~/.claude`, `~/.codex`) okumak için kullanılan ana dizini geçersiz kılar. Yol mutlak olmalı ve işlem ana dizininin içinde bulunmalıdır — **veya** bir konteynerde bağlama ile monte edilmiş bir yol olmalıdır (`/host-home` bu şekilde çalışır). Diğer tüm durumlarda ana dizine geri dönülür. | | `CLI_ALLOW_CONFIG_WRITES` | `true` | `src/shared/services/cliRuntime.ts` | OmniRoute'un CLI yapılandırma dosyalarına yazmasına (token yenileme, oturum verileri) izin verir. Her CLI yapılandırma yazma işleminin açık bir "yazma devre dışı" hatasıyla başarısız olması için `false` olarak ayarlayın. | | `CLI_CLAUDE_BIN` | `claude` | `src/shared/services/cliRuntime.ts` | Claude CLI ikili dosyasına özel yol. | | `CLI_CODEX_BIN` | `codex` | `src/shared/services/cliRuntime.ts` | Codex CLI ikili dosyasına özel yol. | | `CLI_DROID_BIN` | `droid` | `src/shared/services/cliRuntime.ts` | Droid CLI ikili dosyasına özel yol. | | `CLI_OPENCLAW_BIN` | `openclaw` | `src/shared/services/cliRuntime.ts` | OpenClaw CLI ikili dosyasına özel yol. | | `CLI_CURSOR_BIN` | `agent`, ardından `cursor` | `src/shared/services/cliRuntime.ts` | Cursor agent ikili dosyasına özel yol. Belirtilmediğinde algılama önce `agent` komutunu dener, ardından `cursor` komutuna geri döner. | | `CLI_CLINE_BIN` | `cline` | `src/shared/services/cliRuntime.ts` | Cline CLI ikili dosyasına özel yol. | | `CLI_5DIVE_BIN` | `5dive` | `src/shared/services/cliRuntime.ts` | 5dive CLI ikili dosyasına özel yol. | | `CLI_5DIVE_STATE_DIR` | `/var/lib/5dive` | `src/shared/services/cliRuntime.ts` | 5dive'ın sistem durum dizini (root'a ait kimlik doğrulama profilleri); 5dive'ın kendi STATE_DIR varsayılanını yansıtır. | | `CLI_CONTINUE_BIN` | `cn` | `src/shared/services/cliRuntime.ts` | Continue CLI ikili dosyasına özel yol. | | `CLI_QODER_BIN` | `qodercli` | `src/shared/services/cliRuntime.ts` | Qoder CLI ikili dosyasına özel yol. | | `CLI_QWEN_BIN` | `qwen` | `src/shared/services/cliRuntime.ts` | Qwen Code CLI ikili dosyasına özel yol. | | `CLI_AIDER_BIN` | `aider` | `src/shared/services/cliRuntime.ts` | Aider CLI ikili dosyasına özel yol. | | `CLI_GOOSE_BIN` | `goose` | `src/shared/services/cliRuntime.ts` | Goose CLI ikili dosyasına özel yol. | | `CLI_GEMINI_BIN` | `gemini` | `src/shared/services/cliRuntime.ts` | Google Gemini CLI ikili dosyasına özel yol — yalnızca sunucu tarafı algılama/sağlık kontrolleri için kullanılır; `omniroute run gemini`, `gemini` ikili dosyasını sistem PATH'inden çözümler. | | `CLI_KILO_BIN` | `kilocode` | `src/shared/services/cliRuntime.ts` | Kilo Code CLI ikili dosyasına özel yol. | | `CLI_OPENCODE_BIN` | `opencode` | `src/shared/services/cliRuntime.ts` | OpenCode CLI ikili dosyasına özel yol. | | `CLI_HERMES_BIN` | `hermes` | `src/shared/services/cliRuntime.ts` | Hermes ikili dosyası için özel yol. Her iki katalog girdisi (`hermes` ve `hermes-agent`) tarafından paylaşılır. | | `CLI_FORGE_BIN` | `forge` | `src/shared/services/cliRuntime.ts` | ForgeCode CLI ikili dosyası için özel yol. | | `CLI_JCODE_BIN` | `jcode` | `src/shared/services/cliRuntime.ts` | jcode CLI ikili dosyası için özel yol. | | `CLI_DEEPSEEK_TUI_BIN` | `deepseek-tui` | `src/shared/services/cliRuntime.ts` | DeepSeek TUI ikili dosyası için özel yol. | | `CLI_CODEWHALE_BIN` | `codewhale` | `src/shared/services/cliRuntime.ts` | CodeWhale CLI ikili dosyası için özel yol. | | `CLI_SMELT_BIN` | `smelt` | `src/shared/services/cliRuntime.ts` | Smelt CLI ikili dosyası için özel yol. | | `CLI_PI_BIN` | `pi` | `src/shared/services/cliRuntime.ts` | Pi (pi-coding-agent) ikili dosyası için özel yol. | | `CLI_CRUSH_BIN` | `crush` | `src/shared/services/cliRuntime.ts` | Crush CLI ikili dosyası için özel yol. | | `CLI_OMP_BIN` | `omp` | `src/shared/services/cliRuntime.ts` | Oh My Pi (`omp`) ajan ikili dosyası için özel yol. | | `CLI_LETTA_BIN` | `letta` | `src/shared/services/cliRuntime.ts` | Letta CLI ikili dosyası için özel yol. | | `CLI_PRIME_AGENT_BIN` | `prime-agent` | `src/shared/services/cliRuntime.ts` | Prime Agent (Prime Intellect) ikili dosyası için özel yol. | | `CLI_WINDSURF_BIN` | _(yok)_ | `src/shared/services/cliRuntime.ts` | Windsurf ikili dosyası için özel yol. Windsurf **varsayılan bir komut olmadan** gelir — bu ayarlanana kadar ikili dosya algılama devre dışı kalır. | | `CLI_DEVIN_BIN` | `devin` | `open-sse/executors/devin-cli.ts` | Devin CLI ikili dosyası (v3.8.0) için özel yol. Windsurf/Devin yürütücüsü tarafından kullanılır. | | `DEVIN_DESKTOP_VERSION` | `3.6.27` | `open-sse/executors/devin-desktop.ts` | Devin Desktop `ide_version` değeri. Geçersiz kılmalar `x.y.z` biçimini kullanmalıdır; geçersiz değerlerde doğrulanmış varsayılana geri dönülür. | | `DEVIN_DESKTOP_EXTENSION_VERSION` | `1.48.2` | `open-sse/executors/devin-desktop.ts` | Desktop `ide_version` değerinden farklı olan paketlenmiş Codeium/language-server `extension_version` değeri. Geçersiz kılmalar `x.y.z` biçimini kullanmalıdır; geçersiz değerlerde paketlenmiş varsayılan kullanılır. | | `CLI_DEVIN_AGENTIC_BIN` | `devin` | `open-sse/executors/devin-cli-agentic.ts` | Yalnızca agentic köprüsüne yönelik Devin CLI geçersiz kılması. Yürütücü yalnızca yerel ACP stdio üst akışını kabul eder. | | `DEVIN_AGENTIC_HOME` | _(gerekli)_ | `open-sse/executors/devin-cli-agentic.ts` | Agentic Devin alt süreci için mutlak, yalıtılmış ana dizin; kabul edilen köprü yolları `/home/bridge` ve göreve özel `.sandbox` yollarıdır (Windows'ta `C:\...\.sandbox\...`). | | `DEVIN_AGENTIC_ACP_TIMEOUT_MS` | `120000` | `open-sse/executors/devin-cli-agentic.ts` | Köprü alt süreci sonlandırıp açık bir zaman aşımı döndürmeden önce tek bir Devin ACP turunun azami süresi. | | `DEVIN_BRIDGE_MODEL` | `devin-cli-agentic/swe-1-7` | `docker/devin-bridge/compose.yml` | Yalıtılmış köprü için ana Claude Code model takma adı. Canlı test düzeneği, örneği mevcut Devin hesabı tarafından döndürülen bir modelle değiştirir. | | `DEVIN_BRIDGE_SONNET_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code, varsayılan Sonnet modelini istediğinde kullanılan yalıtılmış köprü takma adı. | | `DEVIN_BRIDGE_OPUS_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code, varsayılan Opus modelini istediğinde kullanılan yalıtılmış köprü takma adı. | | `DEVIN_BRIDGE_HAIKU_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code, varsayılan Haiku modelini istediğinde kullanılan yalıtılmış köprü takma adı. | | `DEVIN_BRIDGE_SUBAGENT_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code alt ajanları için kullanılan yalıtılmış köprü takma adı. | | `DEVIN_SEAT_API_URL` | `https://server.codeium.com` | `open-sse/services/usage/devinCli.ts` | Devin CLI kotası (`GetUserStatus`) tarafından kullanılan Codeium lisans yönetimi API'si için isteğe bağlı geçersiz kılma değeri. | | `AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Yerel `auggie` sağlayıcısı tarafından kullanılan Augment (Auggie) CLI ikili dosyası için mutlak yol geçersiz kılma değeri. Önce `CLI_AUGGIE_BIN` değerine, ardından PATH aramasına başvurur. | | `CLI_AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Augment (Auggie) CLI ikili dosyası yolu için alternatif geçersiz kılma değeri (`AUGGIE_BIN` sonrasında kontrol edilir). | | `ZCODE_BIN` | `zcode` | `open-sse/executors/zcode.ts` | Yerel `zcode` sağlayıcısının stdio istemcisi için kullanılan ikili dosya. PATH üzerindeki `zcode` değerine geri döner. | | `ZCODE_ARGS` | — | `open-sse/executors/zcode.ts` | `cliTools` aracılığıyla başlatıldığında `zcode` ikili dosyasına iletilen ek bağımsız değişkenlerden oluşan JSON dizisi (≤16 dize). | | `ZCODE_CWD` | `process.cwd()` | `open-sse/executors/zcode.ts` | ZCode uygulama sunucusu alt süreci için çalışma dizini. | | `ZCODE_PROVIDER_ID` | `builtin:zai-coding-plan` | `open-sse/executors/zcode.ts` | Uygulama sunucusuna gönderilen sağlayıcı kimliği için geçersiz kılma değeri. | | `ZCODE_SERVER_RUNTIME_ROOT` | `~/.zcode/server` | `open-sse/executors/zcode.ts` | ZCode uygulama sunucusu çalışma zamanının kök dizini (pakete dahil `node` ve `zcode-server.cjs` dosyalarının bulunduğu yer). | | `ZCODE_SERVER_NODE` | `/node` | `open-sse/executors/zcode.ts` | ZCode uygulama sunucusunu barındırmak için kullanılan Node yürütülebilir dosyası. | | `ZCODE_SERVER_ENTRY` | `/zcode-server.cjs` | `open-sse/executors/zcode.ts` | ZCode sunucusunu barındırmak için kullanılan uygulama sunucusu giriş betiği. | | `ZCODE_STARTUP_TIMEOUT_MS` | `10000` | `open-sse/executors/zcode.ts` | Bir ZCode uygulama sunucusu başlatma işleminin başarısız sayılmasından önceki başlatma zaman aşımı (ms). | | `ZCODE_RPC_TIMEOUT_MS` | `30000` | `open-sse/executors/zcode.ts` | Bir ZCode uygulama sunucusu çağrısı için istek başına RPC zaman aşımı (ms). | | `ZCODE_TURN_TIMEOUT_MS` | `120000` | `open-sse/executors/zcode.ts` | Gözetmenin zaman aşımına uğratmasından önce tek bir ZCode turunun azami süresi (ms). | | `ZCODE_POLL_INTERVAL_MS` | `250` | `open-sse/executors/zcode.ts` | ZCode turunun tamamlanması için yoklama aralığı (ms). | | `HERMES_HOME` | `~/.hermes` | `src/lib/cli-helper/config-generator/hermesHome.ts` | OmniRoute'un Hermes CLI yapılandırmasını okuduğu/yazdığı Hermes Agent ana dizini. Hermes PowerShell yükleyicisinin Windows'ta ayarladığı ortam değişkeniyle eşleşir (`%LOCALAPPDATA%\hermes`). | ### CLI Profili Otomatik Eşitleme Bu özellik bayrakları isteğe bağlıdır ve varsayılan olarak kapalıdır. Ayrıca CLI Code panosundan da açılıp kapatılabilirler. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------- | ---------- | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_AUTO_SYNC_CODEX_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Sağlayıcı modeli eşitlemesinden sonra, `~/.codex/*.config.toml` profil dosyalarını güncel katalogdan otomatik olarak yeniden yazar. `CLI_ALLOW_CONFIG_WRITES` gerektirir; etkin/varsayılan Codex yapılandırmasını, kimlik doğrulamayı, Codex-lb ayarlarını veya sağlayıcı seçimini hiçbir zaman değiştirmez. | | `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Sağlayıcı modeli eşitlemesinden sonra, `~/.claude/profiles//settings.json` Claude Code profil dosyalarını güncel katalogdan otomatik olarak yeniden yazar. `CLI_ALLOW_CONFIG_WRITES` gerektirir; etkin/varsayılan Claude yapılandırmasını, kimlik doğrulamayı veya sağlayıcı seçimini hiçbir zaman değiştirmez. | ### Docker Örneği ```bash # Ana makine ikili dosyalarını konteynere bağlayın ve OmniRoute'a nerede olduklarını belirtin: 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` yalnızca yol gerçekten ana sistemden bind mount ile bağlandığında etkili olur — bunu `~/.codex:/host-home/.codex:rw` gibi bağlamalarla birlikte kullanın (`docker-compose.yml` içindeki `host` profiline bakın). Konteyner kullanıcısının ana dizininde bulunmayan ve bind mount olmayan bir yol yok sayılır; çünkü buraya yazılanlar konteyner yeniden oluşturulduğunda silinir. İmaj `USER node` olarak çalışır; dolayısıyla bağlanmamış bir `/root`, geçerli bir geçersiz kılma yolu **değildir**. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------------------- | ------------ | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CONTAINER` | _(otomatik)_ | `src/shared/utils/containerEnv.ts` | Konteyner algılamasını zorla açar (`1`/`true`) veya kapatır (`0`/`false`). Yalnızca otomatik algılamanın tespit edemediği çalışma ortamlarında gereklidir. | | `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE` | `false` | `src/shared/services/cliRuntime.ts` | CLI aracı yapılandırmasının yine de bağlanmamış bir konteyner yoluna yazılmasına izin verir. CLI eşdeğeri `--allow-container-write` seçeneğidir. | ### CLI İkili Dosyası (`omniroute`) yardımcıları Bu değişkenler, yukarıdaki sidecar algılamasını değil, `omniroute` CLI ikili dosyasının kendi davranışını ayarlar. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------- | --------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_LANG` | _(sistem)_ | `bin/cli/i18n.mjs` | CLI çıktı dilini zorunlu kılar. BCP-47 yerel ayarı (ör. `en`, `pt-BR`). Sistem yerel ayarı ortam değişkenlerini (LC_ALL, LC_MESSAGES) geçersiz kılar. | | `OMNIROUTE_SHOW_LOG` | _(ayarlanmamış)_ | `bin/cli/runtime/processSupervisor.mjs` | Denetimli modda sunucunun stdout/stderr çıktısını terminale iletmek için `1` olarak ayarlayın. `omniroute serve` üzerindeki `--log` seçeneğine eşdeğerdir. | | `OMNIROUTE_CLI_TOKEN` | _(ayarlanmamış)_ | `bin/cli/api.mjs` | `x-omniroute-cli-token` üstbilgisi olarak eklenen makine kimlik doğrulama belirteci. 8.12 görevinde otomatik olarak oluşturulur. | | `GEMINI_CLI_HOME` | _(ayarlanmamış)_ | `bin/cli/commands/setup-gemini.mjs` | Kalıcı Gemini ana dizin kökü; tek seferlik çalıştırma geçici, yalıtılmış bir ana dizin kullanır. | | `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Sinyal gönderilmiş bir CLI alt sürecini zorla sonlandırmadan önce beklenecek, milisaniye cinsinden tolerans süresi. | | `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(ayarlanmamış)_ | `bin/omniroute.mjs` | Varsayılan kullanıcının veri dizini ortam dosyasını atlamak için açıkça belirtilmiş bir DATA_DIR ile birlikte `1` olarak ayarlayın. | | `OMNIROUTE_SYNC_TOKEN` | _(ayarlanmamış)_ | `bin/cli/commands/sync.mjs` | `omniroute sync bundle` için eşitleme belirteci (`GET /api/sync/bundle` yalnızca bir eşitleme belirtecini kabul eder, API anahtarını değil). `--token` seçeneğine eşdeğerdir. | | `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI → sunucu istekleri için deneme başına HTTP zaman aşımı (ms). | | `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | CLI'ın zaman aşımı uyarısı yazdırmadan önce sunucu sağlık uç noktasını bekleyeceği azami süre (ms). Yavaş soğuk başlatmalar için kullanışlıdır (ör. Windows). `--ready-timeout` aracılığıyla da ayarlanabilir. | | `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI komutları sırasında yeniden deneme/geri çekilme tanılamalarını stderr'e yazdırmak için `1` olarak ayarlayın. | | `OMNIROUTE_PLUGIN_PATH` | _(ayarlanmamış)_ | `bin/cli/plugins.mjs` | CLI eklenti keşfi için özel dizin (`omniroute-cmd-*` paketleri). Ayarlanmadığında varsayılan olarak `~/.omniroute/plugins/` kullanılır. Yalnızca CLI içindir — `OMNIROUTE_PLUGINS_DIR` (bölüm 2) tarafından yönlendirilen sunucu tarafı eklenti tarayıcısına hiçbir zaman ulaşmaz. | | `OMNIROUTE_NO_UPDATE_NOTIFIER` | _(ayarlanmamış)_ | `bin/omniroute.mjs` | Boş olmayan herhangi bir değere ayarlandığında, süreç çıkışındaki CLI güncelleme bildirimini engeller. Bildirim ayrıca CI, sessiz mod ve metin dışı çıktı modlarında bağımsız olarak devre dışı kalır. | | `OMNIROUTE_DOCTOR_LIVENESS_URL` | _(türetilmiş)_ | `bin/cli/commands/doctor.mjs` | `omniroute doctor` tarafından yoklanan canlılık URL'si. Programatik bir `livenessUrl` seçeneği önceliklidir; aksi takdirde bu değer aynen kullanılır. Ayarlanmadığında CLI, yerel kontrol panelinin `/api/health/degradation` uç noktasını türetir. | | `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | CLI sağlayıcı komutları tarafından kullanılan sağlayıcı kataloğu yolu. Programatik bir `catalogPath` seçeneği önceliklidir. Mutlak yollar olduğu gibi kullanılır; göreli yollar proje kökünden çözümlenir. Ayarlanmadığında CLI, geriye dönük uyumluluk için eski `providers.ts` dosyasını kullanarak sağlayıcı sabitleri dizinini kullanır. | | `OMNIROUTE_PROVIDER_TEST_MODEL` | _(sağlayıcı varsayılanı)_ | `bin/cli/provider-test.mjs` | CLI sağlayıcı bağlantı testleri için genel yedek model. Öncelik sırası: yapılandırılmış bağlantı modeli, sağlayıcıya özel model geçersiz kılma değeri, bu değer ve ardından sağlayıcının yerleşik test modeli. | --- ## 10. Dahili Agent ve MCP Entegrasyonları | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_BASE_URL` | otomatik algılama | `open-sse/mcp-server/server.ts` | MCP/A2A araçlarının OmniRoute'a erişmesi için açık URL. Localhost otomatik algılamasını geçersiz kılar. | | `OMNIROUTE_API_KEY` | _(ayarlanmamış)_ | MCP/A2A modülleri | Dahili MCP aracı ve A2A beceri çağrıları için API anahtarı. | | `OMNIROUTE_API_KEY_ID` | _(ayarlanmamış)_ | `open-sse/mcp-server/audit.ts` | MCP denetim günlüğü ilişkilendirmesi için anahtar kimliği. | | `ROUTER_API_KEY` | _(ayarlanmamış)_ | Eski | `OMNIROUTE_API_KEY` için eski takma ad. | | `OMNIROUTE_A2A_HISTORY_RETENTION_DAYS` | `30` | `src/lib/a2a/taskManager.ts` | Günlük temizleme işlemi bir satırı silmeden önce A2A görev geçmişinin yerel veritabanında tutulacağı gün sayısı. Ayarlanmamış, sayısal olmayan veya `<= 0` bir değer, `30` değerine geri döner. | | `OMNIROUTE_A2A_MEMORY_HITS` | `1` | `src/lib/a2a/taskExecution.ts` | A2A bellek eşleşmeleri gözlemlenebilirlik özelliği için devre dışı bırakma anahtarı. Bir görevin bellek geri çağırma aramasını tamamen atlamak için `0` olarak ayarlayın; diğer tüm değerler (ayarlanmamış olması dâhil) özelliği etkin tutar. | | `OMNIROUTE_ISSUE_AGENT_ENABLED` | `false` | `src/app/api/issue-agent/runs/route.ts` | Çevrimdışı/yerel Issue Agent kayıtlı triyaj uç noktasını etkinleştirir. Yerel kayıtlı triyaj iş akışları açıkça çalıştırılmadığı sürece devre dışı bırakın. | | `OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS` | _(ayarlanmamış)_ | `src/lib/issueAgent/execution.ts` | Tek bir Issue Agent kayıtlı triyaj çalıştırması için zaman aşımı (ms). Dahili bir üst sınırla kısıtlanır; ayarlanmamış veya geçersiz olduğunda yerleşik varsayılan değere geri döner. | | `OMNIROUTE_CONTEXT` | _(etkin bağlam)_ | `bin/cli/program.mjs`, `bin/cli/api.mjs` | `omniroute` komutları için CLI uzak mod bağlamı/profili; yerel bağlam deposundaki etkin bağlamı geçersiz kılar. `--context ` ile eşdeğerdir. | | `OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED` | `0` | `bin/cli/contexts.mjs` | CLI bağlam kimlik bilgileri için isteğe bağlı `keytar` işletim sistemi anahtar zinciri arka ucunu devre dışı bırakır. Etkinleştirildiğinde kimlik bilgileri `config.json` dosyasında `0600` modunda kalır ve CLI bir defaya mahsus geri dönüş uyarısı verir; bilinçli olarak başsız/konteyner ortamlarında kullanılmak üzere tasarlanmıştır. | | `OMNIROUTE_MCP_ENFORCE_SCOPES` | `false` | `open-sse/mcp-server/server.ts` | MCP araç çağrılarında kapsam tabanlı erişim denetimini uygular. | | `OMNIROUTE_MCP_SCOPES` | _(tümü)_ | `open-sse/mcp-server/server.ts` | Virgülle ayrılmış kapsamlar: `admin`, `combos`, `health`, `models`, `routing`, `budget`, `metrics`, `pricing`, `memory`, `skills`. | | `OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS` | `false` | `open-sse/mcp-server/descriptionCompressor.ts` | Manifesti serileştirmeden önce MCP araç açıklamalarını sıkıştırır. Etkinleştirme değerleri: `1`, `true`, `on`. | | `OMNIROUTE_MCP_DESCRIPTION_COMPRESSION` | `rtk` | `open-sse/mcp-server/descriptionCompressor.ts` | Sıkıştırma algoritması/profili. Devre dışı bırakma değerleri: `0`, `false`, `off`. | | `OMNIROUTE_MCP_FETCH_TIMEOUT_MS` | `10000` | `open-sse/mcp-server/fetchTimeout.ts` | MCP sunucusunun dahili yönetim okumaları (sağlık, dayanıklılık, kombinasyonlar, kota, kullanım) için iptal süresi bütçesi (ms). | | `OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS` | `60000` | `open-sse/mcp-server/fetchTimeout.ts` | Bir sağlayıcıyı bekleyen MCP geçişleri (`route_request`, `web_search`, `web_fetch`) için iptal zaman bütçesi (ms). | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | `src/lib/localCorpus/configured.ts` | Bellekte önbelleğe alınan maksimum yerel derlem dizini örneği sayısı (LRU, dizine eklenen her kök dizin için bir tane). En az `1` olacak şekilde sınırlandırılır. | | `MODEL_SYNC_INTERVAL_HOURS` | `6` | `src/shared/services/modelSyncScheduler.ts` | Model kataloğu eşitleme aralığı, saat cinsinden. | | `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | `src/lib/usage/providerLimits.ts` | Sağlayıcı hız sınırı ve kota yoklama aralığı. | | `PROVIDER_LIMITS_SYNC_SPACING_MS` | `1500` | `src/lib/usage/providerLimits.ts` | Toplu eşitlemede ardışık OAuth kota getirmeleri arasındaki boşluk (ms); üst hizmette ani yük oluşmasını önlemek için OAuth bağlantıları teker teker getirilir. `0`, bu davranışı devre dışı bırakır (eşzamanlı). | | `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS` | `250` | `open-sse/services/quotaFetchThrottle.ts` | İstek başına ön kontrol/izleme yolunda ardışık üst hizmet kota getirmeleri arasındaki minimum aralık (ms); aynı IP üzerindeki çok sayıda hesabın üst hizmette ani yük oluşturmaması için eşzamanlı ağ çağrılarını aralıklı hâle getirir. Codex (`/wham/usage`), DeepSeek, Bailian (her iki getirme noktası), OpenCode ve Crof kota getiricilerine bağlanmıştır (#6009, #6911). Genel `usage.ts::getUsageForProvider` dağıtım yolu (github/glm/minimax/nanogpt/xai/vb.) henüz kapsanmamaktadır — ayrı olarak takip edilmektedir. Önbellek isabetleri etkilenmez. `0` devre dışı bırakır; `0..5000` aralığıyla sınırlandırılır. | | `PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS` | `5000` | `src/lib/usage/providerLimits.ts` | Gerçek bir kullanım olayından sonra sağlayıcı sınırlarını yenilemeden önceki gecikme (ms); üst hizmet kota API'sine tüketimi kaydetmesi için zaman tanır. | | `OMNIROUTE_LOGIN_BROWSER_PATH` | otomatik algılama | `open-sse/services/adobeFireflyBrowserLogin.ts` | Etkileşimli Adobe Firefly oturum açma ve ekran dışı yenileme için kullanılan sistem Chrome veya Edge yürütülebilir dosyasının mutlak yolu. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | etkin | `open-sse/services/adobeFireflySession.ts` | Hesap kapsamlı Chrome CDP oturumlarıyla IMS ve tarayıcı risk durumunu güncel tutar. Tarayıcı yenilemesini devre dışı bırakmak için `0` olarak ayarlayın. | | `ADOBE_FIREFLY_SESSION_DISK` | etkin | `open-sse/services/adobeFireflySession.ts` | Onarılan Adobe oturumlarını süreç yeniden başlatmaları arasında `DATA_DIR` altında kalıcı olarak saklar. Oturumları yalnızca bellekte tutmak için `0` olarak ayarlayın. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Adobe Firefly oluşturma gönderimleri arasındaki milisaniye cinsinden minimum aralık; `0`, aralığı devre dışı bırakır. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Her üç başarılı Adobe gönderiminden sonraki milisaniye cinsinden ek bekleme süresi. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyClient.ts` | Geçici Adobe 408 yanıtlarından sonraki milisaniye cinsinden temel geri çekilme süresi; en fazla beş denemede gönderim aralığıyla birleştirilir. | | `OMNIROUTE_DISABLE_BACKGROUND_SERVICES` | `false` | `src/instrumentation-node.ts` | Tüm arka plan hizmetlerini (eşitleme, fiyatlandırma, model yenileme) devre dışı bırakır. CI/test için kullanışlıdır. | | `OMNIROUTE_HEADLESS` | _(ayarlanmamış)_ | `src/lib/system/headless.ts` | Yalnızca proxy motoruyla başlatma: isteğe bağlı alt sistemleri atlar, `/dashboard` → 404. `omniroute serve --headless` ile aynıdır. Bkz. [HEADLESS.md](../guides/HEADLESS.md). | | `OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS` | _(ayarlanmamış)_ | `src/lib/config/runtimeSettings.ts` | Otomatik test algılandığında arka plan görevlerini zorla etkinleştirir. Test sezgisini geçersiz kılmak için `1` olarak ayarlayın. | | `OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS` | `600000` | `src/lib/jobs/budgetResetJob.ts` | Bütçe sıfırlama kontrol sıklığı (ms). Alt sınır `10000`. | | `OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS` | `60000` | `src/lib/quota/connectionRecovery.ts` | Proaktif bağlantı bekleme süresi kurtarma sıklığı (ms): geçici `rate_limited_until` süresi dolmuş bağlantıları isteklerin kritik yolunun dışında yeniden doğrular. Alt sınır `5000`. | | `OMNIROUTE_DISABLE_CONNECTION_RECOVERY` | `false` | `src/lib/quota/connectionRecovery.ts` | Proaktif bağlantı bekleme süresi kurtarma zamanlayıcısını devre dışı bırakır (`getProviderCredentials` içindeki tembel kurtarma yine uygulanır). | | `OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS` | `1800000` | `src/lib/jobs/reasoningCacheCleanupJob.ts` | Akıl yürütme önbelleği temizleme sıklığı (ms). Alt sınır `60000`. | | `OMNIROUTE_REASONING_MIN_BUDGET` | _ayarlanmamış_ (devre dışı) | `open-sse/services/reasoningTokenBuffer.ts` | Düşünme modeli çıktı bütçeleri için isteğe bağlı alt sınır: `[256, alt sınır)` aralığındaki çağıran `max_tokens` değeri, alt sınıra yükseltilir (model çıktı üst sınırıyla sınırlandırılır). Ayarlanmamış = istemci bütçeleri hiçbir zaman artırılmaz (#9507). | | `OMNIROUTE_REASONING_EFFORT_PROBE_PROVIDERS` | _ayarlanmamış_ (devre dışı) | `open-sse/services/learnedReasoningEffortCaps.ts` | İsteğe bağlı, virgülle ayrılmış sağlayıcı kimlikleri (veya `*`): bir `reasoning_effort` 400/422 hatası kabul edilen hiçbir kümeyi belirtmediğinde, bir alt kademeyle bir kez yeniden dener (`low` seviyesinin altına asla inmez) ve yalnızca sondalama yanıtlanırsa bu kademeyi öğrenir (#14895). | | `OMNIROUTE_LOG_EXPORT_CRON` | `0 * * * *` | `src/lib/jobs/logExportJob.ts` | Etkinleştirilmiş her günlük dışa aktarma hedefini boşaltan çağrı günlüğü dışa aktarma işi için cron ifadesi (UTC). | | `OMNIROUTE_CONFIG_HOT_RELOAD_MS` | `5000` | `src/lib/config/hotReload.ts` | Yapılandırmayı çalışırken yeniden yüklemek için yoklama aralığı (ms). `1000` değerinden düşük değerler reddedilir. | | `OMNIROUTE_DISABLE_REDIS_AUTH_CACHE` | _(etkin)_ | `src/lib/db/apiKeys.ts` | Redis destekli API anahtarı kimlik doğrulama önbelleğini atlamak için `1` olarak ayarlayın (DB okumalarını zorunlu kılar). | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | `0` | `open-sse/services/compression/engines/rtk/filterLoader.ts` | Kullanıcı tarafından yönetilen RTK proje filtre kurallarına katı imza kontrolleri olmadan güvenin. | | `OMNIROUTE_LITE_MAX_TOOL_LENGTH` | `2000` | `open-sse/services/compression/lite.ts` | `lite.maxToolLength` ayarlanmadığında Lite proaktif araç sonucu kırpması için karakter üst sınırı. Aralık 256–1000000. Pano ayarı bu ortam değişkenine göre önceliklidir. | | `OMNI_COMPRESSION_WORKERS` | `2` | `open-sse/services/compression/compressionWorkerPool.ts` | Eşzamanlı çalışan senkron RTK/Caveman işçilerinin azami sayısı; fazla işler FIFO sırasında bekler. | | `OMNI_COMPRESSION_WORKER_TIMEOUT_MS` | `120000` | `open-sse/services/compression/compressionWorkerPool.ts` | İş başına milisaniye cinsinden zaman aşımı. Zaman aşımına uğrayan işçiler sonlandırılır ve istek değişiklik yapılmadan açık şekilde başarısız olur. | | `OMNI_COMPRESSION_WORKER_IDLE_MS` | `60000` | `open-sse/services/compression/compressionWorkerPool.ts` | Kullanılmayan bir sıkıştırma işçisi sonlandırılmadan önce milisaniye cinsinden boşta kalma ömrü. | | `OMNI_COMPRESSION_WORKER_MAX_OLD_MB` | `1024` | `open-sse/services/compression/compressionWorkerPool.ts` | Tüm modlarda her sıkıştırma işçisi için MB cinsinden V8 eski nesil yığın üst sınırı (alt sınır `128`). Bu sınırı aşan bir iş, ağ geçidi yığınını büyütmek yerine açık şekilde başarısız olur (sıkıştırılmadan). | | `COMPRESSION_PIPELINE_BREAKER_ENABLED` | `false` | `open-sse/services/compression/pipelineEngineBreaker.ts` | T02 yığılmış işlem hattının motor başına devre kesicisi için ana anahtar. **İsteğe bağlı (varsayılan olarak kapalı)** — açık olduğunda, istekler arasında tekrar tekrar istisna fırlatan bir motor, bekleme süresi boyunca atlanır (açık şekilde başarısız olur); kapalı = bayt düzeyinde aynı eski davranış. | | `COMPRESSION_PIPELINE_BREAKER_THRESHOLD` | `3` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Bir motorun devre kesicisi açılmadan önce istekler arasında art arda gerçekleşmesi gereken hata sayısı. | | `COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS` | `30000` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Açılmış bir motorun yarı açık bir yoklamadan önce atlanmaya devam edeceği milisaniye cinsinden süre. | | `COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR` | `2` | `open-sse/services/compression/engines/ccr/index.ts` | T08/H8 CCR alma geri bildirimi artış faktörü: depolanan bir bloğun önceki her alınışı, etkin `minChars` değerini doğrusal olarak artırır (sık alınan içerik daha az sıkıştırılır; `>=3` alım = hiçbir zaman sıkıştırılmaz). `1`, artışı devre dışı bırakır (yalnızca eşikte ikili atlama). | | `COMPRESSION_CCR_DURABLE_STORE` | `true` | `open-sse/services/compression/engines/ccr/index.ts` | CCR kalıcı blok deposu (#9061). Bellek içi depoyu SQLite ile destekleyerek bir bloğun LRU tahliyesinden, TTL'den, yeniden başlatmadan veya alma işleminin başka bir örneğe ulaşmasından sonra da varlığını sürdürmesini sağlar. Blokları yalnızca bellekte tutmak için `false` olarak ayarlayın. 512KB üzerindeki bloklar ve bulut çalışma zamanları her durumda yalnızca bellekte kalır. | | `COMPRESSION_PREFIX_FREEZE_ENABLED` | `false` | `open-sse/services/compression/prefixFreeze.ts` | T08/H5 kullanıma dayalı önek dondurma ana anahtarı. **İsteğe bağlıdır (varsayılan olarak kapalıdır)** — açık olduğunda, eşik değeri kadar veya daha fazla (`>=`) gözlemlenen bir sistem istemi kararlı ve önbelleğe alınabilir bir önek olarak değerlendirilir ve statik önbellek sezgisinin gözden kaçırdığı sağlayıcılarda bile sıkıştırmadan korunur (dondurma yalnızca _korur_, asla değiştirmez). | | `COMPRESSION_PREFIX_FREEZE_THRESHOLD` | `3` | `open-sse/services/compression/prefixFreeze.ts` | Bir sistem isteminin dondurulmuş kararlı bir önek olarak değerlendirilmeden önceki gözlem sayısı. | | `OMNIROUTE_BOOTSTRAPPED` | `false` | `src/app/(dashboard)/dashboard/page.tsx` | İlk kurulumdan sonra önyükleme betiği tarafından `true` olarak ayarlanır. Kurulum sihirbazının görünürlüğünü denetler. | | `OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE` | `0` | `open-sse/executors/antigravity.ts` | Kaçış mekanizması: istek gövdesinin Antigravity proje alanını geçersiz kılmasına izin verir. | | `ANTIGRAVITY_CREDITS` | `off` | `open-sse/services/antigravityCredits.ts` | Google One AI kredi politikası: `off` hiçbir zaman kredi eklemez, `retry` uygun bir kota 429 hatasından sonra kredileri bir kez ekler ve `always` ilk istekte ekler. | | `ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS` | `0` | `open-sse/translator/request/openai-to-gemini.ts` | Üst kaynak gerçek imzaları reddettiğinde Antigravity istek dönüştürücüsünün katı CLI istek imzası doğrulamasını atlamasına izin verir (hata ayıklama/eski CLI modu). Sıfır olmayan bir değer atlamayı etkinleştirir. | | `AGY_TOKEN_FILE` | `~/.gemini/antigravity-cli/antigravity-oauth-token` | `src/app/api/providers/agy-auth/apply-local/route.ts` | Otomatik algılanan yerel oturum açma içe aktarımı için Antigravity CLI (agy) belirteç dosyası yolunu geçersiz kılar. | ### OAuth CLI Köprüsü (Dahili) | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------- | ----------------- | ------------------------------- | -------------------------------------------------------- | | `OMNIROUTE_SERVER` | otomatik algılama | `src/lib/oauth/config/index.ts` | CLI↔OmniRoute kimlik doğrulama köprüsünün sunucu URL'si. | | `OMNIROUTE_TOKEN` | _(ayarlanmamış)_ | `src/lib/oauth/config/index.ts` | CLI köprüsünün kimlik doğrulama belirteci. | | `OMNIROUTE_USER_ID` | `cli` | `src/lib/oauth/config/index.ts` | CLI köprüsü oturumlarının kullanıcı kimliği. | | `SERVER_URL` | _(ayarlanmamış)_ | `src/lib/oauth/config/index.ts` | `OMNIROUTE_SERVER` için eski diğer ad. | | `CLI_TOKEN` | _(ayarlanmamış)_ | `src/lib/oauth/config/index.ts` | `OMNIROUTE_TOKEN` için eski diğer ad. | | `CLI_USER_ID` | _(ayarlanmamış)_ | `src/lib/oauth/config/index.ts` | `OMNIROUTE_USER_ID` için eski diğer ad. | --- ## 11. OAuth Sağlayıcı Kimlik Bilgileri **Yerel geliştirme** için yerleşik kimlik bilgileri. Uzak dağıtımlar için, her sağlayıcının geliştirici konsolunda kendinizinkini kaydedin. | Değişken | Sağlayıcı | Notlar | | :------------------------------------------ | :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLAUDE_OAUTH_CLIENT_ID` | Claude Code (Anthropic) | Genel istemci — gizli anahtar gerekmez. | | `CLAUDE_CODE_REDIRECT_URI` | Claude Code | Yönlendirme URI'sini geçersiz kıl. Varsayılan: `https://platform.claude.com/oauth/code/callback` | | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Genel istemci. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Eşleşen `_SECRET` gerektirir. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Genel istemci. | | `MUSE_CODE_OAUTH_CLIENT_ID` | Muse Code (Meta) | Genel Muse CLI cihaz akışı istemci kimliği için isteğe bağlı geçersiz kılma. Yerleşik genel istemciyi kullanmak için ayarlanmamış bırakın. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Eşleşen `_SECRET` gerektirir. | | `ANTIGRAVITY_OAUTH_CLIENT_SECRET` | Antigravity (Google) | — | | `GITHUB_OAUTH_CLIENT_ID` | GitHub Copilot | Genel istemci. | | `GHE_COPILOT_OAUTH_CLIENT_ID` | GHE Copilot | GitHub Enterprise Copilot'un OAuth istemci kimliği için isteğe bağlı geçersiz kılma. Ayarlanmadığında `GITHUB_OAUTH_CLIENT_ID`'nin genel varsayılanına döner. | | `COPILOT_INTEGRATION_ID` | GitHub Copilot | `Copilot-Integration-Id` ve `Editor-Plugin-Version` başlıklarında gönderilen GitHub Copilot istemci entegrasyon kimliği için isteğe bağlı geçersiz kılma. Varsayılan olarak `copilot-developer-cli` kullanılır. | | `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | Bağlantı başına kimlik bilgisi mevcut olmadığında `open-sse/executors/devin-cli.ts` tarafından kullanılan API anahtarı yedeklemesi. İsteğe bağlı. | | `CLI_DEVIN_BIN` | Devin CLI (v3.8) | Devin CLI ikili dosyasına (`devin`) özel yol. `open-sse/executors/devin-cli.ts` tarafından çözülür. | | `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | GitLab Duo için OAuth istemci kimliği. `https://gitlab.com/-/profile/applications` adresinde `NEXT_PUBLIC_BASE_URL>/callback` yönlendirme URI'si ve `api, read_user, openid, profile, email` kapsamlarıyla bir uygulama kaydedin. `GITLAB_OAUTH_CLIENT_ID`'ye döner. | | `GITLAB_DUO_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | GitLab Duo için OAuth istemci gizli anahtarı. İsteğe bağlı — PKCE akışı gizli anahtar gerektirmez. `GITLAB_OAUTH_CLIENT_SECRET`'a döner. | | `GITLAB_DUO_BASE_URL` | GitLab Duo (v3.8) | GitLab temel URL'sini geçersiz kıl (kendi kendine barındırılan GitLab). Varsayılan olarak `https://gitlab.com` kullanılır. `GITLAB_BASE_URL`'ye döner. | | `GITLAB_BASE_URL` | GitLab Duo (v3.8) | `GITLAB_DUO_BASE_URL` için eski yedek. `_DUO_` varyantı ayarlanmadığında kullanılır. | | `GITLAB_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | `src/lib/oauth/constants/oauth.ts` tarafından tüketilen `GITLAB_DUO_OAUTH_CLIENT_ID` için eski yedek. | | `GITLAB_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | `src/lib/oauth/constants/oauth.ts` tarafından tüketilen `GITLAB_DUO_OAUTH_CLIENT_SECRET` için eski yedek. | | `QODER_OAUTH_CLIENT_SECRET` | Qoder | — | | `QODER_OAUTH_AUTHORIZE_URL` | Qoder | Qoder OAuth'ı etkinleştirmek için ayarlanır. | | `QODER_OAUTH_TOKEN_URL` | Qoder | — | | `QODER_OAUTH_USERINFO_URL` | Qoder | — | | `QODER_OAUTH_CLIENT_ID` | Qoder | — | | `QODER_PERSONAL_ACCESS_TOKEN` | Qoder | Doğrudan API anahtarı yedeği (OAuth'ı atlar). | | `QODER_CLI_WORKSPACE` | Qoder | Qoder CLI için çalışma alanı kimliği. | | `OMNIROUTE_QODER_WORKSPACE` | Qoder | `QODER_CLI_WORKSPACE` için takma ad. | | `QODER_CLI_CONFIG_DIR` | Qoder | Qoder CLI yapılandırma dizinini geçersiz kılar (izole PAT oturumu, tarayıcı oturum açma çakışmasını önler). | | `BLACKBOX_WEB_VALIDATED_TOKEN` | Blackbox Web | `/api/chat` üzerine `validated` olarak gönderilecek ön uç `tk` belirteci. Blackbox belirteç eşleşmesini zorunlu kıldığında gereklidir; aksi takdirde OmniRoute rastgele bir UUID'ye geri döner. Bkz. sorun #2252. | | `VISION_BRIDGE_BASE_URL` | Vision Bridge guardrail | Anthropic dışı vision-bridge çağrıları için OpenAI uyumlu temel URL. Varsayılan olarak eski OpenAI URL ortamına veya api.openai.com'a ayarlanır. OmniRoute'un `/v1` kendi döngüsüne veya herhangi bir OpenAI uyumlu uç noktaya (Gemini OpenAI uyumlu, OpenRouter) işaret edin. Sorun #2232. URL OmniRoute'un kendi `/v1` olduğunda, açıklama alt isteği `x-omniroute-admission-bypass: internal` gönderir ve çözümlenmiş kendi döngü kimlik bilgisiyle (yerel modda `sk_omniroute` sentinel veya `OMNIROUTE_API_KEY` / `ROUTER_API_KEY` — #1350) kimlik doğrulaması yapar, böylece `REQUIRE_API_KEY=true` dağıtımları çalışır. | | `VISION_BRIDGE_API_KEY` | Vision Bridge guardrail | Yukarıdaki URL için API anahtarı. Anthropic dışı vision-bridge çağrıları için sağlayıcı başına OpenAI / Google ortam değişkenlerini geçersiz kılar. Anthropic modelleri özel Anthropic anahtar yollarını korur. Sorun #2232. | | `OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS` | Vision Bridge guardrail | "Kullanılabilir aday yok" yönlendirme sonucunun ne kadar süreyle önbelleğe alındığı, ms cinsinden (varsayılan `30000`). Geçersiz veya negatif değerler varsayılana geri döner; `0` negatif önbelleği devre dışı bırakır. Kaynak: `src/lib/guardrails/visionBridgeRouter.ts`. | > [!WARNING] > > 1. [Google Cloud Console → Kimlik Bilgileri](https://console.cloud.google.com/apis/credentials) adresine gidin > 2. Bir OAuth 2.0 İstemci Kimliği oluşturun (tür: "Web uygulaması") > 3. Sunucu URL'nizi Yetkili yönlendirme URI'si olarak ekleyin > 4. `.env` dosyasındaki kimlik bilgisi değerlerini değiştirin. --- ## 12. Sağlayıcı User-Agent Geçersiz Kılmaları Her bir üst sağlayıcıya gönderilen `User-Agent` üstbilgisini geçersiz kılın. Bu değer, yürütücü temel sınıfı tarafından çalışma zamanında dinamik olarak çözümlenir: ``` process.env[`${PROVIDER_ID}_USER_AGENT`] ``` > **Kaynak:** `open-sse/executors/base.ts` → `buildHeaders()` | Değişken | Varsayılan Değer | Ne Zaman Güncellenmeli | | -------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `CLAUDE_USER_AGENT` | `claude-cli/2.1.280 (external, cli)` | Anthropic yeni bir CLI sürümü yayımladığında | | `CLAUDE_DISABLE_TOOL_NAME_CLOAK` | `false` | `executors/base.ts` + `executors/cliproxyapi.ts` | Üçüncü taraf çalıştırma ortamı araç adlarını, Anthropic'e yönelik her iki yolda da (yerel OAuth ve CLIProxyAPI) Anthropic'e olduğu gibi iletmek için `1`/`true` olarak ayarlayın. Yürütücü varsayılan olarak Claude Code dışındaki araç adları için deterministik takma adlar kullanır (varsa standart Claude Code eşlemesi, aksi hâlde PascalCase) ve yanıtta bunları `_toolNameMap` aracılığıyla geri çevirir; böylece snake_case araçları kullanan çalıştırma ortamları, parmak izi alınmış üçüncü taraf istemciler olarak reddedilmez. Yalnızca hata ayıklama içindir. | | `CODEX_USER_AGENT` | `codex-cli/0.155.0 (Windows 10.0.26200; x64)` | OpenAI, Codex CLI'ı güncellediğinde | | `CODEX_CLIENT_VERSION` | `0.155.0` | Codex istemci sürümünü tam UA dizesinden bağımsız olarak geçersiz kılın | | `CLAUDE_CODE_CLIENT_VERSION` | `2.1.280` | İlan edilen Claude Code sürümünü `CLAUDE_USER_AGENT` değerinden bağımsız olarak geçersiz kılın. Anthropic bazı modelleri bu değere göre sınırlar (#12417). | | `CLAUDE_CODE_CLIENT_BUILD_REVISION` | `1e2` | OmniRoute'un Claude faturalandırma bloğunda `cc_version=` değerine eklediği 3 karakterli son eki geçersiz kılın. `CLAUDE_CODE_CLIENT_VERSION` ile birlikte yükseltin — yalnızca sürümü sabitlemek, hiçbir gerçek ikili dosyanın üretmediği bir `version.revision` çiftini ilan eder. | | `GITHUB_COPILOT_CLI_VERSION` | `1.0.91` | İlan edilen Copilot CLI sürümünü `GITHUB_USER_AGENT` değerinden bağımsız olarak geçersiz kılın | | `GITHUB_USER_AGENT` | `GitHubCopilotChat/0.54.0` | GitHub Copilot Chat güncellendiğinde | | `ANTIGRAVITY_USER_AGENT` | `antigravity/2.0.1 darwin/arm64` | Antigravity IDE güncellendiğinde | | `KIRO_USER_AGENT` | `AWS-SDK-JS/3.0.0 kiro-ide/1.0.0` | Kiro IDE güncellendiğinde | | `KIRO_OAUTH_CLIENT_ID` | `kiro-cli` | Kiro sosyal cihaz kodu `clientId` değerini (genel kimlik) geçersiz kılın | | `KIRO_VERIFY_FULL_CRC` | `false` | İsteğe bağlı: Kiro olay akışında kare başına tam ileti CRC doğrulamasını etkinleştirin (bozuk akışlarda hata ayıklamak için) | | `QODER_USER_AGENT` | `Qoder-Cli` | Qoder CLI güncellendiğinde | | `CURSOR_USER_AGENT` | `Cursor/3.3` | Cursor güncellendiğinde | > [!TIP] > `{PROVIDER_ID}_USER_AGENT` kalıbını kullanarak **herhangi bir** sağlayıcı için User-Agent geçersiz kılmaları ekleyebilirsiniz. Yürütücü, ortam değişkeninin adını dinamik olarak oluşturur. --- ## 13. CLI Parmak İzi Uyumluluğu Etkinleştirildiğinde OmniRoute, resmi CLI araçlarının tam imzasıyla eşleşmesi için HTTP başlıklarını ve JSON gövde alanlarını yeniden sıralar. Bu, proxy IP'nizi korurken hesabınızın işaretlenme riskini azaltır. **Kaynak:** `open-sse/config/cliFingerprints.ts`, `open-sse/executors/base.ts` ### Sağlayıcı Bazında | Değişken | Etkinleştirme | Etki | | ------------------------ | ------------- | ----------------------------------------- | | `CLI_COMPAT_CODEX` | `=1` | Codex CLI istek imzasını taklit eder | | `CLI_COMPAT_CLAUDE` | `=1` | Claude Code istek imzasını taklit eder | | `CLI_COMPAT_GITHUB` | `=1` | GitHub Copilot istek imzasını taklit eder | | `CLI_COMPAT_ANTIGRAVITY` | `=1` | Antigravity istek imzasını taklit eder | | `CLI_COMPAT_CURSOR` | `=1` | Cursor istek imzasını taklit eder | | `CLI_COMPAT_KIMI_CODING` | `=1` | Kimi Coding istek imzasını taklit eder | | `CLI_COMPAT_KILOCODE` | `=1` | Kilo Code istek imzasını taklit eder | | `CLI_COMPAT_CLINE` | `=1` | Cline istek imzasını taklit eder | ### Genel | Değişken | Etkinleştirme | Etki | | ---------------- | ------------- | -------------------------------------------------------------------------- | | `CLI_COMPAT_ALL` | `=1` | Parmak izi uyumluluğunu **tüm** sağlayıcılar için aynı anda etkinleştirir. | ### Kimi Coding CLI kimlik geçersiz kılmaları | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------- | ------------------------ | ---------------------------------------- | -------------------------------------------------------------------------------- | | `KIMI_CLI_VERSION` | `1.36.0` | `src/lib/oauth/providers/kimi-coding.ts` | OAuth/API çağrıları sırasında gönderilen Kimi CLI sürümünü geçersiz kılar. | | `KIMI_CODING_DEVICE_ID` | _(yakalanan varsayılan)_ | `src/lib/oauth/providers/kimi-coding.ts` | İstemci başlıklarında kullanılan yakalanmış Kimi cihaz kimliğini geçersiz kılar. | > [!NOTE] > Bu özellik, User-Agent geçersiz kılmalarıyla (§12) birlikte çalışır. Parmak izi sistemi başlık sıralamasını ve gövde alanlarının sıralamasını yönetirken User-Agent geçersiz kılmaları belirli UA dizesini yönetir. Her ikisi de bağımsız olarak etkinleştirilebilir. --- ## 14. API Anahtarı Sağlayıcıları Doğrudan kimlik doğrulama kullanan sağlayıcılar için API anahtarları. **Tercih edilen kurulum:** Kontrol Paneli → Sağlayıcılar → API Anahtarı Ekle. Docker veya başsız dağıtımlar için ortam değişkenleri aracılığıyla ayarlama alternatif bir yöntemdir. Tanınan kalıp: `{PROVIDER_ID}_API_KEY` | Değişken | Sağlayıcı | | ------------------ | ----------------------------------------------- | | `DEEPSEEK_API_KEY` | DeepSeek | | `NVIDIA_API_KEY` | NVIDIA NIM | | `JINA_AI_API_KEY` | Jina AI (Foundation API + Reader yedeği) | | `JINA_API_KEY` | Jina AI (`JINA_AI_API_KEY` için diğer ad) | | `GEMINI_API_KEY` | Gemini (Google AI Studio) gömme + sohbet yedeği | | `GOOGLE_API_KEY` | Gemini (`GEMINI_API_KEY` için diğer ad) | > [!NOTE] > Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius ve Qianfan için statik `${PROVIDER}_API_KEY` girdileri v3.8.0 sürümünde kaldırıldı; çünkü çalışma zamanı artık bunları okumuyor — bu sağlayıcılar yalnızca Kontrol Paneli / `data/provider-credentials.json` / şifrelenmiş veritabanını kullanıyor. Geçiş yolu için bu belgenin alt kısmındaki _Denetim: Kaldırılan / Kullanılmayan Değişkenler_ bölümüne bakın. > [!TIP] > Kontrol Paneli aracılığıyla ayarlanan anahtarlar SQLite'ta şifrelenmiş olarak saklanır ve ortam değişkenlerine göre önceliklidir. > > **Jina:** Bir kontrol paneli `jina-ai` (veya paylaşılan `jina-reader`) bağlantısı mevcut olduğunda `jina-ai/…` gömme, yeniden sıralama, sınıflandırma, bölümleme ve `jina-search`, küme ortam anahtarını faturalandırmaz — `getProviderCredentials` önce doldurma yaklaşımını kullanır. `JINA_AI_API_KEY` / `JINA_API_KEY` yalnızca kullanılabilir bir kontrol paneli anahtarı bulunmadığında kullanılır. Çağrı günlükleri ortam yedeğini `connection_id=env:JINA_AI_API_KEY` olarak ilişkilendirir. Reader kartı (`jina-reader`, `r.jina.ai`) hiçbir zaman `/v1/embeddings` veya `/v1/rerank` sunmaz. > > **Gemini:** `gemini/gemini-embedding-2` (`google/gemini-embedding-2` diğer adı) önce kontrol panelindeki `gemini` bağlantısını kullanır. `GEMINI_API_KEY` / `GOOGLE_API_KEY` yalnızca kullanılabilir bir kontrol paneli anahtarı bulunmadığında kullanılır. Çağrı günlükleri ortam yedeğini `connection_id=env:GEMINI_API_KEY` olarak ilişkilendirir. Yerel çok modlu trafik, `:embedContent` / `:batchEmbedContents` uçlarına karşı `x-goog-api-key` kullanır — N adet OpenAI `input` öğesi, N adet vektöre dönüşür. --- ## 15. Zaman Aşımı Ayarları Tüm değerler **milisaniye** cinsindendir. Merkezi çözümleme `src/shared/utils/runtimeTimeouts.ts` dosyasında yapılır. ### Zaman Aşımı Hiyerarşisi ``` REQUEST_TIMEOUT_MS (genel geçersiz kılma) ├─→ FETCH_TIMEOUT_MS (yukarı akış sağlayıcı çağrıları, varsayılan: 600000) │ ├─→ FETCH_HEADERS_TIMEOUT_MS (FETCH_TIMEOUT_MS değerini devralır) │ ├─→ FETCH_BODY_TIMEOUT_MS (FETCH_TIMEOUT_MS değerini devralır) │ ├─→ TLS_CLIENT_TIMEOUT_MS (FETCH_TIMEOUT_MS değerini devralır) │ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (bağımsız, varsayılan: 10000) │ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (bağımsız, varsayılan: 15000) │ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MS (bağımsız, varsayılan: 0 = kapalı, önerilen: 30000) │ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS (bağımsız, varsayılan: 2) │ ├── FETCH_CONNECT_TIMEOUT_MS (bağımsız, varsayılan: 30000) │ └── FETCH_KEEPALIVE_TIMEOUT_MS (bağımsız, varsayılan: 4000) ├─→ STREAM_IDLE_TIMEOUT_MS (REQUEST_TIMEOUT_MS değerini devralır, varsayılan: 600000) ├─→ STREAM_ACTIVE_TIMEOUT_MS (bağımsız, varsayılan: 1260000; 0 devre dışı bırakır) ├─→ STREAM_READINESS_TIMEOUT_MS (REQUEST_TIMEOUT_MS değerini devralır, varsayılan: 80000) ├─→ STREAM_READINESS_MAX_TIMEOUT_MS (uyarlanabilir hazır olma uzatmalarını sınırlar, varsayılan: 180000) └─→ API_BRIDGE_PROXY_TIMEOUT_MS (REQUEST_TIMEOUT_MS değerini devralır, varsayılan: 30000) ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (türetilmiş, varsayılan: 300000) ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (varsayılan: 60000) ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (varsayılan: 5000) └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (varsayılan: 0 = devre dışı) ``` | Değişken | Varsayılan | Açıklama | | ----------------------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REQUEST_TIMEOUT_MS` | _(ayarlanmamış)_ | Genel kısayol — hem `FETCH_TIMEOUT_MS` hem de `STREAM_IDLE_TIMEOUT_MS` varsayılanlarını geçersiz kılar. | | `FETCH_TIMEOUT_MS` | `600000` | Üst sağlayıcı çağrıları için toplam HTTP isteği zaman aşımı. | | `STREAM_IDLE_TIMEOUT_MS` | `600000` | İptal edilmeden önce ham üst akış baytları arasında izin verilen maksimum sessizlik süresi. Genişletilmiş düşünme modelleri nadiren 90 saniyeden uzun süre duraklar. | | `STREAM_ACTIVE_TIMEOUT_MS` | `1260000` | Etkin SSE akışının maksimum toplam ömrü; üst akış baytlarında hiçbir zaman sıfırlanmaz ve `REQUEST_TIMEOUT_MS` değerinden bağımsızdır. Kayıt defterindeki model başına en büyük `timeoutMs` değerinden (1200000, Codex) ve buna eklenen 60000 marjdan türetilmiştir; böylece tam bütçesi boyunca çalışmasına izin verilen bir model yanıtın ortasında asla sonlandırılmaz. Devre dışı bırakmak için `0` olarak ayarlayın. | | `OMNIROUTE_SSE_COMMENTS` | _(devre dışı)_ | OmniRoute'un SSE `:` yorum satırları (ör. `: keepalive` sinyali ve `x-omniroute-*` meta veri son ekleri) yayımlayıp yayımlayamayacağını belirler. Katı OpenAI uyumlu istemciler her SSE satırına JSON.parse uyguladığı ve `:` yorumlarında çöktüğü için varsayılan olarak devre dışıdır (#10524); `data:` sinyalleri bundan etkilenmez. Yeniden etkinleştirmek için `on`/`true`/`1`/`yes` olarak ayarlayın. `open-sse/utils/sseHeartbeat.ts` tarafından kullanılır. | | `SSE_COALESCE_MS` | `0` (kapalı) | İsteğe bağlı: Claude istemcilerine gönderilen ardışık Claude `content_block_delta` olaylarını (aynı blok dizini ve delta türü) birleştirerek en az her N ms'de bir boşaltır. Kayıpsızdır; `signature_delta` ve sınır olayları hiçbir zaman birleştirilmez. Aşağıdaki tür başına değişkenlerden biri ayarlanmadığı sürece her delta türüne uygulanır. `open-sse/utils/sseDeltaCoalesce.ts` tarafından kullanılır. | | `SSE_COALESCE_THINKING_MS` | `0` (kapalı) | `thinking_delta` için `SSE_COALESCE_MS` değerinin tür başına geçersiz kılınması. | | `SSE_COALESCE_TEXT_MS` | `0` (kapalı) | `text_delta` için `SSE_COALESCE_MS` değerinin tür başına geçersiz kılınması. | | `SSE_COALESCE_INPUT_JSON_MS` | `0` (kapalı) | `input_json_delta` için `SSE_COALESCE_MS` değerinin tür başına geçersiz kılınması. | | `SSE_FRAME_COALESCE_MS` | `0` (kapalı) | İsteğe bağlı: N ms içinde iletilen SSE çerçevelerini istemciye tek bir yazma işleminde toplar. İlk çerçeve ve sonlandırıcı çerçeveler (`[DONE]`, `message_stop`, `error`, `response.completed`/`failed`/`incomplete`) hiçbir zaman geciktirilmez; toplama etkinken ITL, toplu işlemler arasındaki boşlukları ölçer. `open-sse/utils/sseOutputSink.ts` tarafından kullanılır. | | `SSE_STALL_WATCHDOG` | `timer` | Akışlı yanıtlar için bayt duraklaması izleme mekanizması uygulaması. `timer`, üst akıştan gelen her parça için bir zamanlayıcıyı yeniden kurar (tam olarak duraklama bütçesinde tetiklenir); `interval`, `clamp(budget/4, 1s, 5s)` periyoduyla akış başına tek bir denetim çalıştırır, dolayısıyla bir duraklama bütçe + periyot içinde tetiklenir. `open-sse/utils/streamStallWatchdog.ts` tarafından kullanılır. | | `STREAM_READINESS_TIMEOUT_MS` | `80000` | Ping olmayan ilk SSE olayını alma süresi. Ayarlandığında `REQUEST_TIMEOUT_MS` değerini devralır. | | `STREAM_READINESS_MAX_TIMEOUT_MS` | `180000` | Büyük, yoğun araç kullanan veya yüksek akıl yürütme gerektiren akış istekleri için maksimum uyarlanabilir ilk olay hazır olma penceresi. | | `OMNIROUTE_AGENT_GOAL_POLICY_ENABLED` | `true` | `/goal` sezgisel yöntemi için acil kapatma anahtarı. Algılamayı tamamen devre dışı bırakmak için `false`/`0`/`off` olarak ayarlayın — hazır olma zaman aşımları ve akış kurtarma, istek gövdesi/başlıkları nedeniyle hiçbir zaman yükseltilmez; böylece istemci denetimindeki zaman aşımı büyütmesi azaltılır. | | `OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS` | `600000` | Algılanan `/goal` aracı çalıştırmaları veya `x-omniroute-agent-goal` ile zorlanan istekler için maksimum ilk olay hazır olma penceresi. | | `OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY` | `true` | Algılanan `/goal` aracı çalıştırmaları için erken akış kurtarmayı otomatik olarak etkinleştirir. Hedefe özgü katılımı devre dışı bırakmak için `false`/`0`/`off` olarak ayarlayın. Bu, operatör varsayılanına yalnızca kurtarma EKLEYEBİLİR — açık bir `STREAM_RECOVERY_ENABLED`/veritabanı ayarları devre dışı bırakma tercihini hiçbir zaman geçersiz kılmaz. | | `OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS` | `true` | OpenAI SDK'nın `responses.stream()` işlevini 502 hatasıyla bozan standart dışı `codex.*` SSE olaylarını (ör. `codex.rate_limits`) kaldırır. Varsayılan olarak AÇIKTIR (#11014). Bunları iletmek için `0`/`false`/`no`/`off` olarak ayarlayın. | | `OMNIROUTE_CODEX_APPSERVER_WS` | _(ayarlanmamış)_ | İsteğe bağlı Codex app-server aktarımı. Yerel bir `codex app-server` yardımcı hizmetinin WebSocket uç noktası (`ws://`/`wss://`). Bir token ile birlikte ayarlandığında Codex istekleri, HTTP Responses API yerine JSON-RPC üzerinden yardımcı hizmete yönlendirilir. Bağlantı başına `providerSpecificData.codexAppServerUrl` aracılığıyla da ayarlanabilir. `open-sse/executors/codex/appServerConfig.ts` tarafından kullanılır. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` | _(ayarlanmamış)_ | app-server'a sunulan satır içi yetenek/bearer token'ı. Bağlantı başına geçersiz kılma: `providerSpecificData.codexAppServerToken`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE` | _(ayarlanmamış)_ | Uygulama sunucusu yetenek belirtecini (`codex app-server --ws-token-file` kaynağından) içeren dosyanın yolu. `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` ayarlanmadığında kullanılır. Bağlantı başına geçersiz kılma: `providerSpecificData.codexAppServerTokenFile`. | | `OMNIROUTE_CODEX_APPSERVER_CWD` | `/tmp` | Uygulama sunucusu turunun çalıştığı çalışma dizini. Bağlantı başına geçersiz kılma: `providerSpecificData.codexAppServerCwd`. | | `OMNIROUTE_CODEX_APPSERVER_APPROVAL` | _(ayarlanmamış)_ | Uygulama sunucusu turuna iletilen onay ilkesi (ör. `never`, `on-request`). Bağlantı başına geçersiz kılma: `providerSpecificData.codexAppServerApprovalPolicy`. | | `OMNIROUTE_CODEX_APPSERVER_SANDBOX` | _(ayarlanmamış)_ | Uygulama sunucusu turuna iletilen korumalı alan ilkesi (ör. `read-only`, `workspace-write`, `danger-full-access`). Ayarlanmadığında yürütücü varsayılan olarak `workspace-write` kullanır (güçlendirilmiş; önceden `danger-full-access`). Bağlantı başına geçersiz kılma: `providerSpecificData.codexAppServerSandbox`. | | `OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE` | `false` | Uygulama sunucusunun kendi onay istemlerini (ana makinede komut/dosya/izin yürütme) otomatik olarak onaylar. Varsayılan olarak kapalıdır — istemler otomatik olarak reddedilir; test düzeneği araç çağrıları bundan etkilenmez (ayrı `item/tool/call` geçişi üzerinden iletilirler). `true`/`1`/`yes` değerlerini kabul eder. Bağlantı başına geçersiz kılma: `providerSpecificData.codexAppServerAutoApprove`. | | `FETCH_HEADERS_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Yanıt başlıklarını alma süresi. | | `OMNIROUTE_FETCH_START_TIMEOUT_CAP_MS` | `110000` | Akış isteklerinde yanıt başlıklarını beklemek için azami süre (ms). `0` bu üst sınırı devre dışı bırakır; açıkça belirtilmiş bir sağlayıcı `fetchStartTimeoutCapMs` değeri önceliklidir. | | `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` | `30000` (30 sn) | Her doğrudan, proxy'siz deneme için yanıt başlangıcını bekleme azami süresi (ms). Zaman aşımı durumunda yeni bir soket üzerinden bir kez daha denenir; sınırı devre dışı bırakıp önceki davranışı korumak için `0` olarak ayarlayın. | | `OMNIROUTE_LOCAL_DIRECT_HEADERS_TIMEOUT_MS` | `300000` (5 dk) | Hedef ana makinesi özel/LAN/geri döngü olan (örneğin `localhost`, `host.docker.internal`, `192.168.x.x`) doğrudan, proxy'siz denemeler için yanıt başlangıcı alt sınırı (ms); böylece yerel bir Ollama soğuk başlatması yukarıdaki varsayılan 30 sn nedeniyle kesilmez. Alt sınır işlevi görür: etkin bekleme süresi, bu değer ile `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` değerinden büyük olanıdır; `0` veya geçersiz bir değer yerel alt sınırı kaldırır. Uzak ana makineler etkilenmez. | | `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (10 dk) | Yukarıdaki birleştirilmiş denemedeki yanıt başlangıcı zaman aşımından sonra yeni soketle yapılan RETRY denemesi için üst sınır (ms) (#13703). Yalnızca çağıran taraf zaten kendi son tarih sinyalini eklemişse (çözümlenmiş bağlantı/model/sağlayıcı/`FETCH_TIMEOUT_MS` zinciri) uygulanır; bu sinyal asıl sınırdır ve amaçlanan akışta önce tetiklenir, dolayısıyla bu değer sabit bir üst sınırdan ziyade geniş bir güvenlik önlemidir — bu olmadan yeniden deneme, birleştirilmiş denemeyle aynı kısa `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` penceresini yeniden kullanıyor ve sağlıklı, ilk bayta ulaşma süresi uzun muhakeme modellerinin 504 hatası vermesine neden oluyordu. Yukarıdaki sabit alt sınırın altına inmesine asla izin verilmez; çağıran taraf hiçbir son tarih sinyali sağlamadığında yeniden deneme, sabit alt sınırı değiştirmeden korur. | | `FETCH_BODY_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Yanıt gövdesinin tamamını alma süresi. | | `FETCH_CONNECT_TIMEOUT_MS` | `30000` | TCP bağlantısı kurma zaman aşımı. | | `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Keep-alive soketi boşta kalma zaman aşımı. | | `TLS_CLIENT_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | TLS parmak izi proxy'si (wreq-js) zaman aşımı. | | `TLS_FIRST_BYTE_WATCHDOG_MS` | `10000` | Özellikle wreq-js TLS parmak izi aktarımının gövdesinde ilk bayta ulaşma süresini sınırlar; `TLS_CLIENT_TIMEOUT_MS` tek başına, başlıklar ulaşır ulaşmaz çözümlendiği için takılmış bir gövdeyi algılayamaz (#12656). Zaman aşımı, wreq okuyucusunu iptal eder ve doğrudan/proxy dağıtıcısına geri döner; `0` gözetleyiciyi devre dışı bırakır. | | `RESPONSES_FIRST_BYTE_TIMEOUT_MS` | `15000` | Yalnızca OpenCode yürütücüsü için ve yalnızca `OPENCODE_RESPONSES_STALL_ROTATION` özellik bayrağı açıkken (varsayılan olarak kapalı): başlıklar alındıktan sonra akışlı bir Responses yanıtının ilk gövde baytını bekleme süresini sınırlar (#13484). Bir Responses akışı `response.created` ile açılır; dolayısıyla bu pencereyi aşan sessizlik bir takılmadır: hesap bekleme süresine alınır ve istek bir kez sonraki hesaba yönlendirilir; ikinci bir takılmada hızla hata döndürülür. `0`, bayrak açık olsa bile korumayı devre dışı bırakır. | | `OPENCODE_RESPONSES_HEADERS_WAIT_MS` | `0` (= kapalı) | Yalnızca OpenCode yürütücüsü için: başka bir hesap hâlâ kullanılabilir durumdayken akışlı bir Responses çağrısında üst kaynaktan yanıt başlıklarını bekleme süresini sınırlar — kuyruktaki bir istek, başlıklar için tanınan tam pencere boyunca beklemek yerine beklemeyi bırakıp devam eder. Yalnızca akışlı Responses çağrıları etkilenir (Responses akışı `response.created` ile açılır; dolayısıyla buradaki sessizlik üretim değil, kuyruk anlamına gelir); sohbet tamamlama ve akışsız çağrılar değişmeden kalır ve bu pencere yalnızca etkin getirme başlangıcı üst sınırını kısaltır, asla uzatmaz. Etkinleştirilirken önerilen değer: `30000`. `0` devre dışı bırakır. | | `OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS` | `2` | Yalnızca OpenCode yürütücüsü: yukarıdaki başlık bekleme sınırının istek başına kaç kez bir sonraki hesaba geçebileceği. Kalan son hesap her zaman tam başlık bekleme süresini korur. | | `OPENCODE_PARK_AND_RESUME` | `false` | Yalnızca OpenCode yürütücüsü: tekrarlanan geçici 429'lardan (veya yeni bir havuz zorlanma işaretinden) sonra isteği bir yaşam sinyaliyle beklemeye alır, ardından tüm filoya yayılmak yerine en fazla 3 ardışık hesaptan oluşan, sınırlandırılmış tek bir aşamayı yeniden yürütür (#13924). Varsayılan olarak kapalıdır: her 429, tam olarak daha önce olduğu gibi bir sonraki hesaba geçer. | | `OPENCODE_PARK_REPLAY_SERVE_SETASIDE` | `false` | Yalnızca OpenCode yürütücüsü: beklemeye alma ve sürdürme yeniden yürütme aşamasındaki bekleme süresi dolmuş tüm hesaplar proxy ret belleği tarafından kenara ayrıldığında, hiçbir şeyi yeniden yürütmemek yerine yine de bunları kullanır (#14851, #14750'nin devamı). Varsayılan olarak kapalıdır: bu durumda yeniden yürütme aşaması, #14750 öncesinde olduğu gibi boştur. | | `STREAM_READINESS_STALL_RETRY` | `false` | Yalnızca akışlı sohbet: ilk yukarı akış gövdesi kullanılabilir bir olay üretmeden önce takılırsa, aynı hazırlık bütçesiyle ve hesap cezası olmadan aynı yönlendirme yolu üzerinden sınırlandırılmış ikinci bir deneme yapar. Varsayılan olarak kapalıdır: takılan ilk gövde, yeniden deneme olmadan isteğin başarısız olmasına neden olur. | | `OPENCODE_POOL_RESELECT` | `false` | Yalnızca OpenCode yürütücüsü: ortam havuzu bağlamındaki proxy'siz bir hesapta çıkışa göre bölümlendirilmiş bir sağlayıcıdan 429 alındıktan sonra, aynı çıkış adresini yeniden denemek yerine bir sonraki deneme için bağlantı havuzundan başka bir üye ister. Sıralar, hiçbir zaman hariç tutmaz: tükenmiş bir havuz mevcut davranışı korur. Varsayılan olarak kapalıdır: her 429, tam olarak daha önce olduğu gibi bir sonraki hesaba geçer. | | `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(ayarlanmamış)_ | Yalnızca OpenCode yürütücüsü: beklemeye almadan önce okunan havuz zorlanma işaretinin yolunu geçersiz kılar (`{since, reason, ttl_s}`, varsayılan `/tmp/opencode-pool-strain.json`, #13924). Yeni bir işaret, yeniden saymadan beklemeye alır; işaret yoksa veya eskiyse ani artış sayacına geri döner. | | `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | `/v1` köprü istekleri için proxy geçişi zaman aşımı. | | `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | Firecrawl web getirme yürütücüsünü kendi barındırdığınız bir örneğe yönlendirir (bulut dışında API anahtarı isteğe bağlıdır). | | `FIRECRAWL_TIMEOUT_MS` | `30000` | Firecrawl web getirme yürütücüsü için istek başına zaman aşımı. | | `TAVILY_BASE_URL` | _(ayarlanmamış)_ | Tavily `/usage` kota getiricisinin temel URL'si (Sağlayıcı Sınırları); `api.tavily.com` adresini gösterdiğinde yok sayılır. Ayarlanmamışsa bağlantının temel URL'sine geri döner. | | `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `300000` | Köprü için genel sunucu isteği zaman aşımı. | | `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Köprü üzerinden yanıt başlıklarını gönderme süresi. | | `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Köprü keep-alive boşta kalma zaman aşımı. | | `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Ham soket zaman aşımı (0 = devre dışı). | | `SHUTDOWN_TIMEOUT_MS` | `30000` | Zorla çıkıştan önce SIGTERM/SIGINT için tanınan ek süre. | | `OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS` | `120000` | `FETCH_TIMEOUT_MS` ayarlanmamışken `src/shared/utils/fetchTimeout.ts` tarafından kullanılan geri dönüş değeri. | | `OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS` | `8000` | `src/shared/network/safeOutboundFetch.ts` içindeki `validationRead` ve `modelsProbe` ön ayarları için zaman aşımı (ms). Kontrol panelinde etkin/hata durumları arasında gidip gelmeyi önlemek için yavaş uç noktalar (Cerebras, Cloudflare AI, Groq) söz konusu olduğunda artırın. Geçersiz (<1000) veya sayısal olmayan değerler için 8000ms'ye geri döner. | | `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | `open-sse/utils/proxyFetch.ts` içindeki aktarıcıya özgü getirme zaman aşımı (#9158). Takılan bir aktarıcı, istemci/aracı zaman aşımından (~30s) önce başarısız olmalıdır; böylece çağıranlar genel bir yukarı akış zaman aşımı yerine aktarıcıya özgü bir hata görür. Her zaman önce tetiklenmesi için `29000` ile sınırlandırılmıştır. | | `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | `open-sse/utils/proxyFetch.ts` içindeki doğrudan/aktarıcı/proxy tek yeniden deneme yolları için paylaşılan yeniden deneme bekleme süresi (#9158). `0` = hemen yeniden dene. | | `OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS` | `60000` | Yerel wreq-js istek zaman aşımı (`claudeTlsClient.ts`). | | `OMNIROUTE_CLAUDE_TLS_GRACE_MS` | `10000` | Yerel zaman aşımına eklenen mutlak JS kesin süre sınırı ek süresi. | | `OMNIROUTE_PPLX_TLS_TIMEOUT_MS` | `30000` | Yerel wreq-js istek zaman aşımı (`perplexityTlsClient.ts`). | | `OMNIROUTE_PPLX_TLS_GRACE_MS` | `10000` | Yerel zaman aşımına eklenen mutlak JS kesin son tarih toleransı. | | `OMNIROUTE_PPLX_SEARCH_HINT` | `0` (kapalı) | Çağıranın sistem mesajına "Yerleşik web aramasına sahipsiniz. Soruları arama sonuçlarını kullanarak doğrudan yanıtlayın." ifadesini ekler (`perplexity-web/protocol.ts`). Varsayılan olarak kapalıdır — Perplexity zaten arama yapar ve bu cümle, kodlama istemcilerine verilen yanıtlara üst yorum olarak sızar. Eski davranışı geri yüklemek için `1`/`true`/`yes`/`on` olarak ayarlayın. | | `OMNIROUTE_GROK_TLS_TIMEOUT_MS` | `60000` | Yerel wreq-js istek zaman aşımı (`grokTlsClient.ts`). | | `OMNIROUTE_GROK_TLS_GRACE_MS` | `10000` | Yerel zaman aşımına eklenen mutlak JS kesin son tarih toleransı. | | `OMNIROUTE_NOTION_TLS_TIMEOUT_MS` | `30000` | Yerel wreq-js istek zaman aşımı (`notionTlsClient.ts`); `notion-web`, uzun üretimler için bunu istek başına `180000` değerine yükseltir. | | `OMNIROUTE_NOTION_TLS_GRACE_MS` | `10000` | Yerel zaman aşımına eklenen mutlak JS kesin son tarih toleransı. | | `OMNIROUTE_BROWSER_POOL` | `on` | Tarayıcı destekli web çerezi sohbeti için paylaşılan Playwright tarayıcı havuzu (`browserPool.ts`); devre dışı bırakmak için `off` olarak ayarlayın. | | `OBSCURA_BIN` | `auto-detect` | Tarayıcı havuzu ve Cloudflare Playground yürütücüsü tarafından birincil motor olarak kullanılan `obscura` ikili dosyasının yolu (`open-sse/services/obscura.ts`); ayarlanmadığında sistem PATH'inden otomatik olarak algılanır. | | `OBSCURA_CDP_ENDPOINT` | _(ayarlanmamış)_ | Yeni bir süreç başlatmak yerine hâlihazırda çalışan bir Obscura'yı (`http://host:port`) kullanır; modül bu sürecin sahibi değildir (`open-sse/services/obscura.ts`). | | `OBSCURA_PORT` | `rastgele boş port` | Başlatılan `obscura serve` için açıkça belirtilen port; ayarlanmadığında boş bir port otomatik olarak seçilir (`open-sse/services/obscura.ts`). | | `WEB_COOKIE_USE_BROWSER` | `0` | Bir web çerezi sohbet isteğini tarayıcı destekli yolu kullanacak şekilde etkinleştirir (`browserBackedChat.ts`); etkinleştirmek için `1`. | | `KIMI_WEB_BASE_URL` | `https://www.kimi.ai` | Kimi Web (uluslararası kimi.ai Connect-RPC) yürütücüsünün temel URL'si (`kimi-web.ts`); yalnızca ayna/proxy uç noktaları için geçersiz kılın. | | `KIMI_WEB_CHAT_URL` | `/apiv2/kimi.gateway.chat.v1.ChatService/Chat` | Kimi Web yürütücüsünün tam sohbet uç noktası (`kimi-web.ts`). | | `OMNIROUTE_LOGIN_BROWSER_PATH` | _(otomatik algılanır)_ | Adobe Firefly etkileşimli tarayıcı oturumu açma işlemi için sistemdeki Chrome/Edge yürütülebilir dosyasının yolu (`adobeFireflyBrowserLogin.ts`); işletim sistemine göre otomatik algılamayı geçersiz kılar. | | `OMNIROUTE_STANDALONE_DIR` | _.build/ bağımsız çıktı_ | Derleme sonrası birlikte konumlandırma adımı tarafından kullanılan bağımsız çıktı dizisi için derleme zamanı geçersiz kılması (`scripts/build/colocate-standalone.mjs`); çalışma zamanı değil, derleme araçlarıyla ilgilidir. | Birleşik hedef denemeleri, çözümlenen yukarı akış istek zaman aşımını (`FETCH_TIMEOUT_MS` veya fetch varsayılanını sağladığında `REQUEST_TIMEOUT_MS`) devralır. Birleşik geri dönüşü yalnızca hızlandırmak için birleşimde, birleşim varsayılanlarında veya sağlayıcı geçersiz kılmasında `targetTimeoutMs` değerini ayarlayın; mevcut yukarı akış zaman aşımının üzerindeki değerler, yukarı akış zaman aşımıyla sınırlandırılır. `comboTimeoutMs`, yük devretme hedeflerinin tamamını kapsayan ayrı bir birleşim duvar saati bütçesidir. Sınırsız yinelemeyi korumak için ayarlanmamış veya `0` olarak bırakın (`comboPredicates.ts` içindeki sabit kodlanmış 10 dakikalık takılma durdurucusu yine de geçerlidir). Pozitif bir değer, birleşim için bu güvenlik mekanizmasının yerini alır. Yavaş bir ilk hedeften sonra yük devretmeye hâlâ zaman kalması için `comboTimeoutMs` değerini `targetTimeoutMs` değerinden daha uzun tutun. ### Devre Kesici Eşikleri Sağlayıcı düzeyinde devre kesici ayarı. Varsayılanlar, v3.6'dan beri 500'den fazla bağlantı için kullanılan ölçeklendirilmiş değerleri yansıtır. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------------------------------- | ---------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD` | `8` | `open-sse/config/constants.ts` | Kesici devreye girmeden önce OAuth sağlayıcıları için ardışık hata eşiği. | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS` | `60000` | `open-sse/config/constants.ts` | OAuth sağlayıcı kesicisi için sıfırlama aralığı (ms). | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD` | `12` | `open-sse/config/constants.ts` | API anahtarı sağlayıcıları için ardışık hata eşiği. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS` | `30000` | `open-sse/config/constants.ts` | API anahtarı sağlayıcı kesicisi için sıfırlama aralığı (ms). | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Yerel sağlayıcılar (Ollama, LM Studio, ...) için ardışık hata eşiği. | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS` | `15000` | `open-sse/config/constants.ts` | Yerel sağlayıcı kesicisi için sıfırlama aralığı (ms). | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD` | `10` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: OAuth sağlayıcısının tamamı bekleme süresine girmeden önce pencere içindeki hata sayısı. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS` | `900000` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: OAuth sağlayıcıları için kayan hata sayımı penceresi (ms). | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS` | `300000` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: OAuth sağlayıcı eşiğine ulaşıldığında uygulanacak bekleme süresi (ms). | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD` | `5` | `open-sse/config/constants.ts` | OAuth sağlayıcısı bu hata sayısında DEGRADED durumuna girer. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER` | `8` | `open-sse/config/constants.ts` | OAuth sağlayıcısı için maksimum resetTimeout artış çarpanı. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT` | `2` | `open-sse/config/constants.ts` | OAuth sağlayıcısı bu sayıda açık döngüden sonra artışa geçer. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD` | `15` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: API anahtarı sağlayıcısının tamamı bekleme süresine girmeden önce pencere içindeki hata sayısı. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS` | `1800000` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: API anahtarı sağlayıcıları için kayan hata sayımı penceresi (ms). | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: API anahtarı sağlayıcı eşiğine ulaşıldığında uygulanacak bekleme süresi (ms). | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD` | `7` | `open-sse/config/constants.ts` | API anahtarı sağlayıcısı bu hata sayısında DEGRADED durumuna girer. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER` | `4` | `open-sse/config/constants.ts` | API anahtarı sağlayıcısı için maksimum resetTimeout artış çarpanı. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT` | `3` | `open-sse/config/constants.ts` | API anahtarı sağlayıcısı bu sayıda açık döngüden sonra artışa geçer. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: Yerel sağlayıcının tamamı bekleme süresine girmeden önceki hata sayısı. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS` | `300000` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: Yerel sağlayıcılar için kayan hata sayımı penceresi (ms). | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS` | `60000` | `open-sse/config/constants.ts` | Sağlayıcı düzeyindeki kesici: Yerel sağlayıcı eşiğine ulaşıldığında uygulanacak bekleme süresi (ms). | | `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | Yukarı akıştaki bir 429 yanıtı `Retry-After` içermediğinde, çok anahtarlı API anahtarı rotasyonu tarafından anahtar başına uygulanan bekleme süresi (ms) (#14573). Pozitif olmayan veya sayısal olmayan değerlerde varsayılan değer kullanılır. | | `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | Bağlam önbelleği sabitlemesinin sağlayıcısının kalıcı olarak sağlıksız kabul edildiği ve yük devretme için sabitlemenin kaldırıldığı geri çekilme derinliği. | | `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | Bağlam önbelleği sabitlemesi kaldırılmadan önce kısa süreli geçici beklemeleri tolere eden dalgalanma önleme penceresi (ms). | ### Senaryolar | Senaryo | Yapılandırma | | --------------------------------------- | --------------------------------------------------------- | | **Uzun süreli kod oluşturma** | `REQUEST_TIMEOUT_MS=900000` (15 dk.) | | **Toplam akış ömrünü sınırlama** | `STREAM_ACTIVE_TIMEOUT_MS=1260000` (21 dk.) | | **Üretim API'si için hızlı hata verme** | `API_BRIDGE_PROXY_TIMEOUT_MS=10000` | | **Genişletilmiş düşünme modelleri** | `STREAM_IDLE_TIMEOUT_MS=300000` (parçalar arasında 5 dk.) | ## 16. Günlükleme Günlükleme sistemi hem stdout'a hem de döndürülen günlük dosyalarına yazar. Tüm yapılandırma `src/lib/logEnv.ts` tarafından okunur. | Değişken | Varsayılan | Açıklama | | ----------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `APP_LOG_LEVEL` | `info` | Minimum günlük düzeyi: `debug`, `info`, `warn`, `error`. | | `APP_LOG_FORMAT` | `text` | Çıktı biçimi: `text` (insan tarafından okunabilir) veya `json` (yapılandırılmış). | | `APP_LOG_TO_FILE` | `true` | Günlükleri stdout'un yanı sıra dosyaya da yaz. | | `APP_LOG_FILE_PATH` | `logs/application/app.log` | Günlük dosyası yolu (proje köküne veya `DATA_DIR` dizinine göre). | | `APP_LOG_MAX_FILE_SIZE` | `50M` | Döndürme öncesi maksimum dosya boyutu. Kabul edilen değerler: `50M`, `1G`, `512K` veya düz bayt değeri. | | `APP_LOG_RETENTION_DAYS` | `7` | Döndürülen uygulama günlük dosyalarının saklanacağı gün sayısı. | | `APP_LOG_MAX_FILES` | `20` | Döndürülen günlük dosyası yedeklerinin maksimum sayısı. | | `CALL_LOG_RETENTION_DAYS` | `7` | İstek/çağrı günlüğü girdilerinin veritabanında saklanacağı gün sayısı. | | `CALL_LOG_MAX_ENTRIES` | `10000` | Bellek içi arabellekteki maksimum çağrı günlüğü girdisi sayısı. | | `CALL_LOGS_TABLE_MAX_ROWS` | `100000` | Budama öncesinde `call_logs` SQLite tablosunda bulunabilecek maksimum satır sayısı. | | `ENABLE_REQUEST_LOGS` | _(ayarlanmamış)_ | Ayrıntılı istek günlüklemesini pano ayarını geçersiz kılarak zorla açar veya kapatır. | | `MAX_PENDING_REQUEST_AGE_MS` | `3600000` (1 saat) | Bellek içi temizleme öncesinde sahipsiz etkin istek günlüğü girdileri için maksimum yaş. | | `CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS` | `false` | `call_log_pipeline_enabled=true` olduğunda akış parçalarını işlem hattı yapıtlarında saklar. İsteğe bağlıdır (`true`) — disk alanından tasarruf etmek için varsayılan olarak kapalıdır. | | `CALL_LOG_PIPELINE_MAX_SIZE_KB` | `512` | `call_log_pipeline_enabled=true` olduğunda işlem hattı çağrı günlüğü yapıtının KB cinsinden maksimum boyutu. | | `PROXY_LOGS_TABLE_MAX_ROWS` | `100000` | Budama öncesinde `proxy_logs` SQLite tablosunda bulunabilecek maksimum satır sayısı. | | `PROXY_LOG_INCLUDE_IPS` | `false` | `[ProxyEgress]` konsol günlüklerine istemci/çıkış IP'lerini ve hesap öneklerini dahil eder. Pano/veritabanı proxy günlüğü kayıtları tüm ayrıntıları korur. | | `PROXY_LOG_FIRST_CHUNK_TIMING` | `false` | Proxy günlüğü satırlarında `first_chunk_ms` değerini (gönderim başlangıcından ilk kullanılabilir gövde baytına kadar geçen süre) kaydetmek için `"true"` veya `"1"` olarak ayarlayın. Her yukarı akış gövdesini tembel bir geçiş akışıyla sarar ve bayt ulaştığında satırı günceller; yanıtların değiştirilmeden geçmesi için varsayılan olarak kapalıdır. | | `APP_LOG_ROTATION_CHECK_INTERVAL_MS` | `60000` (1 dk) | `src/lib/logRotation.ts` etkin günlük dosyasının boyutunu ne sıklıkla yeniden kontrol eder. | | `CHAT_LOG_TEXT_LIMIT` | `65536` | Sohbet günlüğü yapıtlarında tutulan maksimum dize uzunluğu (varsayılan 64 KB). | | `CHAT_LOG_ARRAY_TAIL_ITEMS` | `128` | Sohbet günlüğü yükleri kısaltılırken dizinin sonundan tutulacak öğe sayısı. | | `CHAT_LOG_MAX_DEPTH` | `6` | Sohbet günlüğü yüklerinin kısaltılmasından önce izin verilen maksimum iç içe geçme derinliği. | | `CHAT_LOG_MAX_OBJECT_KEYS` | `80` | Sohbet günlüğü yüklerinde tutulan maksimum nesne anahtarı sayısı (0 = sınırsız). | | `CHAT_LOG_MAX_BODY_KB` | `1024` | Tam kopya yerine yalnızca sade bir özetle değiştirilmeden önce istek/yanıt gövdesinin toplam boyutu (KB). Uzun aracılı konuşmalarda panoda gerçek mesajlar yerine bir yer tutucu görünüyorsa bu değeri artırın. | | `CHAT_DEBUG_FILE` | `false` | `true` olduğunda `serializeArtifactForStorage`, boyuta dayalı kısaltmayı atlar. Yalnızca hata ayıklama içindir. | --- ## 17. Bellek Optimizasyonu | Değişken | Varsayılan | Açıklama | | ----------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_MEMORY_MB` | _otomatik_ (fiziksel sunucu); **Docker imajında `1024`** | **Önerilen** Docker/bağımsız V8 heap sınırı (MB). Ayarlanmadığında dinamik olarak kalibre edilir (sistem RAM'inin yaklaşık %35'i, `[512, 4096]` aralığıyla sınırlandırılır); `512`, yalnızca toplam bellek okunamadığında alt sınırdır. `run-standalone.mjs` üzerinde (Docker CMD), **açıkça belirtilen** bir değer `--max-old-space-size` olarak eklenir ve çakışan bir NODE_OPTIONS heap bayrağına karşı **öncelikli olur** (V8'de son bayrak geçerlidir). `omniroute serve`, mevcut bir NODE_OPTIONS heap değerini tercih etmeye devam eder (#5238). İkisini farklı sayılara ayarlamayın — süreç, her iki değeri ve hangisinin geçerli olduğunu belirten bir uyarı kaydeder. **Resmî Docker imajı her zaman `1024` değerini ayarladığından kalibrasyon burada hiçbir zaman çalışmaz.** Kodlama aracısı `/v1/responses` için `8192`–`12288` ve ek cgroup payı gerekir — bkz. [Docker Kılavuzu — çalışma zamanı RAM'i](../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents). | | `OMNIROUTE_RSS_PRESSURE_MB` | _otomatik_ (`max(3072, 2 × OMNIROUTE_MEMORY_MB)`; `OMNIROUTE_MEMORY_MB` ayarlanmamışsa kapalı) | `open-sse/utils/resourcePressure.ts` | V8 `heapUsed` değerinin göremediği yerel/harici bellek için mutlak süreç RSS sigortası (MB); bu sınırın üzerinde yeni istekler 503 `resource_pressure` yanıtı alır. RSS, ani bir yükselişten sonra nadiren düşer; bu nedenle bunu `OMNIROUTE_PRESSURE_SELF_RESTART` ile birlikte kullanın. | | `PROMPT_CACHE_MAX_SIZE` | `50` | Önbelleğe alınan maksimum sistem istemi girdisi sayısı. | | `PROMPT_CACHE_MAX_BYTES` | `2097152` (2 MB) | Toplam istem önbelleğinin maksimum boyutu. | | `PROMPT_CACHE_TTL_MS` | `300000` (5 dk.) | İstem önbelleği girdisinin TTL değeri. | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | Önbelleğe alınan maksimum temperature=0 yanıtı sayısı. | | `SEMANTIC_CACHE_MAX_BYTES` | `4194304` (4 MB) | Toplam semantik önbelleğin maksimum boyutu. | | `SEMANTIC_CACHE_TTL_MS` | `1800000` (30 dk.) | Semantik önbellek girdisinin TTL değeri. | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | Aynı anda etkin bir bellek içi dizin tutan yerel derlem köklerinin sayısı (`src/lib/localCorpus/configured.ts`). LRU: sınıra ulaşıldığında en uzun süredir kullanılmayan kökün dizini çıkarılır ve bir sonraki sorgusunda yeniden oluşturulur. En az `1` olacak şekilde sınırlandırılır; sayısal olmayan bir değer varsayılana geri döner. | | `STREAM_HISTORY_MAX` | `50` | Dashboard canlı görünüm arabelleğindeki maksimum son akış olayı sayısı. | | `CONTEXT_LENGTH_DEFAULT` | _(ayarlanmamış)_ | `CONTEXT_LENGTH_` değişkeni olmayan her sağlayıcı için genel bağlam uzunluğu geçersiz kılma değeri (token). Ayarlandığında bu sağlayıcılar için katalog, Dashboard geçersiz kılma ve kayıt defteri değerlerinin **yerini alır**; ayarlanmadığında OmniRoute, son çare olarak `128000` kullanan yerleşik zincirini kullanır. Bkz. [Sağlayıcı başına bağlam uzunluğu](#per-provider-context-length-context_length_provider). | | `USAGE_TOKEN_BUFFER` | `100` | Kullanım kotaları izlenirken ayrılan ek token payı. | ### Sağlayıcı başına bağlam uzunluğu (`CONTEXT_LENGTH_`) `open-sse/services/contextManager.ts` (`getEnvOverride()` / `resolveTokenLimit()`) ayrıca adı çalışma zamanında sağlayıcı kimliğinden oluşturulan **sağlayıcı başına** biçimi de okur; bu nedenle yukarıdaki tabloda veya `.env.example` içinde satır satır listelenemez. **Ad.** `CONTEXT_LENGTH_`; burada ``, sağlayıcı kimliğinin büyük harfe dönüştürülmüş ve `A-Z` / `0-9` dışındaki her karakterin `_` ile değiştirilmiş hâlidir. Sağlayıcı kimliği, takma ad çözümlendikten sonraki kurallı kimliktir (kısa bir takma ad çözümlendikten sonra `provider/model` dizesinin `provider` kısmı). Özel OpenAI veya Anthropic uyumlu düğümler, oluşturulan düğüm kimliklerini kullanır; dolayısıyla UUID, değişken adının bir parçasıdır. Değer, pozitif bir tam sayı olarak token sayısıdır; diğer tüm değerler (boş, `0`, negatif, sayısal olmayan) yok sayılır ve çözümleme bir sonraki adıma geçer. | Sağlayıcı kimliği | Değişken adı | | ----------------------------------------------------------- | -------------------------------------------------------------------------- | | agentrouter | CONTEXT_LENGTH_AGENTROUTER | | openrouter | CONTEXT_LENGTH_OPENROUTER | | openai-compatible-chat-0f8e2c1a-5b7d-4e3f-9a6c-2d1b8e4f7a90 | CONTEXT_LENGTH_OPENAI_COMPATIBLE_CHAT_0F8E2C1A_5B7D_4E3F_9A6C_2D1B8E4F7A90 | **Öncelik.** Bir `provider/model` çifti için değer üreten ilk adım geçerli olur: 1. İlgili sağlayıcı için `CONTEXT_LENGTH_`. 2. `CONTEXT_LENGTH_DEFAULT` (genel ortam geçersiz kılması). 3. Model bazındaki pencere: kalıcı bir bağlam geçersiz kılması (kontrol panelinde ayarlanır veya keşif uzlaştırıcısı tarafından otomatik olarak sabitlenir; bkz. `CONTEXT_WINDOW_RECONCILE_INTERVAL`); aksi takdirde eşitlenmiş katalog / models.dev değeri. 4. Sağlayıcının kayıt defterindeki `defaultContextLength`. 5. Model adı sezgisel kuralları (`claude` 200000, `gemini` 1000000, `gpt` / `o1` / `o3` / `o4` / `codex` 400000). 6. Yerleşik sağlayıcı bazlı varsayılanlar, ardından `128000`. Her iki ortam adımı da **sağlayıcının tamamına** uygulanır: o sağlayıcının her modeli aynı sınırı alır ve bunlar, kontrol panelindeki model bazlı geçersiz kılmalardan önceliklidir. Bir sağlayıcının yalnızca tek bir modeli farklı bir pencereye ihtiyaç duyuyorsa bunun yerine kontrol panelinde model bazlı bir geçersiz kılma kullanın. **Kapsam.** Bu zincir, istek sırasındaki bağlam penceresi denetimini (`open-sse/handlers/chatCore.ts` içindeki `context_length_exceeded` / "Girdi bağlam penceresini aşıyor" reddi), istem sıkıştırma bütçelerini ve birleşik bağlam sınırlarını belirler. `GET /v1/models` tarafından sunulan `context_length`, yine de katalog veya kayıt defteri meta verilerinden gelebilir ve ortam geçersiz kılmasını yansıtacağı garanti edilmez. **Örnek.** Katalog 128.000 bildirirken modeli 1.050.000 tokenlık bir pencere kabul eden bir sağlayıcı: ```dotenv CONTEXT_LENGTH_AGENTROUTER=1050000 ``` Değiştirdikten sonra sunucuyu yeniden başlatın: değer, sunucu işleminin ortamından okunur. **Masaüstü uygulamasında** sunucu bir alt işlem olarak çalışır ve uygulama başlatıldıktan sonra ayarlanan bir sistem değişkenini görmez; satırı uygulamanın yüklediği `.env` dosyasına ekleyin (arama sırası için bkz. [Electron Kılavuzu: Ortam dosyası arama sırası](../guides/ELECTRON_GUIDE.md#environment-file-lookup)), ardından uygulamadan tamamen çıkıp uygulamayı yeniden başlatın. ### Sıkıştırma | Değişken | Varsayılan | Açıklama | | ------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | ayarlanmamış | Projenin `.rtk/filters.json` dosyasına `.rtk/trust.json` karması olmadan güvenin. Yalnızca denetimli yerel geliştirmede kullanın. | ### Bellek Motoru (plan 21) ### Bellek, beceriler ve token yenilemenin olay döngüsü maliyeti (#10349) OmniRoute **tek bir Node işlemidir**. Bellek çıkarma/getirme, beceri ekleme ve sağlayıcı tokenlarını yenileme işlemleri, `GET /healthz` ve kontrol paneliyle **aynı olay döngüsünde** çalışır. Bunlar bir çalışan iş parçacığında çalışmaz. | İş | Kod | Varsayılan | Operatör denetimi | | ------------------------ | ---------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | Bellek çıkarma / getirme | `src/lib/memory/` | Kontrol panelinde **memoryEnabled** (varsayılan olarak açık) | **Ayarlar → Bellek** seçeneğini kapatın. Ayarlarda özelliği devre dışı bırakmanın dışında ayrı bir ortam sonlandırma anahtarı yoktur. | | Beceri ekleme | `src/lib/skills/injection.ts` | Kontrol panelinde **skillsEnabled** (varsayılan olarak açık) | **Ayarlar → Bellek/Beceriler** (`skillsEnabled`) seçeneğini kapatın. Aşağıdaki korumalı alan ayarları, yalnızca ekleme zaten açıkken yürütmeyi sınırlar. | | Token yenileme | `src/sse/services/tokenRefresh.ts` | Bağlı OAuth/web sağlayıcıları için açık | Sağlayıcının bağlantısını kesin veya tokenların geçerliliğini koruyun; şu anda `TOKEN_REFRESH=0` ortam değişkeni yoktur. | Sessiz bir makinede `/healthz` yavaşsa önce bellek ve becerileri devre dışı bırakın, ardından katalog/sıkıştırma yükünü denetleyin (#10303, #9685). Bu özellikler `await` noktalarında yürütmeyi devreder ancak yine de tek iş parçacığı için rekabet eder. Kalıcı bellek alt sistemi (`src/lib/memory/`) için gömme katmanı, vektör deposu ve yeniden sıralama ayarları. | Değişken | Varsayılan | Açıklama | | ------------------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MEMORY_EMBEDDING_CACHE_TTL_MS` | `300000` (5 dk.) | Bellek içi gömme önbelleğinin TTL değeri (kaynak/model/boyut imzası başına). | | `MEMORY_EMBEDDING_CACHE_MAX` | `1000` | Gömme önbelleğinde tutulan maksimum LRU girdisi sayısı. | | `MEMORY_TRANSFORMERS_MODEL` | `Xenova/all-MiniLM-L6-v2` | İsteğe bağlı `@huggingface/transformers` yerel MiniLM işlem hattı için HF depo kimliği (~23 MB int8, ~400 MB RAM). | | `MEMORY_STATIC_MODEL` | `minishlab/potion-base-8M` | Statik potion/Model2Vec arama tablosu gömücüsü için HF depo kimliği. Önbellek dizinine gerektiğinde indirilir. | | `MEMORY_STATIC_CACHE_DIR` | `/embeddings` | Statik potion model dosyalarını önbelleğe almak için kullanılan dizin. Ayarlanmadığında varsayılan olarak `DATA_DIR` altında bulunur. | | `HF_HUB_ENDPOINT` | `https://huggingface.co` | `staticPotion.ts` tarafından kullanılan Hugging Face Hub temel URL'sini geçersiz kılar (ör. ağdan yalıtılmış kurulumlar için yansıtma uç noktası). | | `MEMORY_VEC_TOP_K` | `20` | `src/lib/memory/vectorStore.ts` içindeki `sqlite-vec` kaba kuvvet vektör aramasında kullanılan varsayılan ilk K değeri. | | `MEMORY_RRF_K` | `60` | Hibrit FTS5 + vektör getirme için Reciprocal Rank Fusion sabiti `k` (`sqlite-vec` reçetesi). | | `VECTOR_STORE_DISABLE_VEC` | `false` | `getVectorStore()` içindeki (`src/lib/memory/vectorStore.ts`) test/tanı noktası: `true` olduğunda vektör deposını `null` olmaya zorlar (`sqlite-vec` bulunmayan bir bulut/WASM ortamını simüle eder) ve bellek getirmeyi FTS5 anahtar sözcük aramasına düşürür. Üretimde ayarlamayın. | | `NOTION_API_KEY` | _(ayarlanmamış)_ | Notion arka ucu için API anahtarı (`genericBackend.ts` bilinen arka uç ön ayarı tarafından kullanılır). | | `NOTION_API_URL` | `https://api.notion.com/v1` | Notion API'si için temel URL (kendi sunucunuzda barındırılan Notion alternatifleri için geçersiz kılınabilir). | | `OBSIDIAN_API_KEY` | _(ayarlanmamış)_ | Obsidian Vault arka ucu için API anahtarı (`genericBackend.ts` bilinen arka uç ön ayarı tarafından kullanılır). | | `OBSIDIAN_API_URL` | `http://localhost:27123` | Obsidian Vault API'si için temel URL (uzak kasa için geçersiz kılınabilir). | | `MEMORY_TYPED_DECAY_ENABLED` | `false` | TV6 türlendirilmiş bellek bozunması ana anahtarı. **İsteğe bağlıdır (varsayılan olarak kapalıdır)** — tarama, bozunmuş bellekleri **siler**. Kapalıyken `access_count`/`last_accessed_at` yalnızca telemetri işlevi görür ve hiçbir şey silinmez. | | `MEMORY_TYPED_DECAY_EPISODIC_DAYS` | `30` | Kullanılmayan bir `episodic` belleğin bozunacağı süreyi belirleyen TTL (gün). `0`, epizodik belleği de bağışık hâle getirir. Kalıcı türler (`factual`/`procedural`/`semantic`) her zaman bağışıktır. Bozunma saati `last_accessed_at` temel alınarak yeniden başlatılır. | | `MEMORY_TYPED_DECAY_ACCESS_IMMUNITY` | `3` | Bu sayı kadar veya daha fazla kez enjekte edilen bir bellek, türünden bağımsız olarak bozunmaya karşı bağışıklık kazanır. `0`, erişim bağışıklığını devre dışı bırakır. | | `MEMORY_TYPED_DECAY_SWEEP_INTERVAL` | `0` (devre dışı) | `src/lib/memory/typedDecay.ts` içindeki isteğe bağlı periyodik bozunma taramasının aralığı (saniye). `0`/ayarlanmamış = periyodik tarama yok. İki aşamalı olarak etkinleştirilir: ayrıca `MEMORY_TYPED_DECAY_ENABLED=true` olmalıdır. | | `OMNIROUTE_STRICT_SYSTEM_PROVIDERS` | _(ayarlanmamış)_ | Bir `system` mesajını **yalnızca 0. dizinde** kabul eden, virgülle ayrılmış sağlayıcı kimlikleri (büyük/küçük harfe duyarsız) (`src/lib/memory/injection.ts`). Bunlar için önbellek açısından güvenli olan dizi ortasına bellek ekleme işlemi çok turlu konuşmalarda güvenli değildir; bu nedenle bellek, bunun yerine baştaki sistem mesajıyla birleştirilir veya onun önüne eklenir. Varsayılan olarak yalnızca `xiaomi-mimo`/`mimo` kullanılır; sohbet şablonu aynı tek ve başta yer alan sistem mesajı kısıtlamasını uygulayan, kendi sunucunuzda barındırılan OpenAI uyumlu uç noktalar (ör. Qwen3.5+/3.6) için genişletin. | ### Düşük RAM'li Docker Örneği `128` yalnızca pano içindir. Bu yığın boyutunda kodlama aracıları uzun `/v1/responses` istekleri sırasında `FATAL ERROR` verir. Bu örneği Claude/Codex/Grok ağ geçidi olarak kullanmayın. ```bash 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. Fiyatlandırma Senkronizasyonu Harici kaynaklardan otomatik model fiyatlandırma verisi senkronizasyonu. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------- | ------------- | ------------------------ | ----------------------------------------------------- | | `PRICING_SYNC_ENABLED` | `false` | `src/lib/pricingSync.ts` | İsteğe bağlı periyodik fiyatlandırma senkronizasyonu. | | `PRICING_SYNC_INTERVAL` | `86400` (24s) | `src/lib/pricingSync.ts` | Saniye cinsinden senkronizasyon aralığı. | | `PRICING_SYNC_SOURCES` | `litellm` | `src/lib/pricingSync.ts` | Virgülle ayrılmış veri kaynakları. | --- ## Arena ELO Senkronizasyonu | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------- | ------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ARENA_ELO_SYNC_ENABLED` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Pano Özellik Bayrakları üzerinden yapılandırılabilen veya devre dışı bırakmak için `false` olarak ayarlanabilen periyodik Arena AI liderlik tablosu ELO senkronizasyonu. | | `MODELS_CATALOG_PREFIX_MODE` | `dual` | `src/shared/constants/featureFlagDefinitions.ts`, `src/app/api/v1/models/catalog.ts` | `GET /v1/models` içindeki model kimlikleri için kullanılan ön ek biçimi. `dual`, her model için hem kısa takma ad ön ekini hem de standart sağlayıcı ön ekini yayımlar (geriye dönük uyumluluk — kataloğun boyutunu yaklaşık iki katına çıkarır); `alias`, model başına bir kimlik yayımlar; `canonical`, yalnızca tam sağlayıcı kimliği ön ekini yayımlar (takma adı zaten standart kimlik olan sağlayıcılar tek girdilerini korur). İstemciler, istek başına `?prefix=alias` ile bunu geçersiz kılabilir. Bkz. [API_REFERENCE](API_REFERENCE.md#model-id-prefixes-prefix). | | `ARENA_ELO_SYNC_INTERVAL` | `86400` (24s) | `src/lib/arenaEloSync.ts` | Saniye cinsinden senkronizasyon aralığı. | --- ## PromptQL Playground Sağlayıcısı (Resmî Olmayan/Deneysel) prompt.ql.app için tersine mühendislikle geliştirilmiş GraphQL oturum köprüsü (`src/shared/constants/providers/web-cookie.ts`). Tümü isteğe bağlıdır — varsayılanlar herkese açık playground uç noktalarını gösterir; yalnızca kendi barındırdığınız veya alternatif bir PromptQL dağıtımı için geçersiz kılın. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | `PROMPTQL_GRAPHQL_ENDPOINT` | `https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql` | `open-sse/executors/promptql.ts` | Sohbet/oturum işlemleri için kullanılan GraphQL uç noktası. | | `PROMPTQL_CREDITS_ENDPOINT` | `https://data.pro.ql.app/v1/graphql` | `open-sse/executors/promptql.ts`, `open-sse/services/usage/promptql.ts` | Kredi bakiyesini/kullanımını sorgulamak için kullanılan GraphQL uç noktası. | | `PROMPTQL_TOKEN_REFRESH_URL` | `https://auth.pro.ql.app/ddn/project/token` | `open-sse/executors/promptql.ts` | En iyi gayret esaslı belirteç yenileme için kullanılan uç nokta. | | `PROMPTQL_POLL_TIMEOUT_MS` | `180000` | `open-sse/executors/promptql.ts` | Zaman aşımına uğramadan önce `thread_events` yoklaması için azami süre (ms). | --- ## HyperAgent Web Sağlayıcısı (Resmî Olmayan/Deneysel) hyperagent.com için tersine mühendislikle geliştirilmiş oturum köprüsü (`src/shared/constants/providers/web-cookie.ts`). İsteğe bağlıdır — varsayılan olarak herkese açık faturalandırma/kullanım uç noktasını kullanır; yalnızca kendi barındırdığınız veya alternatif bir HyperAgent dağıtımı için geçersiz kılın. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------- | --------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------ | | `HYPERAGENT_USAGE_URL` | `https://hyperagent.com/api/settings/billing/usage` | `open-sse/services/usage/hyperagent.ts` | Faturalandırma/kullanım kredi bloklarını almak için kullanılan uç nokta. | --- ## Kilo Code Kullanım Kotaları Kilo Code sağlayıcısı için kişisel USD bakiyesi ve Kilo Pass kullanım sorgulaması. İsteğe bağlıdır — varsayılan olarak herkese açık Kilo API'sini kullanır; yalnızca bir aktarma hizmeti/test fikstürü için geçersiz kılın. Kimlik doğrulama, bağlantının mevcut OAuth erişim belirtecini kullanır. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | -------------- | --------------------- | ------------------------------------- | -------------------------------------------------------------------------------------- | | `KILO_API_URL` | `https://api.kilo.ai` | `open-sse/services/usage/kilocode.ts` | Kişisel Kilo Code bakiyesini ve Kilo Pass kullanımını almak için kullanılan temel URL. | --- ## Adobe Firefly Web Sağlayıcısı (Resmî Olmayan/Deneysel) Adobe Firefly web sağlayıcısı için tarayıcı tabanlı oturum yenileme (`open-sse/services/adobeFireflyBrowserLogin.ts`, `open-sse/services/adobeFireflySession.ts`, `open-sse/services/adobeFireflyClient.ts`). İsteğe bağlıdır — tüm varsayılanlar normal bir masaüstü kurulumu için ayarlanmıştır. > **#9255 kapsamında kaldırıldı.** Eski CDP bağlantılı Chrome çalışma zamanı (adobeFireflyChromeRuntime.ts), > Playwright tarayıcıyla oturum açma hizmetiyle değiştirildi ve ilgili ayarlar artık mevcut değil. > ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART değişkenlerinin yanı sıra > ADOBE_FIREFLY_LOGIN_WAIT_MS ve ADOBE_FIREFLY_FORTER_WAIT_MS değişkenleri kod tabanının hiçbir yerinde > okunmaz — bunları ayarlamanın hiçbir etkisi yoktur. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------ | ---------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Gerçek başsız Chrome için `1` olarak ayarlayın (üretim işlevi için çalışmadığı bilinmektedir; yalnızca hata ayıklama içindir). | | `ADOBE_FIREFLY_BROWSER_REFRESH` | `1` | `open-sse/services/adobeFireflySession.ts` | Proaktif tarayıcı hazır tutma özelliğini etkinleştirir/devre dışı bırakır. `0`, proaktif hazır tutmayı devre dışı bırakır (toplu işlem ortasındaki 408 kurtarma işlemi yine uygulanır). | | `ADOBE_FIREFLY_SESSION_DISK` | `1` | `open-sse/services/adobeFireflySession.ts` | Adobe Firefly oturumunun diskte kalıcı olarak saklanmasını devre dışı bırakmak için `0` olarak ayarlayın. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | _(ayarlanmamış)_ | `open-sse/services/adobeFireflySession.ts` | Yerleşik varsayılanı geçersiz kılarak ardışık gönderimler arasında uygulanan minimum süre (ms). | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | _(ayarlanmamış)_ | `open-sse/services/adobeFireflySession.ts` | Yerleşik varsayılanı geçersiz kılarak başarılı bir toplu işlemden sonra eklenen ilave süre (ms). | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | _(ayarlanmamış)_ | `open-sse/services/adobeFireflyClient.ts` | Yerleşik varsayılanı geçersiz kılarak bir üretim isteği gönderilmeden önce uygulanan temel gecikme (ms). | --- ## 19. Model Senkronizasyonu (Geliştirme) | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------------------- | ---------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MODELS_DEV_SYNC_ENABLED` | _(ayarlanmamış)_ | `src/lib/modelsDevSync.ts` | models.dev fiyatlandırma senkronizasyonu için kesin geçersiz kılma ayarı. Ayarlanmamışsa Ayarlar > AI (`modelsDevSyncEnabled`) seçeneğine uyulur. `0`/`false`/`off`/`no`, **DB ayarına üstün gelir** ve hem periyodik senkronizasyonu hem de `getModelsDevPricing()` SQL/JSON taramalarını atlar (panonun aynı olay döngüsünde kilitlendiği durumlarda kurtarma amacıyla). `1`/`true`/`on`/`yes`, senkronizasyonu zorunlu olarak etkinleştirir. Fiyatlandırmayı kaydetme/temizleme işlemleri yine `backupDbFile("pre-write")` çağrısını yapar; bu çağrı, 60 dakikalık sınırlama kapsamında veya `DISABLE_SQLITE_AUTO_BACKUP` etkinken işlem yapmaz. | | `MODELS_DEV_SYNC_INTERVAL` | `86400` (24 sa.) | `src/lib/modelsDevSync.ts` | Geliştirme zamanı model kataloğu senkronizasyon aralığı (saniye cinsinden). | | `CONTEXT_WINDOW_RECONCILE_INTERVAL` | `86400` (24 sa.) | `src/lib/contextWindowResolver.ts` | Kendi kendini düzelten bağlam penceresi uzlaştırıcısının (5004) çalışma aralığı (saniye cinsinden): `/models` keşfi aracılığıyla sağlayıcı tarafından bildirilen pencereler katalogdan farklı olduğunda bunları `auto:discovery` geçersiz kılmaları olarak sabitler. Devre dışı bırakmak için `0` olarak ayarlayın. Önceden senkronize edilmiş verileri yeniden kullanır (yeni getirme işlemi yapılmaz); `manual` geçersiz kılmaların üzerine asla yazmaz. | --- ## 20. Sağlayıcıya Özgü Ayarlar | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 sa.) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter model kataloğu önbelleğinin TTL süresi. | | `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | `/v1/models` yanıtlarına görüntülemeye uygun `name` alanlarını dahil eder. Yalnızca kimlik bekleyen istemciler için devre dışı bırakın. | | `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 sn.) | `src/app/api/v1/models/catalogCache.ts` | Birleştirilmiş bir `GET /v1/models` katalog yeniden oluşturma işlemi için soğuk yol bekleme sınırı (#12627). Zaman aşımında, mevcutsa son geçerli 200 yanıtı sunulur. | | `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 gün) | `src/lib/db/models/activeSyncedCatalog.ts` | Bir bağlantının eşitlenmiş model listesinin yönlendirme için yetkili kabul edilmeyi bırakacağı ve kayıt defterine açık geçiş yapacağı yaş sınırı (#12849). Hiç zaman damgası almamış satırlar eski sayılır. | | `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 sn.) | `src/lib/usage/analyticsResponseCache.ts` | Yavaş bir `GET /api/usage/analytics` yanıtının aynı sorgu dizesi için ne kadar süreyle yeniden kullanılacağı (#15629). `0`, önbelleği devre dışı bırakır. | | `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 sn.) | `src/lib/usage/analyticsResponseCache.ts` | Yalnızca oluşturulması en az bu kadar süren analiz yanıtları önbelleğe alınır; böylece küçük örnekler her zaman güncel verileri görür. | | `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana görüntü oluşturma işleri için azami bekleme süresi. | | `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana işi yoklama sıklığı. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly çözünürlük yükseltme gönderimi yeniden denemelerindeki üstel geri çekilme için temel gecikme. | | `AWS_REGION` | _(ayarlanmamış)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS Bedrock uç noktalarını (Kiro, ses) oluşturmak için kullanılan bölge. | | `AWS_DEFAULT_REGION` | _(ayarlanmamış)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | `AWS_REGION` ayarlanmadığında kullanılacak yedek değer. | | `CLOUDFLARE_ACCOUNT_ID` | _(ayarlanmamış)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI için hesap kimliği. | | `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(ayarlanmamış)_ | `open-sse/executors/cloudflare-playground.ts` | Başlıksız tarayıcı parmak izi denetimi Playwright ile birlikte gelen Chromium'u engellediğinde kullanılan, Cloudflare AI Playground yürütücüsü için tam masaüstü Chrome ikili dosyası yolu. | | `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy'ye (CN ve International) gönderilen çağıran sistem istemleri için isteğe bağlı uzunluk sınırı. Varsayılan olarak yalnızca kodlama aracısı kimlik işareti taşıyan bir istem tarafsız bir istemle değiştirilir (Tencent'in içerik filtresi bunları reddeder); uzun istemler korunur. 0'dan büyük bir tam sayı, bu karakter sayısından uzun tüm sistem istemlerini de değiştirir; ayarlanmamış, `0` veya tam sayı olmayan bir değer sınırı devre dışı bırakır. Her değiştirme, hangi kuralın tetiklendiğini (kimlik işareti veya uzunluk) günlüğe kaydeder. | | `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Proxy havuzu Workers aktarıcı dağıtıcısı tarafından kullanılan Cloudflare REST API tabanını geçersiz kılar (#4640 / 9router#1360). | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Proxy havuzundaki "Aktarıcıyı Dağıt" iletişim kutusunda önerilen varsayılan worker proje adı. | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Cloudflare Workers aktarıcı seçeneğini Proxy Havuzu sekmesinden gizlemek için `false` olarak ayarlayın. | | `CLOUDFLARED_BIN` | otomatik algılama | `src/lib/cloudflaredTunnel.ts` | `cloudflared` ikili dosyasına özel yol. | | `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tünel aktarım protokolü: `http2` (varsayılan), `quic` veya `auto`. | | `CLOUDFLARED_CONFIG` | _(ayarlanmamış)_ | `src/lib/cloudflaredTunnel.ts` | Yerel olarak yönetilen cloudflared `config.yml` dosyasının yolu (`tunnel:`, `credentials-file:`, `ingress:` içeren). Ayarlandığında OmniRoute, geçici bir hızlı tünel yerine `tunnel --config run` (adlandırılmış tünel) komutunu çalıştırır. | | `CLOUDFLARED_HOSTNAME` | _(yapılandırma ingress'inden)_ | `src/lib/cloudflaredTunnel.ts` | `publicUrl`/`apiUrl` olarak bildirilen, adlandırılmış tünelin genel ana bilgisayar adı (ör. `ai.example.com`) için geçersiz kılma değeri. Ayarlanmadığında, yapılandırmadaki ilk `ingress` ana bilgisayar adından okunur. | | `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Proxy havuzu aktarıcı dağıtıcısı tarafından kullanılan Deno Deploy REST API taban adresini geçersiz kılar (#4643 / 9router#1437). | | `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Proxy havuzundaki "Aktarıcıyı Dağıt" penceresinde önerilen varsayılan Deno Deploy uygulama adı. | | `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Deno Deploy aktarıcı seçeneğini Proxy Havuzu sekmesinde gizlemek için `false` olarak ayarlayın. | | `SEARCH_CACHE_TTL_MS` | `300000` (5 dk.) | `open-sse/services/searchCache.ts` | Arama API'si (Perplexity, Brave vb.) yanıt önbelleğinin TTL değeri. | | `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Yalnızca Claude Code aktarıcıları için deneysel CC uyumlu sağlayıcı arayüzünü gösterir. | | `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Gömülü 9router örneğinin dinlediği ana bilgisayarı geçersiz kılar. | | `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Gömülü 9router örneğinin dinlediği bağlantı noktasını geçersiz kılar. | | `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Gömülü hizmet WebSocket proxy'si için bağlanma ana bilgisayarı (varsayılan olarak yalnızca geri döngü). | | `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Gömülü hizmet WebSocket proxy sunucusunun bağlantı noktası. | | `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI köprü ana bilgisayarı (eski entegrasyon). | | `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI köprü bağlantı noktası. | | `CLIPROXYAPI_API_KEY` | _(boş)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | `cliproxyapi_api_key` ayarı bulunmadığında veri düzlemi anahtarı için geri dönüş değeri. | | `CLIPROXYAPI_MANAGEMENT_KEY` | _(boş)_ | `src/lib/services/cliproxyAccountHealth.ts` | Harici olarak yönetilen bir CLIProxyAPI örneğinden hesap sağlığı okumaları için yönetim anahtarı. | | `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI yapılandırma dizini. | | `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose'un `cliproxyapi` yardımcı konteynerini yayımladığı ana bilgisayar arayüzü (#12578). Veri birimi sağlayıcı OAuth/API kimlik bilgilerini barındırır ve sabitlenmiş imajda ortam tabanlı veri düzlemi `api-keys` geçersiz kılma desteği bulunmaz (yalnızca bağlanmış bir `config.yaml` bulunur); bu nedenle `0.0.0.0`, kimlik bilgileri içeren bir hizmeti tüm LAN'a açar. | | `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Gömülü Mux (coder/mux) aracı orkestrasyon daemon'unun dinlediği portu geçersiz kılar (her zaman 127.0.0.1). | | `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Gömülü open-wa (WhatsApp Web otomasyonu) daemon'unun dinlediği portu geçersiz kılar (her zaman 127.0.0.1). | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario gömülü hizmetinin bağlama/bağlantı ana makinesi (varsayılan olarak yalnızca geri döngü). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario gömülü hizmet portu. | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario gömülü hizmetinin bağlama/bağlantı ana makinesi (varsayılan olarak yalnızca geri döngü). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario gömülü hizmet portu. | | `LOCAL_HOSTNAMES` | _(boş)_ | `open-sse/config/providerRegistry.ts` | "Yerel" olarak değerlendirilecek, virgülle ayrılmış ek ana makine adları (Docker hizmet adları vb.). | `ENABLE_CC_COMPATIBLE_PROVIDER` yalnızca Claude Code istemcilerini özel olarak kabul eden üçüncü taraf aktarıcılar içindir. OmniRoute, bu aktarıcıların istekleri kabul etmesi için istekleri yeniden yazar. Yalnızca Claude Code CLI kullanmak istiyorsanız veya bu aktarıcıların ne olduğundan emin değilseniz, bunu devre dışı bırakın ve bunun yerine Anthropic uyumlu normal bir sağlayıcı ekleyin. --- ## 21. Proxy Sağlığı | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | `src/lib/proxyHealth.ts` | Hızlı başarısızlık sağlık denetimi zaman aşımı. | | `PROXY_LATENCY_WINDOW_HOURS` | `3` | `src/lib/db/proxies.ts` | Gecikme için optimize edilmiş havuz stratejisinde aday proxy'lerin ortalama gecikmesini hesaplamak için kullanılan zaman aralığı (saat). | | `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | `src/lib/proxyHealth.ts` | Sağlık denetimi sonucu önbelleğinin TTL değeri. | | `PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS` | `2000` | `src/lib/proxyHealth.ts` | Başarısız proxy sağlık yoklamaları için önbellek TTL değeri. Yüksek eşzamanlılık altında geçici proxy zaman aşımlarının gerçekten çalışmayan proxy'ler için hızlı başarısızlığı devre dışı bırakmadan hızlıca yeniden denenebilmesi amacıyla bu değeri `PROXY_HEALTH_CACHE_TTL_MS` değerinden daha kısa tutun. | | `PROXY_HEALTH_ENABLED` | `true` | `src/lib/proxyHealth/scheduler.ts` | Kayıtlı proxy'leri düzenli aralıklarla yoklayan arka plan proxy sağlık zamanlayıcısını devre dışı bırakmak için `false` olarak ayarlayın. | | `PROXY_HEALTH_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Arka plan sağlık zamanlayıcısının ms cinsinden tarama aralığı (en az `60000`). | | `PROXY_HEALTH_RELAY_INTERVAL_MS` | `21600000` | `src/lib/proxyHealth/relayCadence.ts` | Yoklamaları ücretlendirilen bir sunucusuz yalıtılmış ortamı uyandıran edge-relay proxy'leri (`deno`/`vercel`/`cloudflare`) için ms cinsinden yoklama aralığı (minimum `60000`). | | `PROXY_HEALTH_RECOVERY_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Arka plan kurtarma geçişinin ms cinsinden aralığı: daha önce sağlıksız olarak işaretlenen proxy'lerin, kurtarılan bir proxy'nin yeniden başlatma olmadan rotasyona dönmesini sağlamak için ne sıklıkta yeniden yoklanacağı. `60000` değerinin altındaki değerlerde varsayılan kullanılır. | | `PROXY_HEALTH_TEST_URL` | `https://httpbin.org/ip` | `src/lib/proxyHealth/probeTarget.ts` | Zamanlayıcı ve `/api/settings/proxies/auto-test` uç noktası tarafından kullanılan erişilebilirlik yoklama hedefi. Herkese açık varsayılanı kullanmamak için bunu dahili/kendi barındırdığınız bir URL'ye yönlendirin. | | `PROXY_HEALTH_TEST_CONCURRENCY` | `10` | `src/lib/proxyHealth/probeTarget.ts` | Zamanlayıcı ve `/api/settings/proxies/auto-test` uç noktası tarafından paylaşılan, her toplu işlemde aynı anda başlatılan yoklama sayısı. En az 1, en fazla 50 olacak şekilde sınırlandırılır. | | `PROXY_HEALTH_TEST_STAGGER_MS` | `100` | `src/lib/proxyHealth/probeTarget.ts` | Bir toplu işlemdeki iki yoklamanın gönderimi arasındaki ms cinsinden gecikme. Bu olmadan tüm toplu işlem aynı anda gönderilir ve paylaşılan bir çıkış IP'si, hız sınırlaması uygulanan bir hedefi tetikleyebilir. Aralığı devre dışı bırakmak için `0` olarak ayarlayın; üst sınır 5000'dir. | | `PROXY_HEALTH_USE_PROVIDER_TARGET` | `true` | `src/lib/proxyHealth/providerProbeTarget.ts` | Bir proxy'ye atanmış sağlayıcının gerçek ana makinesinin yoklanmasını (`GET /models`, API anahtarı olmadan) durdurmak ve bunun yerine her zaman `PROXY_HEALTH_TEST_URL` kullanmak için "false" olarak ayarlayın. | | `PROXY_HEALTH_AUTO_DEACTIVATE` | `false` | `src/lib/proxyHealth/statusPolicy.ts` | `false` (varsayılan) olduğunda, otomatik erişilebilirlik yoklamaları (zamanlayıcı + `/api/settings/proxies/auto-test` "Tümünü Test Et" düğmesi) **salt okunurdur** ve bir proxy'nin durumunu asla değiştirmez — etkin/devre dışı durumunu yalnızca operatör belirler; böylece güvenilmez bir yoklama, atanmış bir proxy'yi kullanılamaz durumda bırakamaz (#6246). Eski test et ve ayarla davranışını geri yüklemek için `true` olarak ayarlayın. | | `FLUSH_EMPTY_RETRY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | İsteğe bağlı özellik bayrağı (bkz. [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); kontrol panelindeki DB geçersiz kılma ayarı önceliklidir). `true` (veya `1`, `yes`), boş bir 200 ya da boş içerikli bir 502 döndürmek yerine boş çevrilmiş akış turlarını normal kimlik bilgisi yolu üzerinden yeniden dener (`STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX` değerine kadar). | | `PROXY_POOL_EGRESS_OBSERVATION` | `false` | `src/shared/utils/featureFlags.ts` | İsteğe bağlı özellik bayrağı (bkz. [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); kontrol panelindeki DB geçersiz kılma ayarı önceliklidir). `true` (veya `1`, `yes`), kontrol panelinde bir proxy havuzunun altında salt okunur havuz çıkış gözlemini gösterir (proxy günlüğünden alınan son 24 saatteki farklı çıkış IP'leri, bağlantılar ve tek bir IP'nin arkasında en sık görülenler). Yönlendirme için hiçbir zaman kullanılmaz. | | `PROXY_OPERATOR_EGRESS_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | İsteğe bağlı etkinleştirme özellik bayrağı ([FEATURE_FLAGS.md](./FEATURE_FLAGS.md) dosyasına bakın; kontrol panelindeki DB geçersiz kılma ayarı önceliklidir). `true` (veya `1`, `yes`), operatör tarafından gönderilen, tarih bilgisi içeren ve havuz üyesi başına gözlemlenmiş adresleri kabul eder; görüntüleme ve havuz sıralaması için bunları günlük okumasıyla birleştirir. | | `PROXY_OPERATOR_EGRESS_WINDOW_HOURS` | `24` | `src/lib/db/proxyOperatorEgress.ts` | Operatör tarafından gönderilen çıkış satırları için saat cinsinden gözlem penceresi (her okumada okunur; yeniden başlatma gerekmez). `1..168` aralığıyla sınırlıdır; aralık dışındaki, sayısal olmayan veya boş değerlerde hiçbir zaman hata fırlatılmaz, süreç genelinde tek bir uyarı verilerek 24 değerine geri dönülür. | | `PROXY_AUTO_REMOVE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Zamanlayıcının art arda tekrarlanan hatalardan sonra proxy'leri otomatik olarak kaldırmasına izin vermek için `true` olarak ayarlayın. | | `PROXY_AUTO_REMOVE_AFTER` | `3` | `src/lib/proxyHealth/scheduler.ts` | Zamanlayıcının bir proxy'yi otomatik olarak kaldırmasından önceki art arda hata sayısı (`PROXY_AUTO_REMOVE=true` olduğunda). | | `PROXY_AUTO_DISABLE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Zamanlayıcının art arda tekrarlanan hatalardan sonra bir proxy'yi kaldırmak yerine geçici olarak devre dışı bırakmasına (durum `dead`, hiçbir zaman silinmez) izin vermek için `true` olarak ayarlayın. `PROXY_AUTO_REMOVE` için tahribatsız bir alternatiftir: proxy, havuz/rotasyon çözümlemesinden hemen çıkar (kapsam-havuz çözümlemesinin kullandığı etkin durum filtresi zaten onu hariç tutar) ve yoklamaları yeniden geçmeye başladığında otomatik olarak yeniden etkinleştirilir. `PROXY_AUTO_REMOVE_AFTER` eşiğini paylaşır. Her iki bayrak da `true` ise `PROXY_AUTO_REMOVE` önceliklidir. | | `PROXY_HEALTH_PASSIVE_SKIP` | `false` | `src/lib/proxyHealth/scheduler.ts` | İsteğe bağlı pasif atlama: `true` olduğunda zamanlayıcı, yakın tarihli üretim trafiğinin zaten çalıştığını kanıtladığı bir uç nokta için canlı yoklamayı atlar (pencere içinde en az bir başarı ve proxy'ye atfedilen hiçbir hata bulunmaması, tam olarak bir sağlayıcının gözlemlenmiş olması). Varsayılan olarak kapalıdır: her proxy yoklanır. | | `PROXY_PASSIVE_WINDOW_MS` | `300000` | `src/lib/proxyHealth/passiveVerdict.ts` | Pasif atlamanın incelediği üretim trafiği penceresinin ms cinsinden süresi (`60000..599999` ile sınırlıdır). Yakın tarihli bir hatanın etkisinin azalmak yerine baskın olması için 10 dakikalık tarama aralığından daha kısadır. | | `OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Proxy erişilebilirliği ön kontrolleri başarısız olduğunda OAuth ve sağlayıcı doğrulama akışlarının sabitlenmiş bir proxy'yi atlayarak doğrudan bağlanmasına izin verir. Geçerli öncelik sırası: Özellik Bayrakları DB geçersiz kılma ayarı > ortam değişkeni > varsayılan. | | `RATE_LIMIT_MAX_WAIT_MS` | `30000` (30 sn) | `src/lib/resilience/settings.ts` | Varsayılan **kuyrukta bekleme** bütçesi: bir isteğin reddedilmeden önce bir sağlayıcı yuvası için ve kuyrukta ne kadar bekleyebileceğini belirler; reddedilen istek hiçbir zaman yukarı akışa ulaşmaz. İş çalışmaya başladığında zamanlayıcı temizlenir — yürütme süresi ayrıca `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` ile sınırlandırılır. Ortam değişkeni yalnızca varsayılanı belirler: kalıcı `resilienceSettings.requestQueue.maxWaitMs` ve ardından bağlantı başına `rateLimitOverrides.maxWaitMs`, sırasıyla buna göre öncelikli olur. | | `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` | `600000` (10 dk) | `open-sse/services/rateLimitManager.ts` | Kabul edilen bir isteğin, hız sınırı rezervasyonu sona ermeden önce yürütmede kalabileceği azami süre — artımlı olmayan ağ geçitlerinde yavaş fetch başlangıcının zaman aşımına uğramaması için kuyrukta bekleme bütçesinden ayrılmıştır (#12027). | | `RATE_LIMIT_MAX_QUEUE_DEPTH` | `0` (devre dışı) | `open-sse/services/rateLimitManager.ts` | Kuyruğa kabul sınırı: bu sayıda istek zaten kuyruktaysa 429 `queue_full` ile reddeder. `0` = sınırsız (varsayılan). | | `RATE_LIMIT_AUTO_ENABLE` | _(ayarlanmamış)_ | `open-sse/services/rateLimitManager.ts` | Kalıcı Dashboard ayarından bağımsız olarak hız sınırı güvenlik ağının otomatik etkinleştirilmesini zorla açar/kapatır. Zorla açmak için `true`/`1`/`on`, zorla kapatmak için `false`/`0`/`off` değerlerini kabul eder. | | `PROVIDER_COOLDOWN_ENABLED` | _(ayarlanmamış → kapalı)_ | `open-sse/services/providerCooldownTracker.ts` | İstekler arasında genel sağlayıcı/bağlantı bekleme süresi takibini isteğe bağlı olarak etkinleştirir. Varsayılan olarak KAPALIDIR (Connection Cooldown / Provider Circuit Breaker ile çakışır). Etkinleştirmek için `true`/`1`/`on` değerlerini kabul eder. | | `PROVIDER_COOLDOWN_MIN_MS` | `5000` | `open-sse/services/providerCooldownTracker.ts` | Başarısız bir sağlayıcı/bağlantı yeniden denenmeden önce uygulanacak minimum bekleme süresi (ms). Ardışık hatalarla üstel olarak ölçeklenir. Yalnızca `PROVIDER_COOLDOWN_ENABLED` etkinken kullanılır. | | `PROVIDER_COOLDOWN_MAX_MS` | `300000` (5 dk) | `open-sse/services/providerCooldownTracker.ts` | Başarısız bir sağlayıcı/bağlantı ne olursa olsun yeniden denenmeden önce uygulanacak azami bekleme süresi (ms) sınırı. Yalnızca `PROVIDER_COOLDOWN_ENABLED` etkinken kullanılır. | | `STREAM_RECOVERY_ENABLED` | _(ayarlanmamış → kapalı)_ | `src/lib/resilience/settings.ts` (başlangıç değeri) → `open-sse/services/streamRecovery.ts` (mantık) | **Nedir:** kesintiye uğramış yukarı akış akışlarının şeffaf biçimde kurtarılması (free-claude-code portu). Açılış SSE penceresini `STREAM_RECOVERY.HOLDBACK_MS` (750 ms) değerine kadar tutar; böylece _commit öncesi_ bir kesinti — istemciye herhangi bir bayt ulaşmadan önce gerçekleşen kesinti — yeniden açılır ve görünmez biçimde yeniden denenir. **Ne zaman etkinleştirilmeli:** akış başlangıcında sık sık 0 baytla kesilen kararsız/yukarı akışlarda; her akışta ilk token'a kadar geçen süreye 750 ms'ye kadar ek süre eklenmesini göze alamıyorsanız KAPALI bırakın. `true`/`1`/`on` değerlerini kabul eder. Kalıcı Resilience ayarının başlangıç değerini belirler; ayarlandıktan sonra Dashboard ayarı önceliklidir. | | `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(ayarlanmamış → kapalı)_ | `src/lib/resilience/settings.ts` (başlatma) → `open-sse/services/streamRecovery.ts` (mantık) | **Nedir:** akış ortasında devam ettirme (Aşama 4.4) — _commit sonrası_ bir kesilmenin ardından (baytlar istemciye zaten ulaşmışsa), kısmi metni assistant ön dolgusu olarak kullanarak yeniden istekte bulunur ve eksik son eki birleştirir. Yalnızca düz metin OpenAI uyumlu akışlarda çalışır; devam eden bir tool call varken asla tetiklenmez. **Ne zaman etkinleştirilmeli:** yanıtın ortasında kesilen uzun üretimlerde ve kurtarılan devam kısmının token token yerine tek seferde gelmesini kabul ettiğinizde. `STREAM_RECOVERY_ENABLED` ayarından bağımsızdır (farklı risk profili). `true`/`1`/`on` değerlerini kabul eder. | | `STREAM_THROUGHPUT_WATCHDOG_ENABLED` | _(ayarlanmamış → kapalı)_ | `src/lib/resilience/settings.ts` → `open-sse/services/throughputWatchdog.ts` | İsteğe bağlı etkin akış faydalı çıktı izleyicisi. Parça göndermeye devam eden ancak yapılandırılmış assistant çıktı hızının altında kalan akışları algılar; heartbeat'ler, kullanım olayları, boş deltalar ve tool/reasoning aşamaları ilerleme gibi görünmez. Boşta kalma ve kesin süre sınırı zaman aşımlarından ayrıdır. | | `STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Verim değerlendirmesinden önceki ek süre; 0–600000 ms ile sınırlıdır. | | `STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Kayan faydalı çıktı penceresi; 1000–600000 ms ile sınırlıdır; iptalden önce bir tam pencere gerekir. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND` | `4` | `src/lib/resilience/settings/normalize.ts` | Minimum UTF-8 assistant çıktı bayt hızı (ihtiyatlı token göstergesi); 1–1000000 ile sınırlıdır. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES` | `1` | `src/lib/resilience/settings/normalize.ts` | Ölçülebilir kabul edilen sıfırdan büyük minimum faydalı çıktı örneği; 1–1000000 bayt ile sınırlıdır. | | `HEALTHCHECK_STAGGER_MS` | `3000` | `src/lib/tokenHealthCheck.ts` | Başlangıçta sağlayıcı token sağlık kontrolleri arasındaki kademelendirme aralığı (ms). | | `HEALTHCHECK_JITTER_MIN_MS` | `500` | `src/lib/tokenHealthCheck.ts` | Ani yüklenmeyi önlemek için sağlayıcı token sağlık kontrolleri arasında `HEALTHCHECK_STAGGER_MS` değerine eklenen minimum rastgele sapma (ms) (Sorun #1220). | | `HEALTHCHECK_JITTER_MAX_MS` | `5000` | `src/lib/tokenHealthCheck.ts` | Ani yüklenmeyi önlemek için sağlayıcı token sağlık kontrolleri arasında `HEALTHCHECK_STAGGER_MS` değerine eklenen maksimum rastgele sapma (ms) (Sorun #1220). | | `HEALTHCHECK_BATCH_SIZE` | `20` | `src/lib/tokenHealthCheck.ts` | Başlangıç token sağlık kontrolü taramasının eşzamanlı kontrol parti boyutu; daha büyük değerler daha fazla bağlantıyı paralel olarak kontrol ederken daha küçük değerler ani yükü azaltır (Sorun #7875, #7719'un regresyonu). | | `REQUEST_RETRY` | `2` | `src/sse/services/cooldownAwareRetry.ts` | Hata istemciye döndürülmeden önce model kapsamlı bekleme yanıtlarında yapılacak otomatik yeniden deneme sayısı. | | `MAX_RETRY_INTERVAL_SEC` | `30` | `src/sse/services/cooldownAwareRetry.ts` | Bekleme süresi yeniden denemeleri arasındaki maksimum geri çekilme aralığı (saniye). Üst kaynaktaki `Retry-After` değerinden bağımsız olarak bu değerle sınırlandırılır. | | `HEADROOM_URL` | `http://localhost:8787` | `src/lib/headroom/detect.ts` | Headroom token tasarrufu proxy URL'si. Pano yaşam döngüsü (`api/headroom/*`), varsayılan olarak geri döngü arabiriminde yerel bir `headroom-ai` CLI başlatır; yalnızca harici bir Docker yardımcı kapsayıcı proxy'sine yönlendirmek için geçersiz kılın. | ### Akış kurtarma ayar sabitleri Kurtarma bekletme davranışı, referans amacıyla burada gösterilen `open-sse/config/constants.ts` (`STREAM_RECOVERY`) içindeki sabit kodlanmış değerlerle ayarlanır — bunları değiştirmek bir ortam değişkeni değil, kod düzenlemesi gerektirir: - `STREAM_RECOVERY.HOLDBACK_MS = 750` — istemciye herhangi bir bayt gönderilmeden önce erken bir kesintinin yeniden denenebilmesi için başlangıç SSE penceresinin ne kadar süre tutulacağı. - `STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536` — tutulan pencere için kesin üst sınır; zamanlayıcıdan bağımsız olarak bu kadar bayt birikir birikmez gönderilir (boşaltma + doğrudan aktarım). - `STREAM_RECOVERY.EARLY_RETRY_MAX = 4` — bekletilen veri henüz gönderilmemişken üst kaynak akışının şeffaf biçimde yeniden açılabileceği maksimum sayı. > **Sağlayıcı başına kayan pencere hız sınırı (ortam değişkeni yok):** FCC'den taşınan > sağlayıcı başına kayan pencere hız sınırı _yedek mekanizması_ kodda mevcuttur > (`open-sse/services/providerDefaultRateLimit.ts`, > `open-sse/services/rateLimitManager.ts` üzerinden bağlanır), ancak **boş bir varsayılan eşlemeyle** > sunulur ve günümüzde **operatör ortam değişkeni yoktur** — yalnızca bir test kancası / > kod düzenlemesi aracılığıyla etkinleştirilir. Kasıtlı olarak yukarıdaki tabloda listelenmemiştir. > Bir ayara sahip olan `\(token, IP\)` başına aktarım sınırlayıcısı ise > `RELAY_IP_PER_MINUTE`'tır (§3 Ağ ve Bağlantı Noktaları). --- ## 22. Hata Ayıklama > [!CAUTION] > Bu değişkenler **ayrıntılı çıktı** üretir ve hassas verilerin sızmasına neden olabilir. **Üretim ortamında asla etkinleştirmeyin.** | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CURSOR_DEBUG` | _(ayarlanmamış)_ | `open-sse/executors/cursor.ts` | Ayrıntılı Cursor yürütücü günlüklerini (kodu çözülmüş SSE parçaları vb.) etkinleştirmek için `1` olarak ayarlayın. | | `CURSOR_STREAM_DEBUG` | _(ayarlanmamış)_ | `open-sse/executors/cursor.ts` | `CURSOR_DEBUG` için geriye dönük uyumlu takma ad. | | `CURSOR_DUMP_FILE` | _(ayarlanmamış)_ | `open-sse/executors/cursor.ts` | `CURSOR_DEBUG=1` olduğunda ham, kodu çözülmüş Cursor parçalarını alan isteğe bağlı dosya yolu. | | `CURSOR_STREAM_TIMEOUT_MS` | `300000` | `open-sse/executors/cursor.ts` | Cursor yürütücüsü için akış boşta kalma zaman aşımı (ms). | | `CURSOR_KV_GRACE_MS` | `2000` | `open-sse/executors/cursor.ts` | Baytlar arabellekte kalmaya devam ederken composer `kv_after_text` yumuşak sonlandırıcısından sonraki ek süre aralığı (ms) — sondaki bir `exec_mcp` araç çağrısına kendi çerçevesini tamamlaması için süre tanır. | | `CURSOR_TOOL_DIRECTIVE` | etkin (`!== "0"`) | `open-sse/executors/cursor.ts` | composer-2.5'in araç çağrılarını güvenilir şekilde gerçekleştirmesini sağlayan araç yürütme yönergesi. Devre dışı bırakmak için `0` olarak ayarlayın. | | `OMNIROUTE_SYSTEM_INSTRUCTION_APPEND` | _(ayarlanmamış)_ | `open-sse/translator/request/claude-to-openai.ts`, `open-sse/translator/response/openai-to-claude.ts` | Çeviriden SONRA sistem mesajına eklenen, operatör tarafından tanımlanmış sistem istemi metni (çeviri sonrası ekleme); codex/Responses ve `/v1/messages` yollarına ulaşır. Ayrıca, yansıtılan sistem önsözü bloklarından kaldırılan yönerge öneki olarak kullanılır. Devre dışı bırakmak için ayarlamadan bırakın. | | `OMNIROUTE_STRIP_SYSTEM_PREAMBLE` | `0` (kapalı) | `open-sse/translator/response/openai-to-claude.ts`, `open-sse/utils/directivePreambleStripper.ts` | Bir openai→claude akışının başından yansıtılan sistem istemi önsözü bloklarını kaldırmak için `1` olarak ayarlayın. Varsayılan olarak kapalıdır — sezgisel yöntemler İngilizce düzyazıya göre şekillendirilmiştir ve yanıt yükünü değiştirir; dolayısıyla meşru olarak böyle bir bölümle başlayan bir yanıt bu bölümü kaybeder. | | `CURSOR_IMAGE_FETCH_TIMEOUT_MS` | `15000` | `open-sse/utils/cursorImages.ts` | Uzak `image_url` görsel girdisi için görüntü başına getirme zaman aşımı (ms). | | `CURSOR_STATE_DB_PATH` | _(aranır)_ | `open-sse/utils/cursorVersionDetector.ts` | IDE sürümü algılaması için kullanılan Cursor IDE durum veritabanı aramasını geçersiz kılar. | | `CURSOR_AGENT_CLI_VERSION` | _(algıla / sabitle)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Agent Run üzerindeki `x-cursor-client-version: cli-…` için Agent CLI derleme kimliği (`YYYY.MM.DD-`). | | `CURSOR_AGENT_BIN` | _(ayarlanmamış)_ | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Görüntü oluşturmak için kullanılan Cursor Agent ikili dosyasının yolu. Ayarlanmamışsa işleyici önce `providerSpecificData.agentBin`, ardından PATH kullanır. | | `CURSOR_IMG_TIMEOUT_MS` | `210000` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Cursor Agent görüntü işleri için görüntü başına duvar saati süresi (ms). | | `CURSOR_IMG_MAX_CONCURRENT` | `2` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Cursor görüntü işleri için paylaşımlı kullanım eşzamanlılık sınırı. | | `CURSOR_IMG_MODEL` | istek / `auto` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Görüntü işleri için Cursor CLI `--model` değerini geçersiz kılar. | | `UC_IMAGE_POLL_INTERVAL_MS` | `2000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC (uncensored.com) görüntü oluşturma sonucu yoklama sıklığı (ms). | | `UC_IMAGE_POLL_TIMEOUT_MS` | `60000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC görüntü oluşturma sonucu yoklaması için duvar saati zaman aşımı (ms). | | `UC_VIDEO_POLL_INTERVAL_MS` | `3000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC (uncensored.com) video oluşturma sonucu yoklama sıklığı (ms). | | `UC_VIDEO_POLL_TIMEOUT_MS` | `300000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC video oluşturma sonucu yoklaması için duvar saati zaman aşımı (ms). | | `CURSOR_DATA_DIR` | _(aranır)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Cursor Agent CLI veri dizinini (`…/versions/`) geçersiz kılar; resmi agent'ın kullandığı değişkenle aynıdır. | | `CURSOR_TOKEN` | _(ayarlanmamış)_ | `scripts/ad-hoc/cursor-tap.cjs` | Geliştirici araçları tarafından kullanılan doğrudan Cursor bearer token'ı. | | `OMNIROUTE_LOG_REQUEST_SHAPE` | devre dışı (`"1"` ile isteğe bağlı) | `src/app/api/v1/chat/completions/route.ts` | `"1"` ayarlandığında büyük sohbet yükleri için içerik türü/uzunluk işaretçilerini günlüğe kaydeder. Günlük gürültüsünü azaltmak için varsayılan olarak kapalıdır. | | `DEBUG_RESPONSES_SSE_TO_JSON` | _(ayarlanmamış)_ | `open-sse/handlers/responseTranslator.ts` | Responses API SSE→JSON çeviri ayrıntılarını günlüğe kaydetmek için `true` olarak ayarlayın. | | `DEBUG_CLAUDE_NONSTREAM` | _(ayarlanmamış)_ | `open-sse/handlers/responseTranslator.ts` | Claude yanıtı çeviri yolunda boş `textContent` parçalarını göstermek için `true` olarak ayarlayın (yalnızca hata ayıklama). | | `NEXT_PUBLIC_OMNIROUTE_E2E_MODE` | _(ayarlanmamış)_ | E2E test düzeneği | E2E test modunu (gevşetilmiş kimlik doğrulama, test kancaları) etkinleştirmek için `true` olarak ayarlayın. | --- ## 23. GitHub Entegrasyonu Kullanıcıların sorunları doğrudan Dashboard üzerinden bildirmesine olanak tanıyın. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | --------------------- | ---------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `GITHUB_ISSUES_REPO` | _(ayarlanmamış)_ | `src/app/api/v1/issues/report/route.ts` | `owner/repo` biçimindeki depo. | | `GITHUB_ISSUES_TOKEN` | _(ayarlanmamış)_ | `src/app/api/v1/issues/report/route.ts` | `issues:write` kapsamına sahip GitHub Kişisel Erişim Token'ı. | | `GITHUB_TOKEN` | _(ayarlanmamış)_ | sorun triyajı / bulut aracısı yardımcıları | `GITHUB_ISSUES_TOKEN` için yedek olarak kullanılan ve `src/lib/cloudAgent/*` içindeki bulut aracısı yardımcıları tarafından tüketilen genel GitHub erişim token'ı. | --- ## Dağıtım Senaryoları Aktarım arka ucu SRE rehberliği (`ts`/`bifrost`/`auto` davranışı, 9router ile CLIProxyAPI konumlandırması ve yüksek aktarım hızlı yedek stratejisi) için [Aktarım Arka Ucu Stratejisi](/docs/reference/RELAY_BACKEND_STRATEGY.md) belgesine bakın. ### Minimum Yerel Geliştirme ```bash JWT_SECRET=$(openssl rand -base64 48) API_KEY_SECRET=$(openssl rand -hex 32) INITIAL_PASSWORD=dev123 PORT=20128 NODE_ENV=development ``` ### Docker Üretim Ortamı ```bash JWT_SECRET= API_KEY_SECRET= INITIAL_PASSWORD= STORAGE_ENCRYPTION_KEY= 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 ``` ### İnternet Erişimi Olmayan Ortam / CI ```bash 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 ``` ### Ters Proxy'li VPS (nginx + Cloudflare) ```bash JWT_SECRET= API_KEY_SECRET= STORAGE_ENCRYPTION_KEY= PORT=20128 AUTH_COOKIE_SECURE=true REQUIRE_API_KEY=true NEXT_PUBLIC_BASE_URL=https://omniroute.example.com BASE_URL=http://127.0.0.1:20128 CORS_ORIGIN=https://omniroute.example.com ENABLE_TLS_FINGERPRINT=true CLI_COMPAT_ALL=1 ``` --- ## 24. Skills Korumalı Alanı (v3.8.0+) Skills çatısı (`src/lib/skills/`), kullanıcı tanımlı otomasyonları korumalı bir ortamda çalıştırdığında uygulanan sınırlar ve güvenlik ayarları. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | --------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `SKILLS_SANDBOX_TIMEOUT_MS` | `10000` (10 sn) | `src/lib/skills/builtins.ts` | Korumalı alandaki skill kodu için yürütme başına geçen gerçek süre zaman aşımı. Kesin sınırdır; daha uzun süren işlemler sonlandırılır. | | `SKILLS_EXECUTION_TIMEOUT_MS` | _(`SKILLS_SANDBOX_TIMEOUT_MS` değerine geri döner)_ | `src/lib/skills/` | Üst düzey skill orkestrasyonu zaman aşımı. Çok adımlı iş akışlarına izin vermek için `SKILLS_SANDBOX_TIMEOUT_MS` değerinden daha yüksek ayarlayın. | | `SKILLS_MAX_FILE_BYTES` | `1048576` (1 MB) | `src/lib/skills/builtins.ts` | Bir skill'in korumalı alandaki herhangi bir dosyadan okuyabileceği maksimum bayt sayısı. | | `SKILLS_MAX_HTTP_RESPONSE_BYTES` | `256000` (250 KB) | `src/lib/skills/builtins.ts` | Bir skill içindeki herhangi bir HTTP yanıtından yakalanabilecek maksimum bayt sayısı. | | `SKILLS_MAX_SANDBOX_OUTPUT_CHARS` | `100000` | `src/lib/skills/builtins.ts` | Bir korumalı alan çağrısından döndürülen stdout/stderr karakterleri için kesin üst sınır. | | `SKILLS_SANDBOX_NETWORK_ENABLED` | `false` | `src/lib/skills/builtins.ts` | Korumalı alan içinden giden ağ bağlantılarına izin vermek için `1`/`true` olarak ayarlayın. Güvenlik için varsayılan olarak **yalıtılmıştır**. | | `SKILLS_ALLOWED_SANDBOX_IMAGES` | _(boş)_ | `src/lib/skills/builtins.ts` | Korumalı alan yürütmesine izin verilen kapsayıcı imajlarının virgülle ayrılmış izin listesi. Boş olması, yalnızca yerleşik varsayılanın kullanılacağı anlamına gelir. | | `SKILLS_SANDBOX_DOCKER_IMAGE` | _(yerleşik varsayılan)_ | `src/lib/skills/` | Docker destekli bir korumalı alan başlatılırken kullanılan kapsayıcı imajı. Özel ve güçlendirilmiş bir temel imajı sabitlemek için geçersiz kılın. | | `SKILLS_SANDBOX_RUNTIME` | `auto` | `src/lib/skills/sandbox.ts`, `src/lib/skills/containerProvider.ts` | Skill korumalı alanı için kapsayıcı çalışma zamanı: `auto` \| `docker` \| `apple` \| `wsl` \| `orbstack` \| `podman`. `auto`, ana makine işletim sistemine göre yüklü en iyi çalışma zamanını seçer (macOS'ta Apple Container/OrbStack, Windows'ta WSL Container, Linux'ta Podman); bunlar yoksa Docker'a geri döner. | > [!CAUTION] > `SKILLS_SANDBOX_NETWORK_ENABLED=true` ayarını etkinleştirmek, rastgele skill kodu için bir çıkış yolu açar. Paylaşımlı dağıtımlarda bunu `OUTBOUND_SSRF_GUARD_ENABLED=true` ve katı bir `CORS_ORIGIN`/proxy politikasıyla birlikte kullanın. --- ## 25. Sağlayıcı Kotaları, Tüneller, Yedeklemeler ve Çeşitli Çalışma Zamanı Ayarları Sağlayıcı kota uç noktaları, ağ tünelleri (Tailscale, Ngrok, MITM hata ayıklama proxy'si), 1Proxy çıkış havuzu, veritabanı yedeklemeleri ve yürütücü katmanı ya da betikler tarafından başvurulan özellik bazlı küçük geçersiz kılmalar. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REDIS_URL` | `redis://localhost:6379` | `src/shared/utils/rateLimiter.ts` | Hız sınırlayıcı arka ucu için Redis bağlantı dizesi. | | `ALIBABA_CODING_PLAN_HOST` | _(üretim ana makinesi)_ | `open-sse/services/bailianQuotaFetcher.ts` | Alibaba Bailian coding-plan kotalarını almak için kullanılan ana makineyi geçersiz kılar. | | `ALIBABA_CODING_PLAN_QUOTA_URL` | ana makineden türetilir | `open-sse/services/bailianQuotaFetcher.ts` | Alibaba Bailian için tam kota URL'sini geçersiz kılar. | | `QWEN_CLOUD_COOKIE` | _(ayarlanmamış)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Qwen Cloud / Model Studio kişisel Token Plan kota ağ geçidi için konsol oturum çerezi (çıkarım API anahtarı bunu okuyamaz). `home.qwencloud.com` üzerinde Faturalandırma › Abonelik (F12 › Ağ) bölümündeki herhangi bir `api.json` çağrısından `login_qwencloud_ticket` içeren `Cookie` istek üst bilgisinin tamamını kopyalayın. Hassastır ve oturuma özgüdür; bağlantı başına `qwenCloudCookie` Kontrol Paneli alanını tercih edin. | | `QWEN_CLOUD_SEC_TOKEN` | _(ayarlanmamış)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Token Plan konsol ağ geçidi için manuel `sec_token` geçersiz kılma değeri. Hassastır; ayarlanmadığında alıcı, çerezi kullanarak oturum açılmış kontrol paneli HTML'sinden bu değeri çözümler. | | `QWEN_TOKEN_PLAN_HOST` | `https://cs-data.qwencloud.com` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Kişisel Token Plan kota alıcısı için ağ geçidi ana makinesi geçersiz kılma değeri (ör. Model Studio konsolu için `bailian-singapore-cs.alibabacloud.com`). | | `QWEN_TOKEN_PLAN_DASHBOARD_URL` | `https://home.qwencloud.com/` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Oturum açılmış HTML'den `sec_token` değerini çözümlemek için kullanılan kontrol paneli URL'si. | | `XIAOMI_MIMO_CONSOLE_COOKIE` | _(ayarlanmamış)_ | `open-sse/services/usage/xiaomi-mimo.ts` | Xiaomi MiMo Token Plan kota API'si (`platform.xiaomimimo.com/api/v1/tokenPlan/usage` + `tokenPlan/detail` — çıkarım API anahtarı bunu okuyamaz) için konsol oturum çerezi. Token Plan sayfasında (F12 › Ağ) `platform.xiaomimimo.com` adresine yapılan herhangi bir istekten `api-platform_serviceToken` ve `userId` içeren `Cookie` istek üst bilgisinin tamamını kopyalayın. Hassastır ve oturuma özgüdür; bağlantı başına `xiaomiMimoConsoleCookie` Kontrol Paneli alanını tercih edin. | | `XIAOMI_MIMO_MONTHLY_TOKEN_LIMIT` | `4100000000` | `open-sse/services/usage/xiaomi-mimo.ts` | Konsol çerezi yapılandırılmadığında kullanılan ve OmniRoute tarafından izlenen Xiaomi MiMo yedek seçeneği için aylık bütçe (Credits). Varsayılan değer, Lite katmanının 4.1B değeridir; bunu planın Credits değerine ayarlayın (Standard 11B / Pro 38B / Max 82B). Bağlantı başına `providerSpecificData.monthlyTokenLimit` geçersiz kılma değeri, bu ortam değişkenine göre önceliklidir. | | `ALIBABA_FREE_TIER_VISION_FE_PATH` | `/costing-balance/free-quota-image-video` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ücretsiz katman görüntü/medya kotasını almak için konsol ön uç yolu geçersiz kılma değeri. | | `ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH` | `/costing-balance/free-quota-multimodal` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ücretsiz katman çok modlu kotasını almak için konsol ön uç yolu geçersiz kılma değeri. | | `ALIBABA_FREE_TIER_AUDIO_FE_PATH` | `/costing-balance/free-quota-audio` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ücretsiz katman ses kotasını almak için konsol ön uç yolu geçersiz kılma değeri. | | `ALIBABA_FREE_TIER_ALLOWLIST_PATH` | _(ayarlanmamış)_ | `open-sse/services/alibabaFreeTierAllowlist.ts` | Yerleşik Alibaba ücretsiz katman metin modeli izin listesi için yerel bir JSON geçersiz kılma dosyasına yönelik isteğe bağlı yol. Önce `$DATA_DIR/alibaba-free-tier-allowlist.json`, ardından `config/alibaba-free-tier-allowlist.json` kullanılır. | | `CONTEXT_RESERVE_TOKENS` | `1024` | `open-sse/services/contextManager.ts` | İstem bütçeleri hesaplanırken tamamlama çıktısı için ayrılan token'lar. | | `CONTEXT_KEEP_LATEST_IMAGES` | `2` | `open-sse/services/contextManager.ts` | Bağlam penceresine sığdırmak amacıyla eski satır içi görüntüler budanırken en yeni görüntülerden kaçının korunacağı (#8560). | | `MODEL_ALIAS_COMPAT_ENABLED` | etkin | `open-sse/services/model.ts` | Eski istemciler tarafından kullanılan eski model takma adı uyumluluk katmanını açıp kapatır. | | `OMNIROUTE_EMERGENCY_FALLBACK` | etkin | `open-sse/services/emergencyFallback.ts` | Başarısız istekleri ücretsiz `nvidia`/`openai/gpt-oss-120b` modeline yeniden yönlendiren acil durum bütçe tükenmesi yedek mekanizmasını devre dışı bırakmak için `false` (veya `0`) olarak ayarlayın. Geçerli öncelik sırası: Özellik Bayrakları DB geçersiz kılma değeri > ortam değişkeni > varsayılan; kullanılamıyorsa hizmet ham ortam değişkeni değerine geri döner. | | `COMMAND_CODE_CALLBACK_PORT` | _(ayarlanmamış)_ | `src/app/api/providers/command-code/auth/shared.ts` | Command Code CLI yardımcısından gelen OAuth tarzı geri çağrılar için kullanılan yerel bağlantı noktası. | | `COMMAND_CODE_VERSION` | `0.33.2` | `open-sse/executors/commandCode.ts` | Command Code üst hizmetine `x-command-code-version` başlığı olarak gönderilen değer. CLI sürümünü yükseltmek için geçersiz kılın. | | `COMMANDCODE_API_URL` | `https://api.commandcode.ai` | `open-sse/services/usage/command-code.ts` | Akıllı telefon kota alıcı telemetrisi tarafından kullanılan Command Code kullanım/kota üst hizmetinin temel URL'si. Kendi barındırdığınız/alternatif bir Command Code API'si için geçersiz kılın. | | `MITM_LOCAL_PORT` | `443` | `src/mitm/server.cjs` | MITM hata ayıklama proxy'sinin yerel bağlama portu. | | `MITM_DISABLE_TLS_VERIFY` | `0` | `src/mitm/server.cjs` | Üst hizmet TLS doğrulamasını devre dışı bırakmak için `1` olarak ayarlayın (yalnızca geliştirme için). | | `MITM_IDLE_TIMEOUT_MS` | `60000` | `src/mitm/socketTimeouts.ts`, `src/mitm/server.cjs` | Proxy üzerinden yönlendirilen bağlantılar için boşta soket zaman aşımı (ms); bu süreyi aşan boşta soketler, yarı açık tünellerin sızmasını önlemek için kapatılır. | | `BRIDGE_PORT` | `20129` | `bin/antigravity-bridge.mjs` | Antigravity MITM köprüsünün dinlediği port. | | `ROUTER_URL` | `http://127.0.0.1:20128/v1/antigravity` | `bin/antigravity-bridge.mjs` | Köprünün Antigravity trafiğini ilettiği yönlendirici uç noktası. | | `CERT_DIR` | `/mitm` | `bin/antigravity-bridge.mjs` | Köprünün TLS materyalini okuduğu dizini geçersiz kılar. Sertifika modeli, AgentBridge sunucusunda olduğu gibi seçilir: eski bir yaprak sertifika kurulumu için `server.crt`/`server.key`; aksi takdirde `ca.crt`/`ca.key` (kök CA, engellenen her ana makine için bir yaprak sertifika; `MITM_ROOT_CA_ENABLED=true` ile zorunlu kılınır). Etkin modelin dosyaları eksikse köprü başlangıçta kapanır. | | `MITM_VERBOSE` | `1` | `src/mitm/server.cjs`, `src/mitm/_internal/bypass.cjs` | Yönlendirme kararı günlük ayrıntı düzeyi: `0` günlükleri susturur, daha yüksek değerler daha fazla atlama/yönlendirme kararını günlüğe kaydeder. | | `MITM_ROOT_CA_ENABLED` | `false` | `src/mitm/manager.ts` | Kök CA + ana makine başına yaprak sertifika modelini (#6684) etkinleştirmek için `true` olarak ayarlayın. Yeni kurulumlar bunu otomatik olarak alır; önceden güvenilen eski bir yaprak sertifikaya sahip kurulumlar, özellikle etkinleştirilmediği sürece eski sabit SAN sertifikasını korur. | | `MITM_CERT_MODE` | `legacy` | `src/mitm/manager.ts`, `src/mitm/server.cjs` | Başlatılan proxy işlemi için MITM yöneticisi TARAFINDAN ayarlanır (`root-ca` \| `legacy`) — sertifika geçişi kararını yansıtır; elle ayarlanması amaçlanmamıştır. | | `OMNIROUTE_NO_SUDO` | `0` | `src/mitm/systemCommands.ts` | MITM sertifika güveni komutlarının başındaki `sudo` ifadesini kaldırmak için `1` (doğru değer) olarak ayarlayın — operatörün CA'ya manuel olarak güvendiği root'suz / kullanıcı ad alanlı dağıtımlar için (ör. Node'un extra-CA-certs mekanizması aracılığıyla). | | `SKIP_ANTIGRAVITY_DNS` | _(ayarlanmamış)_ | `src/mitm/dns/provision.ts` | Antigravity proxy ana bilgisayar adları için `/etc/hosts` DNS girdilerinin sağlanmasını tamamen atlamak üzere `true` olarak ayarlayın — sudo/root erişimi olmayan konteynerler için. | | `OMNIROUTE_SKIP_DNS_WRITE` | _(ayarlanmamış)_ | `src/mitm/dns/dnsConfig.ts` | DNS girdilerini eklerken/kaldırırken hosts dosyasına yazmayı atlamak için `1` olarak ayarlayın — korumalı alan veya salt okunur test ortamları için. | | `OMNIROUTE_SKIP_SYSTEM_TRUST` | `0` | `src/mitm/cert/install.ts`, `src/mitm/tproxy/caTrust.ts` | Yalnızca test/CI koruması: sertifika güveni yükleme/kaldırma işlemlerini etkisiz hâle getirmek ve böylece test paketinin işletim sistemi güven deposunu hiçbir zaman değiştirmemesini sağlamak için `1` olarak ayarlayın. Test kurulumu ve CI iş akışları tarafından otomatik olarak ayarlanır. | | `CHANGELOG_BASE_REF` | _(otomatik)_ | `scripts/check/check-changelog-integrity.mjs` | CHANGELOG silinmesini önleme denetimi için açık temel referans (varsayılan olarak CI'daki PR temel dalı veya en yüksek `release/v*` kullanılır). | | `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | Arka plandaki ücretsiz proxy havuzu otomatik eşitleme zamanlayıcısını etkinleştirmek için `true` olarak ayarlayın. İsteğe bağlıdır ve varsayılan olarak kapalıdır. | | `FREE_PROXY_AUTO_SYNC_INTERVAL_MS` | `1800000` | `src/lib/freeProxyProviders/scheduler.ts` | Milisaniye cinsinden otomatik eşitleme aralığı (varsayılan 30 dk.). | | `FREE_PROXY_1PROXY_ENABLED` | `true` | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy ücretsiz proxy kaynağını etkinleştirin. Devre dışı bırakmak için `false` olarak ayarlayın. | | `FREE_PROXY_1PROXY_API_URL` | _(oneproxy.ts dosyasına bakın)_ | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy API URL geçersiz kılma değeri. | | `FREE_PROXY_1PROXY_MAX` | `500` | `src/lib/freeProxyProviders/oneproxy.ts` | Her eşitlemede 1proxy'den getirilen maksimum proxy sayısı. | | `FREE_PROXY_1PROXY_MIN_QUALITY` | `50` | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy içe aktarımları için minimum kalite puanı eşiği. | | `FREE_PROXY_PROXIFLY_ENABLED` | `true` | `src/lib/freeProxyProviders/proxifly.ts` | Proxifly ücretsiz proxy kaynağını etkinleştirir. Devre dışı bırakmak için `false` olarak ayarlayın. | | `FREE_PROXY_PROXIFLY_QUANTITY` | `100` | `src/lib/freeProxyProviders/proxifly.ts` | Her Proxifly senkronizasyonunda getirilecek proxy sayısı. | | `FREE_PROXY_PROXIFLY_ANONYMITY` | `elite` | `src/lib/freeProxyProviders/proxifly.ts` | Proxifly için anonimlik düzeyi filtresi (`elite`, `anonymous`, `transparent`). | | `FREE_PROXY_IPLOCATE_ENABLED` | `false` | `src/lib/freeProxyProviders/iplocate.ts` | IPLocate ücretsiz proxy kaynağını etkinleştirir. Yalnızca açıkça etkinleştirildiğinde kullanılır. | | `FREE_PROXY_IPLOCATE_BASE_URL` | `https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols` | `src/lib/freeProxyProviders/iplocate.ts` | IPLocate proxy listesi temel URL geçersiz kılma değeri. | | `FREE_PROXY_WEBSHARE_ENABLED` | `true` | `src/lib/freeProxyProviders/webshare.ts` | Webshare proxy havuzu kaynağını etkinleştirir. Devre dışı bırakmak için `false` olarak ayarlayın; ayrıca `FREE_PROXY_WEBSHARE_API_KEY` değerinin ayarlanmış olması gerekir. | | `FREE_PROXY_WEBSHARE_API_KEY` | _(yok)_ | `src/lib/freeProxyProviders/webshare.ts` | Webshare hesabı API belirteci (`Authorization: Token `). Zorunludur — bu değer olmadan sağlayıcı devre dışı kalır. | | `FREE_PROXY_WEBSHARE_API_URL` | `https://proxy.webshare.io/api/v2/proxy/list/` | `src/lib/freeProxyProviders/webshare.ts` | Webshare proxy listesi API URL geçersiz kılma değeri. | | `FREE_PROXY_WEBSHARE_MAX` | `500` | `src/lib/freeProxyProviders/webshare.ts` | Her Webshare senkronizasyonunda içe aktarılacak maksimum proxy sayısı. | | `NEXT_PUBLIC_VERCEL_RELAY_ENABLED` | `true` | `src/app/(dashboard)/…/ProxyPoolTab.tsx` | Proxy Pool sekmesindeki Deploy Vercel Relay düğmesini gösterir/gizler. | | `VERCEL_API_BASE` | `https://api.vercel.com` | `src/app/api/settings/proxy/vercel-deploy/route.ts` | Vercel API temel URL'sini geçersiz kılar (test için). | | `NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/…/VercelRelayModal.tsx` | Vercel Relay dağıtım penceresinde önceden doldurulan varsayılan proje adı. | | `TAILSCALE_BIN` | _(otomatik algılanır)_ | `src/lib/tailscaleTunnel.ts` | `tailscale` ikili dosyasının açık yolu. | | `TAILSCALED_BIN` | _(otomatik algılanır)_ | `src/lib/tailscaleTunnel.ts` | `tailscaled` daemon ikili dosyasının açık yolu. | | `TAILSCALE_AUTHKEY` | _(ayarlanmamış)_ | `src/lib/tailscaleTunnel.ts` | Etkileşimsiz / headless `tailscale up` için önceden paylaşılmış Tailscale kimlik doğrulama anahtarı (`--auth-key=` aracılığıyla iletilir). Ayarlanmadığında oturum açma, etkileşimli tarayıcı kimlik doğrulama URL'sine geri döner. | | `NGROK_AUTHTOKEN` | _(ayarlanmamış)_ | `src/lib/ngrokTunnel.ts` | Giden ngrok tünellerinin kimliğini doğrular. | | `DB_BACKUP_MAX_FILES` | `20` | `src/lib/db/backup.ts` | Manuel/zamanlanmış yedekleme temizliği tarafından tutulan maksimum SQLite yedekleme dosyası sayısı. Geçiş anlık görüntüleri içerik adreslidir ve aynı DB durumu için yeniden kullanılır; eş zamanlı geçiş penceresi içinde budanmazlar. Ayarlar → Veritabanı yedekleme saklama bölümünde kaydedilen değeri geçersiz kılar. | | `DB_BACKUP_RETENTION_DAYS` | `0` | `src/lib/db/backup.ts` | Manuel/zamanlanmış yedekleme temizliği tarafından tutulan maksimum yaş (gün). `0`, yaşa dayalı budamayı devre dışı bırakır. Geçiş anlık görüntüleri eş zamanlı geçiş penceresi içinde budanmaz. Ayarlar → Veritabanı yedekleme saklama bölümünde kaydedilen değeri geçersiz kılar. | | `OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS` | `30000` | `src/lib/jobs/backupScheduleJob.ts` | `backup-schedule.json` dosyasını çalıştıran sunucu tarafı işin tetiklenme aralığı (ms). 1 dakikalık cron ayrıntı düzeyinin oldukça altında kalmalıdır; `5000` altındaki veya ayrıştırılamayan değerler için `30000` kullanılır. | | `CONTAINER_HOST` | `docker` | `scripts/check-permissions.sh` | Giriş noktası izin denetimi için konteyner çalışma zamanı ipucu. Herhangi bir Podman topolojisi için `podman` olarak ayarlayın. Konteyner, motorun yerel olduğunu mu yoksa Podman Machine üzerinden mi erişildiğini belirleyemediğinden uyarı, topolojiden bağımsız kalır ve `contrib/podman/README.md` dosyasına yönlendirir. | | `QUOTA_STORE_DRIVER` | `sqlite` | `src/lib/quota/storeFactory.ts` | Kota paylaşımı tüketim deposu arka ucu: `sqlite` (varsayılan) veya `redis`. | | `QUOTA_STORE_REDIS_URL` | _(ayarlanmamış)_ | `src/lib/quota/storeFactory.ts` | `QUOTA_STORE_DRIVER=redis` olduğunda kullanılan Redis bağlantı dizesi (ör. `redis://localhost:6379`). | | `QUOTA_SATURATION_THRESHOLD` | `0.5` | `src/lib/quota/enforce.ts` | Havuz doygunluk oranı (0..1); bu değerde veya üzerinde havuz katı moda geçer (ödünç alma yoktur). | | `QUOTA_SOFT_DEPRIORITIZE_FACTOR` | `0.7` | `open-sse/services/combo.ts` | Esnek kota politikası bir hedefin önceliğini düşürdüğünde hedefe uygulanan puan çarpanı (0..1). | | `STATUS_SOFT_DEPRIORITIZE_FACTOR` | `0.5` | `open-sse/services/combo/autoStrategy.ts` | Ön kontrol kota kesintisi KAPALIYKEN (#4540), otomatik birleşim puanlamasında kotası tükenmiş bir sağlayıcıya (`credits_exhausted`/`rate_limited`) uygulanan puan çarpanı (0..1). | | `QUOTA_CONSUMPTION_RETENTION_DAYS` | `14` | `src/lib/db/quotaConsumption.ts` | GC (`gcQuotaConsumption`) öncesinde `quota_consumption` dilimleri için saklama süresi (gün). | | `QUOTA_PREFLIGHT_CUTOFF_ENABLED` | `false` | `src/lib/resilience/settings.ts` | İsteğe bağlı (varsayılan olarak KAPALI): düşük kotalı adayları puanlama öncesinde eleyen otomatik yönlendirme katı kota kesintisini etkinleştirir. | | `OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL` | `false` | `open-sse/services/autoCombo/virtualFactory.ts` | İsteğe bağlı (varsayılan olarak KAPALI): bir `auto/:` filtresi bağlı hiçbir adayla eşleşmediğinde, boş bir havuz döndürmek yerine tam (filtrelenmemiş) havuza geri dönmeye yönelik eski davranışı geri yükler. Varsayılanın KAPALI olması, `:free` ifadesinin "yalnızca ücretsiz katman" anlamına gelmesini sağlar. | | `OMNIROUTE_CHAOS_MAX_PANEL` | `5` | `open-sse/services/autoCombo/virtualFactory.ts` | `auto/*:chaos` yayın varyantı için panel boyutu üst sınırı (1–10 aralığına sıkıştırılır) — bir istek, en fazla bu sayıdaki farklı sağlayıcıya ait modele dağıtılır. | | `OMNIROUTE_CHAOS_MIN_PANEL` | _(motor varsayılanı)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Kaos yayın işleyicisine iletilen minimum panel boyutu ayarı; ayarlanmaması durumunda motor varsayılanı korunur. | | `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(motor varsayılanı)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Tüm kaos paneli dağıtımı için kesin zaman aşımı (ms); ayarlanmaması durumunda motor varsayılanı korunur. | | `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | grok-web haftalık kotasını almak için kullanılan Grok CLI `auth.json` dosyasının yolu; testler veya standart dışı bir CLI kurulumu için geçersiz kılınabilir. | | `AGENTBRIDGE_UPSTREAM_CA_CERT` | _(ayarlanmamış)_ | `src/mitm/manager.ts` | AgentBridge üst akış TLS bağlantıları için güvenilen ek CA sertifikası (PEM). | | `INSPECTOR_BUFFER_SIZE` | `1000` | `src/mitm/inspector/buffer.ts` | Traffic Inspector halka arabelleğinde tutulan yakalanmış isteklerin azami sayısı. | | `INSPECTOR_MAX_BODY_KB` | `1024` | `src/mitm/inspector/buffer.ts` | Kesilmeden önce yakalanabilecek azami istek/yanıt gövdesi boyutu (KB). | | `INSPECTOR_HTTP_PROXY_PORT` | `8080` | `src/mitm/inspector/httpProxyServer.ts` | Traffic Inspector HTTP proxy'si için yerel bağlantı noktası. | | `INSPECTOR_HTTP_PROXY_AUTOSTART` | `false` | `src/mitm/inspector/httpProxyServer.ts` | Inspector HTTP proxy'sini başlangıçta otomatik olarak başlatır. | | `INSPECTOR_LLM_HOSTS_EXTRA` | _(ayarlanmamış)_ | `src/lib/inspector/captureState.ts` | Yakalama amacıyla LLM uç noktaları olarak değerlendirilen ek ana bilgisayar adları (virgülle ayrılmış). | | `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | Yakalanan trafikteki gizli bilgileri (kimlik doğrulama üstbilgileri / API anahtarları) maskeler. | | `INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES` | `30` | `src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts` | Sistem proxy korumasının işletim sistemi proxy ayarlarını otomatik olarak geri almasına kadar geçen dakika sayısı. | | `INSPECTOR_INTERNAL_INGEST_TOKEN` | _(otomatik)_ | `src/app/api/tools/traffic-inspector/internal/ingest/route.ts` | Denetleyiciye yönelik dahili yakalama verisi alımının kimliğini doğrulayan belirteç. | | `PLAYGROUND_COMPARE_MAX_COLUMNS` | `4` | `src/app/(dashboard)/dashboard/playground/` | Playground karşılaştırma modundaki yan yana sütunların maksimum sayısı. | | `PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL` | _(ayarlanmamış)_ | `src/app/(dashboard)/dashboard/playground/` | Playground'daki 'istemi iyileştir' eylemi için varsayılan model (ayarlanmadığında etkin modele geri döner). | | `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost yardımcı proxy'si için ana devre dışı bırakma anahtarı. `0` olarak ayarlandığında rota, `X-Bifrost-Killswitch` üstbilgisiyle 503 döndürür ve operatör TS yoluna yönlendirilir. Yeniden dağıtım yapmadan yardımcı hizmeti devre dışı bırakmak için kullanın (1. seviye yönlendirici olayı, anahtar rotasyonu). | | `BIFROST_BASE_URL` | _(ayarlanmamış)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Ayarlandığında Bifrost yardımcı proxy rotası, `/v1/chat/completions` trafiğini TS aktarma işleyicisi yerine bu Go ağ geçidine iletir. Ayarlanmamış → geri dönüşlü 503. Sondaki eğik çizgi kaldırılır. | | `BIFROST_PORT` | `8080` | `src/lib/services/bootstrap.ts` | OmniRoute, Bifrost yardımcı hizmetinin yaşam döngüsünü yönettiğinde, denetlenen gömülü Bifrost hizmetinin bağlandığı bağlantı noktası (`127.0.0.1:`). Varsayılan değer `8080`'dir. | | `LLMLINGUA_PORT` | `20135` | `src/lib/services/bootstrap.ts` | Denetlenen LLMLingua sıkıştırma hizmetinin bağlandığı bağlantı noktası (`127.0.0.1:`). Varsayılan değer `20135`'tir. | | `LLMLINGUA_BASE_URL` | `http://127.0.0.1:20135` | `open-sse/services/compression/engines/llmlingua/index.ts` | Yerel LLMLingua HTTP sıkıştırma mikro hizmeti arka plan programının temel URL'si. Varsayılan değer `http://127.0.0.1:20135`'tir. | | `LLMLINGUA_MODEL` | `atjsh/llmlingua-2-js-tinybert-meetingbank` | `src/lib/services/installers/llmlingua.ts` | Denetlenen LLMLingua yardımcı hizmetinin yüklediği Hugging Face model kimliği (alt süreç ortamına aktarılır). | | `BIFROST_API_KEY` | _(ayarlanmamış)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost ağ geçidi için API anahtarı (`Authorization: Bearer ...` olarak gönderilir). Ayarlanmamışsa rota, isteğin geçerli bir OmniRoute API anahtarı taşımasını bekler; bu anahtar yalnızca ağ geçidi tarafındaki kimlik doğrulaması içindir. | | `BIFROST_STREAMING_ENABLED` | `true` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | `true` olduğunda Bifrost sidecar rotası, yanıtları TS akış yürütücüsü yerine ağ geçidi üzerinden SSE aracılığıyla geri aktarır. Ağ geçidi üzerinden akışsız JSON yanıtlarını zorlamak için `0` olarak ayarlayın. | | `BIFROST_TIMEOUT_MS` | `30000` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost ağ geçidine proxy uygulanırken istek başına zaman aşımı (ms). Zaman aşımında rota, `X-Bifrost-Fallback` üstbilgisi aracılığıyla TS aktarma yolunu döndürür. | | `OMNIROUTE_BIFROST_KEY` | _(ayarlanmamış)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | `BIFROST_API_KEY` için takma ad (ortamı `OMNIROUTE_*` aracılığıyla okuyan betikler tarafından kullanılır). Her ikisi de ayarlandığında `BIFROST_API_KEY` önceliklidir. | | `OMNIROUTE_RELAY_BACKEND` | `ts` / `auto` | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | `/api/v1/relay/chat/completions` için aktarma arka ucu: `ts \| bifrost \| auto`. `ts` = TypeScript aktarıcısı (Bifrost yapılandırılmadığında varsayılan); `auto`, `BIFROST_BASE_URL` ayarlanmış ve `BIFROST_ENABLED` ≠ `0` olduğunda Bifrost'u seçer ve sidecar'a erişilemiyorsa otomatik olarak TS'ye geri döner; `bifrost`, Bifrost'u zorunlu kılar (katı, geri dönüş yok). Kimlik doğrulama/hız sınırlama/enjeksiyon koruması/izin listesi her zaman önce Next rotasında çalışır. Yanıtlar `X-Routing-Backend` / `X-Routing-Fallback` / `X-Routing-Fallback-Reason` üstbilgilerini taşır. | | `RELAY_ROUTING_BACKEND` | _(ayarlanmamış)_ | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | `OMNIROUTE_RELAY_BACKEND` için kabul edilen takma ad (aynı `ts \| bifrost \| auto` değerleri). Her ikisi de ayarlandığında `OMNIROUTE_RELAY_BACKEND` önceliklidir. | | `OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS` | `5000` | `src/app/api/v1/relay/chat/completions/bifrostCooldown.ts` | `auto` modunda bir Bifrost sidecar geçişi başarısız olduktan sonra, aktarıcının sidecar'ı yeniden denemesinden önceki bekleme süresi (ms); bekleme süresi boyunca doğrudan TS yoluna yönlendirir, ardından tekrar yoklama yapar. `0` devre dışı bırakır. Yalnızca `OMNIROUTE_RELAY_BACKEND=auto` olduğunda geçerlidir. | | `OMNIROUTE_TLS_CERT` | _(ayarlanmamış)_ | `bin/cli/commands/serve.mjs` | `omniroute serve` komutunu HTTPS üzerinden sunmak için PEM TLS sertifikasının yolu (`--tls-cert` ile eşdeğer). `OMNIROUTE_TLS_KEY` ile birlikte kullanılmalıdır; bağımsız sunucu daha sonra aynı dinleyicide TLS'yi sonlandırır (`wss://` değişiklik olmadan çalışır). Ayarlanmamış → düz HTTP. Sertifika/anahtardan yalnızca birinin sağlanması veya okunamayan bir yol belirtilmesi bir uyarı kaydeder ve HTTP'de kalır. | | `OMNIROUTE_TLS_KEY` | _(ayarlanmamış)_ | `bin/cli/commands/serve.mjs` | `omniroute serve` HTTPS için PEM TLS özel anahtarının yolu (`--tls-key` ile eşdeğer). `OMNIROUTE_TLS_CERT` ile birlikte kullanılmalıdır. Bkz. `OMNIROUTE_TLS_CERT`. | | `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED` | `0` | `src/lib/security/localEndpoints.ts` | `/api/local/*` rotaları için ana anahtar. Ayarlanmamış veya `0` olduğunda tüm `/api/local/*` rotaları üretim ortamında 503 döndürür. Redis başlatıcısını ve benzeri tek tıklamalı yerel hizmet başlatıcılarını etkinleştirmek için loopback olmayan dağıtımlarda `1` olmalıdır. `isLocalOnlyPath()` rota koruması sınıflandırmasıyla birlikte ek güvenlik sağlar (`src/server/authz/routeGuard.ts` içindeki `LOCAL_ONLY_API_PREFIXES`). | | `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(ayarlanmamış)_ | `src/lib/security/localEndpoints.ts` | Loopback üzerinde olmayan `/api/local/*` çağıranları (ör. masaüstü uygulaması) için Bearer belirteci. Ayarlandığında, loopback olmayan IP'lerden gelen istekler `Authorization: Bearer ` taşımalıdır. Loopback olmayan dağıtımlarda `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1` olduğunda zorunludur. | | `OMNIROUTE_REDIS_CONTAINER_NAME` | `omniroute-redis` | `bin/cli/commands/redis.mjs` | Tek tıklamalı Redis başlatıcısının (`omniroute redis up`) konteyner adı. Hem CLI hem de `RedisLauncherPanel` GUI tarafından kullanılır. | | `OMNIROUTE_REDIS_HOST_PORT` | `6379` | `bin/cli/commands/redis.mjs` | Tek tıklamalı Redis başlatıcısının ana makine portu. Ana makine zaten 6379 portunu kullanıyorsa değiştirin. Konteynerin dahili portu 6379 olarak kalır. | | `OMNIROUTE_REDIS_BIND_HOST` | `127.0.0.1` | `bin/cli/commands/redis.mjs` | Tek tıklamalı Redis başlatıcısının yayın yaptığı ana makine arayüzü. Başlatıcı, Redis'i parola OLMADAN başlatır; dolayısıyla `0.0.0.0` adresine bağlamak, LAN'ınızdaki her ana makineye kimlik doğrulamasız bir Redis sunar — bunu yalnızca örnekte kendiniz bir parola da ayarlarsanız genişletin. | | `REDIS_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose'un Redis yardımcı hizmetini yayınladığı ana makine arayüzü (#9286). Compose Redis, `requirepass` olmadan çalışır; uygulama konteynerleri buna compose ağı (`redis:6379`) üzerinden erişir — yayınlanan port yalnızca ana makine tarafındaki araçlar içindir. `0.0.0.0`, kimlik doğrulamasız bir Redis'i tüm LAN'a açar. | | `REDIS_PORT` | `6379` | `docker-compose.yml` | Compose Redis yardımcı hizmetinin ana makine portu. | | `APP_BIND_HOST` | `127.0.0.1` | `docker-compose.yml`, `docker-compose.prod.yml` | docker-compose'un uygulamanın kendi pano/API/canlı-WS portlarını yayınladığı ana makine arayüzü (#12568). `.env.example` dosyasının varsayılanı olarak `REQUIRE_API_KEY=false` sunulduğunda, `0.0.0.0` anonim `/v1` LLM proxy'sini tüm LAN/WAN'a açar — bunu yalnızca `REQUIRE_API_KEY=true` ayarlandıktan veya öndeki bir ters proxy kendi kimlik doğrulamasını zorunlu kıldıktan sonra genişletin. | | `QDRANT_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose'un Qdrant bellek yardımcı hizmetini yayınladığı ana makine arayüzü (#12578). `REDIS_BIND_HOST` ile aynı LAN'a açılma gerekçesi geçerlidir. | | `BIFROST_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose'un Bifrost yönlendirici yardımcı hizmetini yayınladığı ana makine arayüzü (#12578). `REDIS_BIND_HOST` ile aynı LAN'a açılma gerekçesi geçerlidir. | | `REDIS_KEY_PREFIX` | `omniroute:` | `src/shared/utils/rateLimiter.ts` | Her OmniRoute Redis anahtarına (hız sınırlayıcı, kimlik doğrulama önbelleği, kota deposu, ısınma devre kesicisi) uygulanan ad alanı öneki. Redis örneği başka uygulamalarla paylaşıldığında anahtar çakışmalarını önler (#11042). | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | _(ayarlanmamış — mekanizma devre dışı)_ | `src/lib/api/internalServiceAuth.ts` | Kimliği koruyan dahili REST geçişleri için paylaşılan sır (#9260): Diğer yerel OmniRoute rotalarını çağıran OmniRoute bileşenleri, özgün çağıranın kimliğinin korunması için bunu `x-omniroute-internal-service-token` olarak gönderir. `timingSafeEqual` ile karşılaştırılır. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | _(ayarlanmamış)_ | `src/lib/api/internalServiceAuth.ts` | Dahili hizmet belirtecinin gizli dosya varyantı: kırpılmış içeriği belirteç olan bir dosyanın yolu. Yalnızca satır içi değişken ayarlanmamışsa dikkate alınır. | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | `src/lib/catalog/openrouterProviderStats.ts` | Pano sağlayıcıları listesini OpenRouter haftalık sıralama istatistikleriyle zenginleştirir (#9324). Varsayılan olarak açıktır; arka plan getirme işlemini tamamen atlamak için `false` olarak ayarlayın (engellemez, hiçbir zaman kritik hataya neden olmaz). | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `86400000` (24 sa.) | `src/lib/catalog/openrouterProviderStats.ts` | OpenRouter sağlayıcı istatistikleri anlık görüntüsünün milisaniye cinsinden önbellek TTL değeri. | | `OMNIROUTE_REDIS_IMAGE` | `redis:7-alpine` | `bin/cli/commands/redis.mjs` | Tek tıklamalı Redis başlatıcısı tarafından kullanılan Redis imajı. Gerektiğinde `redis:8-alpine` veya özel bir kayıt defteri yansısı kullanmak için geçersiz kılın. | | `QDRANT_HOST` | `qdrant` | _(isteğe bağlı küme profili)_ | `--profile memory` etkinken Qdrant yardımcı konteynerinin ana makine adı. Varsayılan değer, ağ içindeki qdrant hizmet adına işaret eder; harici dağıtım için geçersiz kılın. Yalnızca kodda (`src/lib/memory/vectorStore.ts:108`) `qdrantEnabled` değeri `true` olduğunda kullanılır. | | `QDRANT_PORT` | `6333` | _(isteğe bağlı küme profili)_ | Qdrant yardımcı konteynerinin REST portu. | | `QDRANT_GRPC_PORT` | `6334` | _(isteğe bağlı küme profili)_ | Qdrant yardımcı konteynerinin gRPC portu. Akış işlemleri için REST yerine gRPC'yi tercih eden istemci kütüphaneleri tarafından kullanılır. | | `QDRANT_API_KEY` | _(ayarlanmamış)_ | _(isteğe bağlı küme profili)_ | Qdrant Cloud veya kimlik doğrulamalı şirket içi kurulum için isteğe bağlı API anahtarı. Boş → `api-key` üst bilgisi gönderilmez. | | `QDRANT_COLLECTION` | `omniroute-memory` | _(isteğe bağlı küme profili)_ | OmniRoute'un konuşma belleği gömmeleri için koleksiyon adı. İlk çalıştırmada `QDRANT_VECTOR_SIZE` boyutlarıyla oluşturulur. | | `QDRANT_EMBEDDING_MODEL` | `text-embedding-3-small` | _(isteğe bağlı küme profili)_ | Qdrant koleksiyonu meta verilerine kaydedilen varsayılan gömme modeli adı. Gerçek gömmeler, OmniRoute ayarlarındaki `embeddingModel` alanının işaret ettiği sağlayıcı tarafından oluşturulur. | | `QDRANT_VECTOR_SIZE` | `1536` | _(isteğe bağlı küme profili)_ | Gömme vektörü boyutu. Gömme işlemi için kullandığınız modelle eşleşmelidir (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768). | | `QDRANT_HNSW_EF_CONSTRUCT` | `128` | _(isteğe bağlı küme profili)_ | HNSW dizininin oluşturma sırasındaki doğruluğu. Daha yüksek değer = daha yavaş oluşturma, daha hızlı arama. | | `OMNIROUTE_ROTATION_ENABLED` | `true` | `open-sse/services/rotationConfig.ts` | Operatör tarafından yapılandırılabilen hesap rotasyonu için ana anahtar. `false` olduğunda, aşağıdaki `OMNIROUTE_ROTATE_*` sınıflarından hiçbiri hesap yedeklemesini tetiklemez (ana anahtarın kapalı olması, varsayılan olarak etkin 429/500/502 sınıflarını da engeller). Denetleyici bir ön ucun (ör. VibeProxy masaüstü uygulaması) kendi rotasyon kurallarını arka ucun hesap yedekleme motoruna yansıtmasını sağlar. | | `OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS` | `0` | `open-sse/services/rotationConfig.ts` | Üst akış açık bir sıfırlama ipucu vermediğinde hız sınırına takılan bir hesaba uygulanan bekleme süresi (saniye). `0` = sabit bir geçersiz kılma yerine motorun varsayılan bekleme süresini kullan. | | `OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET` | `true` | `open-sse/services/rotationConfig.ts` | Ön ucun "sıfırlama zamanı olmadan hız sınırına takılmış olarak etiketleme" tercihinin yansıması. | | `OMNIROUTE_ROTATE_ON_429` | `true` | `open-sse/services/rotationConfig.ts` | `429` hataları için durum bazında yedeklemeyi etkinleştirir. `false` olduğunda (`OMNIROUTE_ROTATION_ENABLED=true` iken), `429` artık hesap rotasyonunu tetiklemez ve bunun yerine istemciye döndürülür. | | `OMNIROUTE_ROTATE_429_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Hesap rotasyonu gerçekleştirilmeden önce `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` içinde oluşması gereken `429` hatalarının sayısı. `1` (varsayılan), geçmişteki davranışı koruyarak rotasyonu hemen gerçekleştirir. | | `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `429` hatalarının `OMNIROUTE_ROTATE_429_THRESHOLD` değerine ulaşmak üzere sayıldığı kayan pencere (saniye). | | `OMNIROUTE_ROTATE_ON_500` | `true` | `open-sse/services/rotationConfig.ts` | `5xx` sunucu hataları için durum bazında yedeklemeyi etkinleştirir (kendi sınıfına sahip olan `502` hariç). `false` olduğunda, bu hatalar artık hesap rotasyonunu tetiklemez. | | `OMNIROUTE_ROTATE_500_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Hesap rotasyonu gerçekleştirilmeden önce `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` içinde oluşması gereken `5xx` hatalarının sayısı. `1` (varsayılan), rotasyonu hemen gerçekleştirir. | | `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `5xx` hatalarının `OMNIROUTE_ROTATE_500_THRESHOLD` kapsamında sayıldığı kayan pencere (saniye). | | `OMNIROUTE_ROTATE_ON_502` | `true` | `open-sse/services/rotationConfig.ts` | `502` (hatalı ağ geçidi) hataları için durum bazlı yedek mekanizmasını etkinleştirir. `false` olduğunda, `502` hataları artık hesap rotasyonunu tetiklemez. | | `OMNIROUTE_ROTATE_502_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Hesap rotasyona alınmadan önce `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` içinde oluşması gereken `502` hatası sayısı. `1` (varsayılan), rotasyonu hemen gerçekleştirir. | | `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `502` hatalarının `OMNIROUTE_ROTATE_502_THRESHOLD` kapsamında sayıldığı kayan pencere (saniye). | | `OMNIROUTE_ROTATE_ON_400` | `false` | `open-sse/services/rotationConfig.ts` | İsteğe bağlıdır (varsayılan olarak KAPALI): `true` olduğunda, düz bir `400` (hatalı istek) de hesap rotasyonunu tetikler. Bu yalnızca ek bir davranıştır — bu bayraktan bağımsız olarak, hız sınırı/kota metni içeren bir `400` durumunda motorun mevcut yedek mekanizmasına geçme davranışını hiçbir zaman engellemez. | | `OMNIROUTE_ROTATE_400_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Hesap rotasyona alınmadan önce `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` içinde oluşması gereken `400` hatası sayısı (yalnızca `OMNIROUTE_ROTATE_ON_400=true` olduğunda dikkate alınır). | | `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `400` hatalarının `OMNIROUTE_ROTATE_400_THRESHOLD` kapsamında sayıldığı kayan pencere (saniye). | ### Claude Isınma Zamanlayıcısı Katılımı etkinleştirilmiş Anthropic OAuth bağlantıları için cron tarafından çalıştırılan ısınma mekanizması; böylece 5 saatlik hız sınırı penceresi, ilk gerçek istek yerine zamanlanmış basit bir istekle açılır (#8848). `OMNIROUTE_WARMUP_ENABLED` doğru bir değere sahip olmadığı **ve** bağlantı `settings.claudeWarmup.connections` içinde işaretlenmediği sürece zamanlayıcı kapalıdır; bağlantı listesinin boş olması, ortam değişkeni etkin olsa bile hiçbir bağlantının ısıtılmayacağı anlamına gelir. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------ | --------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_WARMUP_ENABLED` | _(ayarlanmamış → kapalı)_ | `src/lib/warmupScheduler.ts` | Isınma zamanlayıcısının ana anahtarı. `1`/`true`/`yes`/`on` değerlerini kabul eder (büyük/küçük harfe duyarsızdır, boşluklar kırpılır). Diğer değerlerde veya ayarlanmamışsa zamanlayıcı kapalı kalır. | | `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | Isınma tetiklemesi için beş alanlı cron ifadesi; ana makinenin saatinden bağımsız olarak `America/Los_Angeles` (Anthropic'in sıfırlama saat dilimi) üzerinden değerlendirilir. | | `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | Her tetiklemede paralel olarak kaç bağlantının ısıtılacağı. `1`-`10` aralığıyla sınırlandırılır; sayısal olmayan bir değer için `3` kullanılır. | | `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | Isınma isteği için kullanılan model. Yalnızca varsayılan model planınızda kullanılamıyorsa geçersiz kılın; yine de pencereyi açabilen en ucuz modeli seçin. | ### Tarayıcıyla Oturum Açma VNC Oturumları ve Veri Dizini Takma Adı Etkileşimli tarayıcıyla oturum açma kimlik bilgilerini yakalamak (`/api/vnc-session`) için kullanılan konteynerleştirilmiş Chromium+VNC'nin yanı sıra eski bir `DATA_DIR` takma adı. Bunların tümü isteğe bağlıdır — VNC varsayılanları, paketle birlikte gelen `omniroute-vnc-chromium:local` imajını hedefler ve yalnızca özel bir konteyner imajı, bağlantı noktaları veya yaşam döngüsü ayarlamaları için geçersiz kılınır. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Chromium+VNC oturum açma konteynerinin Docker imaj etiketi. `docker/vnc-browser/chromium` imajını derleyin veya bunu özel bir imaja yönlendirin. | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | VNC konteynerini başlatmak için kullanılan konteyner çalışma zamanı ikili dosyası (ör. `podman` olarak ayarlayın). | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | Konteyner içinde kullanıma açılan VNC/noVNC bağlantı noktası. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Konteyner içindeki Chrome DevTools Protocol bağlantı noktası. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Konteyner içindeki Chromium profil dizini yolu. | | `OMNIROUTE_VNC_PROFILE_DIR` | `$HOME/.omniroute/browser-login-profiles` | `src/lib/vncSession/manifest.ts` | Kalıcı tarayıcıyla oturum açma profillerini barındıran ana makine dizini. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` (10 dk) | `src/lib/vncSession/manifest.ts` | Etkin olmayan bir VNC oturumu sonlandırılmadan önceki boşta kalma zaman aşımı (ms). | | `OMNIROUTE_VNC_MAX_MS` | `1800000` (30 dk) | `src/lib/vncSession/manifest.ts` | Tek bir VNC oturumunun ömrü için kesin üst sınır (ms). | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Maksimum eşzamanlı VNC oturumu sayısı. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Konteynerleştirilmiş tarayıcının CDP'ye hazır hâle gelmesini bekleme zaman aşımı (ms). | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Oturum açma tamamlandıktan sonra yakalanan oturumun/çerezlerin alınması için zaman aşımı (ms). | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | `--remote-debugging-port=9222 --no-first-run --no-default-browser-check` | `src/lib/vncSession/manifest.ts` | Konteynerleştirilmiş Chromium'a iletilen ek komut satırı seçenekleri. | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | VNC oturum açma konteynerinin, kardeş konteynerlerin CDP köprü bağlantı noktasına erişememesi için varsayılan köprü yerine katıldığı özel Docker ağı (#12571). | | `VIBEPROXY_DATA_DIR` | _(ayarlanmamış)_ | `open-sse/services/notionThreadSessions.ts` | `DATA_DIR` için **eski takma ad**; yalnızca hem `DATA_DIR` hem de `OMNIROUTE_DATA_DIR` ayarlanmamışsa kontrol edilir. Notion web ileti dizisi oturum önbelleğinin konumunu belirler (`/notion-web-thread-sessions.json`). | --- ## 26. Test ve E2E Test Altyapısı `scripts/dev/run-next-playwright.mjs`, `scripts/dev/smoke-electron-packaged.mjs`, `scripts/dev/run-ecosystem-tests.mjs` ve `scripts/build/uninstall.mjs` tarafından kullanılır. Üretim dağıtımlarında aşağıdaki tüm değerleri ayarlanmamış olarak bırakın. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | -------------------------------------- | --------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_E2E_BOOTSTRAP_MODE` | `auth` | `scripts/dev/run-next-playwright.mjs` | Playwright çalıştırıcısı için E2E başlangıç modu (`auth`, `fresh`, `reuse`). | | `OMNIROUTE_E2E_PASSWORD` | `INITIAL_PASSWORD` değerine döner | `scripts/dev/run-next-playwright.mjs` | Playwright ortamına aktarılan yönetici parolası. | | `OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Playwright çalıştırmaları sırasında yerel sağlık kontrolü yoklamasını devre dışı bırakır. | | `OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Testler sırasında OAuth belirteci sağlık kontrolü döngüsünü devre dışı bırakır. | | `OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS` | _(ayarlanmamış)_ | `src/lib/tokenHealthCheck.ts` | Proaktif belirteç yenileme taramasının dışında bırakılan, virgülle ayrılmış sağlayıcılar (ör. `codex,openai`). Sağlık kontrolünü tamamen devre dışı bırakmaya yönelik hedefli bir alternatiftir — kısa TTL'li sağlayıcılar yenilenmeye devam ederken zincirleme sağlayıcılar yalnızca tepkisel kalır. | | `OMNIROUTE_HIDE_HEALTHCHECK_LOGS` | `true` | `scripts/dev/run-next-playwright.mjs` | Playwright standart çıktısındaki sağlık kontrolü gürültüsünü susturur. | | `OMNIROUTE_PLAYWRIGHT_SKIP_BUILD` | `0` | `scripts/dev/run-next-playwright.mjs` | Playwright başlamadan önce Next.js üretim derlemesini atlar (CI optimizasyonu). | | `OMNIROUTE_SKIP_UNINSTALL_HOOK` | `0` | `scripts/build/uninstall.mjs` | OmniRoute kaldırma kancasını atlar (`node_modules` dizinini olduğu gibi tutmak için CI tarafından kullanılır). | | `ECOSYSTEM_SERVER_WAIT_MS` | `180000` | `scripts/dev/run-ecosystem-tests.mjs` | Ekosistem/protokol testleri çalıştırılmadan önce sunucunun sağlıklı hâle gelmesi için beklenecek süre (ms). | | `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | Electron duman testi altyapısının paketlenmiş uygulamanın sunmasını beklediği URL. | | `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | Duman testi altyapısının vazgeçmesinden önceki toplam zaman aşımı (ms). | | `ELECTRON_SMOKE_SETTLE_MS` | `2000` | `scripts/dev/smoke-electron-packaged.mjs` | Sayfa yüklendikten sonraki kararlı hâle gelme süresi (ms). | | `ELECTRON_SMOKE_APP_EXECUTABLE` | _(otomatik)_ | `scripts/dev/smoke-electron-packaged.mjs` | Paketlenmiş Electron yürütülebilir dosyasının açık yolu. | | `ELECTRON_SMOKE_DATA_DIR` | _(tmpdir)_ | `scripts/dev/smoke-electron-packaged.mjs` | Electron duman testi çalıştırmasının veri dizini. | | `ELECTRON_SMOKE_KEEP_DATA` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Çalıştırmadan sonra smoke veri dizinini korumak için `1` olarak ayarlayın. | | `ELECTRON_SMOKE_STREAM_LOGS` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Çalıştırma sırasında Electron günlüklerini stdout'a aktarmak için `1` olarak ayarlayın. | | `ELECTRON_SMOKE_COLD_RESTART` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | #7592: Aynı veri dizinini kullanarak yeniden başlatır ve ikinci başlatmada yerel SQLite sürücüsünün seçildiğini doğrular. | | `CLI_DEVIN_BIN` | _(PATH araması)_ | `open-sse/executors/devin-cli.ts` | Devin CLI ikili dosyasının yolunu geçersiz kılar. | ### Dokümantasyon çeviri işlem hattı `scripts/i18n/run-translation.mjs` (`npm run i18n:run` komutu) tarafından kullanılır. Beş değişkenin tümü varsayılan olarak ayarlanmamıştır — bunları yalnızca dokümantasyon çevirmenini çalıştırabilmesi gereken makinelerde `.env` içinde ayarlayın. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------------------- | ---------------- | ---------------------------------- | ------------------------------------------------------------------------------ | | `OMNIROUTE_TRANSLATION_API_URL` | _(ayarlanmamış)_ | `scripts/i18n/run-translation.mjs` | Çeviri arka ucu için OpenAI uyumlu temel URL. | | `OMNIROUTE_TRANSLATION_API_KEY` | _(ayarlanmamış)_ | `scripts/i18n/run-translation.mjs` | Çeviri arka ucu için Bearer belirteci (asla günlüğe kaydedilmez). | | `OMNIROUTE_TRANSLATION_MODEL` | _(ayarlanmamış)_ | `scripts/i18n/run-translation.mjs` | Model kimliği; ör. `gpt-4o-mini` veya `cx/gpt-5.4-mini`. | | `OMNIROUTE_TRANSLATION_TIMEOUT_MS` | `60000` | `scripts/i18n/run-translation.mjs` | Milisaniye cinsinden istek başına zaman aşımı. | | `OMNIROUTE_TRANSLATION_CONCURRENCY` | `4` | `scripts/i18n/run-translation.mjs` | Birden fazla dosya / yerel ayar işlenirken paralel çeviri isteklerinin sayısı. | --- ## 27. Radar Akışı (Kendi Sunucunuzda Barındırma) RADAR_ENABLED özellik bayrağıyla etkinleştirilen isteğe bağlı eklenti (varsayılan olarak kapalıdır — bu bir ortam değişkeni değil, Ayarlar/DB aracılığıyla değiştirilen bir özellik bayrağıdır; bkz. [docs/frameworks/RADAR.md](../frameworks/RADAR.md#flag-radar_enabled-default-off)). Aşağıdaki ilk dört değişken, kendi sunucunuzda barındırılan veya çatallanmış bir akış ve destekçi anahtarı akışları için isteğe bağlı geçersiz kılmalardır. Beşinci değişken olan `RADAR_ADMIN_URL`, sahibin özel operasyon paneline yönlendiren, ayrı ve varsayılan değeri olmayan bir bağlantıdır. Modülün tüm belgeleri ve [uçtan uca etkinleştirme ve yönlendirmeli kurulum sırası](../frameworks/RADAR.md#end-to-end-activation-and-guided-setup) için [docs/frameworks/RADAR.md](../frameworks/RADAR.md) sayfasına bakın. Genel Ana Sayfa/Değişiklik Günlüğü duyuru okuyucusu bir ortam değişkeniyle yapılandırılmaz ve RADAR_ENABLED özellik bayrağına bağlı değildir. Yalnızca GET kullanarak `src/shared/utils/releaseNotes.ts` içinde bildirilen herkese açık depo `news.json` URL'sini okur; kapatma kimlikleri tarayıcının yerel depolama alanında kalır. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ----------------------------- | -------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `RADAR_FEED_URL` | `https://radar.omniroute.online` | `src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts` | Ayrı ayrı imzalanmış katalog, yönlendirmeler, destekçi teklifleri ve Intel akışları tarafından paylaşılan temel URL. Kendi sunucunuzda barındırılan veya çatallanmış bir hizmete yönlendirmek için geçersiz kılın. | | `RADAR_FEED_PUBKEY` | _(sabitlenmiş varsayılan anahtar)_ | `src/lib/radar/pinnedKeys.ts` | Özel bir akıştan gelen akış imzalarını doğrulamak için kullanılan Ed25519 açık anahtarı (base64-DER SPKI veya PEM). | | `RADAR_CONTRIBUTOR_CLAIM_URL` | `https://radar.omniroute.online/auth/github` | `src/lib/radar/links.ts` | "Katkıda bulunanlardan biriyim" pano düğmesinin açtığı URL (GitHub OAuth destekçi anahtarı talep akışı). | | `RADAR_SUPPORTER_PLANS_URL` | `https://radar.omniroute.online/planos` | `src/lib/radar/links.ts` | "Projeyi destekle" pano düğmesinin açtığı URL (ödeme/planlar sayfası). | | `RADAR_ADMIN_URL` | _(ayarlanmamış)_ | `src/lib/radar/links.ts` | Yalnızca sahibin kullanabildiği özel operasyon paneli bağlantısı. HTTP geri döngü SSH yönlendirmesi dışında HTTPS gereklidir; ayarlanmamış veya geçersiz değerler herhangi bir gezinme öğesi oluşturmaz. | --- ## Denetim: Kaldırılmış / Kullanılmayan Değişkenler Aşağıdaki değişkenler `.env.example` dosyasının önceki sürümlerinde yer alıyordu ancak mevcut kod tabanında **hiçbir çalışma zamanı referansına sahip değildir**. Bunlar kaldırılmıştır: | Değişken | Neden | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `STORAGE_DRIVER=sqlite` | Hiçbir kaynak dosya tarafından okunmuyor. Desteklenen tek sürücü SQLite olduğundan seçim yapılması gerekmiyor. | | `INSTANCE_NAME=omniroute` | Eski dokümanlarda/ortam şablonlarında mevcut ancak çalışma zamanında kullanılmıyor. Gelecekteki bir çoklu örnek özelliğinde geri dönebilir. | | `SQLITE_MAX_SIZE_MB=2048` | Kaynak kodda referans verilmiyor. Veritabanı boyutu yapay olarak sınırlandırılmıyor. | | `SQLITE_CLEAN_LEGACY_FILES=true` | Kaynak kodda referans verilmiyor. Eski dosya temizleme işlevi muhtemelen kaldırılmış. | | `CLI_ROO_BIN` | `src/shared/services/cliRuntime.ts` içinde kayıtlı değil. | | `CLI_KIMI_CODING_BIN` | `src/shared/services/cliRuntime.ts` içinde kayıtlı değil (Kimi Coding, CLI ikili dosyası değil OAuth kullanır). | | `IFLOW_OAUTH_CLIENT_ID` / `IFLOW_OAUTH_CLIENT_SECRET` | Kaynak kodun hiçbir yerinde referans verilmiyor. | | `CEREBRAS_API_KEY` / `COHERE_API_KEY` / `FIREWORKS_API_KEY` / `GROQ_API_KEY` / `MISTRAL_API_KEY` / `NEBIUS_API_KEY` / `PERPLEXITY_API_KEY` / `TOGETHER_API_KEY` / `XAI_API_KEY` | v3.8.0'da kaldırıldı. Çalışma zamanı artık bu ortam değişkenlerini okumuyor; kimlik bilgileri Dashboard / `data/provider-credentials.json` / şifrelenmiş veritabanından gelir. | | `CURSOR_PROTOBUF_DEBUG` | v3.8.0'da kaldırıldı. Cursor yürütücüsü `CURSOR_DEBUG` / `CURSOR_STREAM_DEBUG` kullanır (bkz. §22). | | `CLI_COMPAT_KIRO` | v3.8.0'da kaldırıldı. Kiro, `CLI_COMPAT_OMITTED_PROVIDER_IDS` içinde yer alır; bu nedenle anahtarının hiçbir etkisi yoktur. | | `QIANFAN_API_KEY` | v3.8.0'da kullanılmayan diğer sağlayıcı API anahtarı taslaklarıyla birlikte kaldırıldı. | ### Varsayılan Değer Düzeltmeleri | Değişken | Eski `.env.example` Değeri | Koddaki Gerçek Varsayılan | Düzeltme | | ------------------------- | -------------------------- | ------------------------- | --------------------------------------------------------------- | | `APP_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Yanıltıcı değer kaldırıldı; varsayılan olarak `7` belgelendi | | `CALL_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Yanıltıcı değer kaldırıldı; varsayılan olarak `7` belgelendi | ### OpenCode yapılandırmasını yeniden oluşturma (geçici araçlar) Çalışan OmniRoute örneğinden alınan doğru `limit.context` ve `limit.output` değerleriyle bir `opencode.json` dosyasını yeniden oluşturmak için `scripts/ad-hoc/regen-opencode-config.ts` tarafından kullanılır. Bunların hiçbiri normal çalışma için gerekli değildir; betik yalnızca geliştirici aracıdır. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------ | ------------------------ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_URL` | `http://localhost:20128` | `scripts/ad-hoc/regen-opencode-config.ts` | `/v1/models` sorgusu için kullanılacak OmniRoute örneğinin temel URL'si. | | `OMNIROUTE_KEY` | _(ayarlanmamış)_ | `scripts/ad-hoc/regen-opencode-config.ts` | OmniRoute `/v1/models` uç noktasında kimlik doğrulaması için API anahtarı. Ayarlanmamışsa `OPENCODE_API_KEY` kullanılır. | | `OPENCODE_API_KEY` | _(ayarlanmamış)_ | `scripts/ad-hoc/regen-opencode-config.ts` | Yeniden oluşturulan `opencode.json` dosyasına yazılan OpenCode tarzı API anahtarı (`sk-...`). Ayarlanmamışsa `OMNIROUTE_KEY` kullanılır. | ### Sıkıştırma çevrimdışı değerlendirme düzeneği (geçici araçlar) Çevrimdışı sıkıştırma değerlendirme CLI'sı olan `scripts/compression-eval/index.ts` tarafından kullanılır. Normal çalışma için gerekli değildir — yalnızca geliştirici araçları içindir. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------- | ---------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_EVAL_CREDENTIALS` | `{}` (boş) | `scripts/compression-eval/index.ts` | Çevrimdışı sıkıştırma değerlendirme CLI'sı tarafından kullanılan sağlayıcı için operatörün sağladığı JSON kimlik bilgileri (`JSON.parse` ile ayrıştırılır). Deneme çalıştırması için ayarlamadan bırakın. | ### VNC Tarayıcı Oturumları Tarayıcı otomasyonu sağlayıcıları için Docker tabanlı başsız Chromium oturumlarını yapılandırmak üzere `src/lib/vncSession/manifest.ts` tarafından kullanılır. Tümü isteğe bağlıdır — varsayılanlar aşağıda gösterilmiştir. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------- | ------------------------------ | ------------------------------------------- | --------------------------------------------------------------------------- | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | VNC konteynerlerini başlatmak için kullanılan Docker ikili dosyasının yolu. | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | VNC Chromium konteyneri için Docker imajı. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | _(yerleşik bayraklar)_ | `src/lib/vncSession/manifest.ts` | Konteyner içindeki tarayıcıya iletilen ek Chromium CLI argümanları. | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | Konteyner içindeki VNC bağlantı noktası. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Konteyner içindeki Chrome DevTools Protocol bağlantı noktası. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Konteyner içindeki profil dizini. | | `OMNIROUTE_VNC_PROFILE_DIR` | _(ayarlanmamış)_ | `src/lib/vncSession/manifest.ts` | Kalıcı tarayıcı profilleri için ana makine tarafındaki dizin. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` | `src/lib/vncSession/manifest.ts` | Bir VNC oturumunun sonlandırılmasından önceki boşta kalma zaman aşımı (ms). | | `OMNIROUTE_VNC_MAX_MS` | `1800000` | `src/lib/vncSession/manifest.ts` | Maksimum oturum süresi (ms). | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Maksimum eşzamanlı VNC oturumu sayısı. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Tarayıcının hazır olma zaman aşımı (ms). | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Sonlandırma/temizleme zaman aşımı (ms). | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | Konteynerin katıldığı, varsayılan köprüden ayrı özel Docker ağı (#12571). | | `VIBEPROXY_DATA_DIR` | _(ayarlanmamış)_ | `open-sse/services/notionThreadSessions.ts` | Notion iş parçacığı oturumlarının kalıcı olarak saklanacağı dizin. | ### Dahili hizmet kimlik doğrulaması | Değişken | Varsayılan | Açıklama | | --------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | – | Yönetim düzlemi hizmetler arası kimlik doğrulaması için satır içi belirteç. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | – | Dahili hizmet belirtecini içeren dosyanın yolu (konteynerlerde tercih edilir; satır içi değişkeni geçersiz kılar). | ### OpenRouter sağlayıcı istatistikleri | Değişken | Varsayılan | Açıklama | | ----------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------ | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | Katalog zenginleştirmesi için sağlayıcı başına OpenRouter istatistiklerinin alınmasını atlamak üzere `false` olarak ayarlayın. | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `3600000` | Alınan OpenRouter sağlayıcı istatistiklerinin önbellek TTL'si (ms). | ### Gömülü Redis bağlaması | Değişken | Varsayılan | Açıklama | | --------------------------- | ----------- | ---------------------------------------------------------------------------- | | `REDIS_BIND_HOST` | `127.0.0.1` | Yerleşik Redis hizmetinin bağlama adresi. | | `REDIS_PORT` | `6379` | Yerleşik Redis hizmetinin bağlantı noktası. | | `OMNIROUTE_REDIS_BIND_HOST` | – | Yerleşik Redis bağlama adresi için OmniRoute kapsamlı geçersiz kılma değeri. | --- ## 24. v3.8.50 sürümündeki eklemeler Bu ayarlar, önceki ortam sözleşmesi anlık görüntüsünden sonra kullanıma sunulmuştur. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | Yeniden denenebilir bir `503` döndürülmeden önce yüksek kaynak gerektiren bir sohbet kabul yuvası için beklenecek azami süre; kısa ve sınırlı bir bekleme, ajan yoğunluklarını anında `503` döndürmek yerine sıraya koyar. `0`, anında reddetme davranışını geri getirir. | | `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Kabul beklemesi için kuyruğa alınmış bayt bütçesi: beklemenin yığın belleği kullanımını artırmaması için süreç genelinde bekletilen toplam arabelleğe alınmış gövde baytlarını sınırlar (#4380). Bütçeyi aşan beklemeler anında yeniden denenebilir bir `503` alır. | | `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (60 sn) | `src/shared/middleware/chatBodyAdmission.ts` | #10110'dan beri kullanım dışı ve etkisizdir: oturum başına kabul şeritleri kaldırılarak bunların yerine süreç genelinde tek bir bütçe kullanılmaya başlanmıştır. Yapılandırma uyumluluğu için kabul edilir ancak yok sayılır. | | `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | #10110'dan beri kullanım dışı ve etkisizdir: oturum başına kabul şeritleri kaldırılarak bunların yerine süreç genelinde tek bir bütçe kullanılmaya başlanmıştır. Yapılandırma uyumluluğu için kabul edilir ancak yok sayılır. | | `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (kapalı) | `open-sse/services/admission/runtime.ts` | Uyarlanabilir çalışma zamanı sanal kabul şeritleri (#9654): kiracı başına uyarlanabilir geçidin (sistem 2) ana anahtarıdır. Yukarıdaki, kullanım dışı bağlantı başına şerit değişkenlerinden (TTL_MS / MAX_SESSIONS; #10110'dan beri etkisiz) farklıdır. Aynı ada sahip bir Dashboard özellik bayrağı vardır; ortam değişkeni, Dashboard geçersiz kılma ayarına göre önceliklidir ve yeniden başlatma gerektirir. | | `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | Bir run-now çağrısının, kuyruğa alınmış çalıştırmayı başlatmadan önce devam eden bir işi ne kadar süre bekleyeceğini sınırlar. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | etkin | `open-sse/services/adobeFireflySession.ts` | Hesap kapsamlı Chrome CDP oturumları aracılığıyla IMS ve tarayıcı risk durumunu güncel tutar; devre dışı bırakmak için `0` olarak ayarlayın. | | `ADOBE_FIREFLY_SESSION_DISK` | etkin | `open-sse/services/adobeFireflySession.ts` | Onarılmış Adobe oturumlarını `DATA_DIR` altında kalıcı olarak saklar; yalnızca bellekte tutulan durum için `0` olarak ayarlayın. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Adobe Firefly oluşturma gönderimleri arasındaki asgari süre. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Her üç başarılı Adobe gönderiminden sonraki ek bekleme süresi. | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Yalnızca hata ayıklamaya yönelik gerçek başsız mod; Adobe colligo normalde bunun sonucunda oluşan risk oturumunu reddeder. | | `CHROME_PATH` | otomatik algılama | `open-sse/executors/cloudflare-playground.ts`, `open-sse/executors/chatgpt-web-codex.ts` | Platformun otomatik algılama özelliğinin yetersiz kaldığı durumlarda tarayıcı tabanlı yürütücüler tarafından kullanılan isteğe bağlı mutlak Chrome yürütülebilir dosya yolu. | | `TELEGRAM_BOT_TOKEN` | _(ayarlanmamış)_ | `src/lib/telegram/config.ts` | Gelen webhook'u etkinleştiren ve Mini App `initData` verisini imzalayan BotFather belirteci. | | `TELEGRAM_WEBHOOK_SECRET` | _(ayarlanmamış)_ | `src/lib/telegram/config.ts` | `setWebhook` aracılığıyla kaydedilen ve her webhook teslimatında `X-Telegram-Bot-Api-Secret-Token` üstbilgisine göre doğrulanan paylaşılan gizli anahtar. Webhook yolu için gereklidir; ayarlanmamışsa webhook teslimatları 503 ile reddedilir. | | `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | Telegram sohbet yanıtları için kullanılan model. | | `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | Proxy'ler veya kendi bünyesinde barındırılan Bot API sunucuları için Bot API temel URL'si geçersiz kılma ayarı. | | `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | Giden Bot API çağrıları için milisaniye cinsinden zaman aşımı. | | `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (etkin) | `scripts/build/optionalPackStaging.mjs` | Electron bağımsız ağacı için isteğe bağlı ML/tarayıcı paketleri hazırlanırken `.tar.gz` tarball dosyalarının oluşturulmasını atlamak üzere `0` olarak ayarlayın (paket dizinleri ve `optional-packs.index.json` yine oluşturulur). Yapıt yükleme boyutunu küçültmek amacıyla masaüstü sürüm iş akışı tarafından kullanılır. | | `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | xAI aboneliği görüntü rotalarının kaydedilmesini etkinleştirir; API anahtarı görüntü yolunun değişmeden kalması için varsayılan olarak devre dışıdır. | | `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | Bir `429` yanıtında kullanılabilir bir `Retry-After` ipucu bulunmadığında anahtar başına milisaniye cinsinden bekleme süresi. | | `OMNIROUTE_ESTIMATOR_CALIBRATION` | etkin | `open-sse/services/estimatorCalibration.ts` | Bellek içi tahmin aracı kalibrasyonunun kaydedilmesini ve uygulanmasını devre dışı bırakmak için `off`, `0` veya `false` olarak ayarlayın. | | `NEXT_MANUAL_SIG_HANDLE` | _(dahili)_ | `scripts/dev/standalone-server-ws.mjs` | Dahili bağımsız sunucu sinyal işleyicisi geçersiz kılma ayarı; normalde operatörler tarafından yapılandırılmak yerine başlatıcı tarafından ayarlanır ve temizlenir. | ### ChatGPT Web (Codex) Başsız tarayıcı ve giden araç tüneli için genel varsayılanlar. Dashboard'da ayarlanan bağlantı değerleri önceliklidir. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | --------------------------------------- | ------------------------------ | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CHATGPT_WEB_CODEX_CHROME_PATH` | _(otomatik algılama)_ | `open-sse/executors/chatgpt-web-codex.ts` | npm, systemd ve PM2 çalıştırmaları için açık Chrome/Chromium yolu. | | `CHROME_PATH` | _(otomatik algılama)_ | `open-sse/executors/chatgpt-web-codex.ts` | Açık bir Chrome/Chromium yolu için ortak geri dönüş seçeneği. | | `CHATGPT_WEB_CODEX_CDP_URL` | _(ayarlanmamış)_ | `open-sse/executors/chatgpt-web-codex.ts` | Dahili CDP uç noktası; Docker, `9223` portundaki sidecar'ı kullanır. | | `CDP_PROXY_TOKEN` | _(ayarlanmamış)_ | `docker/chatgpt-web-codex-browser/cdp-proxy.mjs` | Ayarlanmışsa CDP proxy sidecar'ına gönderilen her istek, bu değeri `X-Omni-Cdp-Token` başlığında içermelidir (#13679). Değer olmadığında proxy, kimlik doğrulaması yapmadan iletir — bu durumda yalnızca `chatgpt-web-codex-net` Compose ağının ağ yalıtımı koruma sağlar. `openssl rand -hex 32` ile oluşturun. | | `CHATGPT_WEB_CODEX_TUNNEL_ID` | _(ayarlanmamış)_ | `open-sse/executors/chatgpt-web-codex.ts` | Yerel Codex araç turları için global OpenAI tünel kimliği. | | `CHATGPT_WEB_CODEX_RUNTIME_KEY` | _(ayarlanmamış)_ | `open-sse/executors/chatgpt-web-codex.ts` | Global tünel çalışma zamanı anahtarı; asla günlüklere yazdırmayın. | | `CHATGPT_WEB_CODEX_CONNECTOR_NAME` | `OmniRoute Codex v2` | `open-sse/executors/chatgpt-web-codex.ts` | MCP köprüsü için yeni oluşturulan ChatGPT özel bağlayıcısının tam adı. | | `CODEX_CHATGPT_WEB_HOME` | `/chatgpt-web-codex` | `open-sse/vendor/codex-chatgpt-web/config.ts` | Tarayıcı, broker ve tünel durumu için ayrılmış dizin. | | `CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS` | `0` | `open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts` | `1` olduğunda her kontrol noktasında tarayıcı tanılama görüntüleri yakalanır. | | `CODEX_CHATGPT_WEB_LAUNCHER` | _(ayarlanmamış)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Kalıcı bir launcher binary dosyasına yönelik isteğe bağlı mutlak yol. | | `CODEX_CHATGPT_WEB_BUN` | _(otomatik algılama)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Bun çalışma zamanı binary dosyasına yönelik isteğe bağlı mutlak yol. | | `CODEX_WEB_GPT_BUN` | _(ayarlanmamış)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | `CODEX_CHATGPT_WEB_BUN` için eski geri dönüş seçeneği; yeni kurulumlar standart adı kullanır. | --- ## OmniConductor Köprüsü OmniConductor hub görevlerini yerel A2A TaskManager'a (`src/lib/conductor/`) yansıtan uzun ömürlü SSE tüketicisi. İsteğe bağlıdır — köprü yalnızca `CONDUCTOR_HUB_URL` ayarlandığında başlar. Yalnızca sunucu tarafındadır: hub belirteci asla tarayıcıya ulaşmamalıdır. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ------------------------------ | ----------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | `CONDUCTOR_HUB_URL` | _(boş)_ | `src/lib/conductor/boot.ts` | OmniConductor hub'ının temel URL'si (ör. `http://127.0.0.1:7910`). Ayarlanmamışsa köprü devre dışıdır. | | `CONDUCTOR_HUB_TOKEN` | _(boş)_ | `src/lib/conductor/boot.ts` | SSE akışı için hub kimlik bilgisi — hub üzerinde `spokesperson` türünde bir eş oluşturun (`POST /v1/peers`, yönetici). | | `CONDUCTOR_ORCHESTRATOR_TOKEN` | _(boş)_ | `src/lib/conductor/hubProxy.ts` | Gelen A2A→hub görev devri (`POST /v1/tasks`) için kimlik bilgisi; ayarlanmamışsa `CONDUCTOR_HUB_TOKEN` kullanılır. | | `CONDUCTOR_SPOKESPERSON_URL` | `http://127.0.0.1:7920` | `src/lib/conductor/faroProxy.ts` | Pano sohbet proxy'sinin (`/api/conductor/ask`) arkasındaki spokesperson (Faro) hizmetinin temel URL'si. | ### Kota duyarlı zamanlama İstek öncesi belirteç bütçesi kontrolleri için `open-sse/services/combo.ts` ve `src/lib/quota/quotaScheduler.ts` tarafından kullanılır. İsteğe bağlıdır — ayarlanmadığında varsayılan yönlendirme davranışı değişmez. | Değişken | Varsayılan | Kaynak Dosya | Açıklama | | ---------------------------------- | ---------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_QUOTA_AWARE_ROUTING` | `0` | `open-sse/services/combo.ts` | `1` olduğunda, pencere başına belirteç bütçesi (`rateLimitOverrides.tpm`, `provider_quota_state` tablosu) tahmini istek maliyetini gönderimden önce karşılayamayan bağlantıları atlar. Bütçe yapılandırılmamışsa açık kalır. | | `OMNIROUTE_ESTIMATOR_CALIBRATION` | _(açık)_ | `open-sse/services/estimatorCalibration.ts` | Bağlam koruyucu belirteç tahmin edicisinin (#14931) geri bildirim kalibrasyonu: (sağlayıcı, model, araçların mevcut olup olmaması) başına `usage.prompt_tokens` / tahmin için yalnızca bellekte tutulan ve 0.15–2.0 aralığıyla sınırlandırılan EMA. `off`, `0` veya `false`, kaydı ve uygulamayı devre dışı bırakır. | | `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | `xai-oauth` (`xao`) ve `grok-cli` görüntü rotalarını kaydeder. Aynı adlı pano özellik bayrağıdır; bir DB geçersiz kılma değeri bu değere göre önceliklidir. |