Files
OmniRoute/docs/i18n/it/docs/reference/ENVIRONMENT.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

648 KiB
Raw Blame History

Environment Variables Reference (Italiano)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Riferimento completo per ogni variabile d'ambiente riconosciuta da OmniRoute. Per un modello di avvio rapido, consulta .env.example.

Important

Ogni variabile documentata qui deve comparire anche in .env.example e ogni variabile presente in .env.example deve comparire qui. npm run check:env-doc-sync verifica questa corrispondenza a ogni commit e nella CI. Per omettere intenzionalmente una variabile, aggiungila all'elenco delle eccezioni in scripts/check/check-env-doc-sync.mjs.


Indice


1. Segreti obbligatori

Questi devono essere impostati prima della prima esecuzione. Senza di essi, l'applicazione si rifiuterà di avviarsi oppure funzionerà con impostazioni predefinite non sicure.

Variabile Obbligatoria Valore predefinito File sorgente Descrizione
JWT_SECRET (nessuno) src/lib/auth Firma/verifica tutti i cookie di sessione della dashboard (JWT). Generare con openssl rand -base64 48.
API_KEY_SECRET (nessuno) src/lib/db/apiKeys.ts Chiave di crittografia AES per i valori delle chiavi API archiviati in SQLite. Generare con openssl rand -hex 32.
INITIAL_PASSWORD CHANGEME Script di bootstrap Imposta la password iniziale dell'amministratore della dashboard (corrisponde al valore predefinito di .env.example, mantenuto intenzionalmente non sicuro per forzarne la modifica). Modificare prima del primo utilizzo. Dopo l'accesso, modificarla tramite Dashboard → Impostazioni → Sicurezza.
OMNIROUTE_WS_BRIDGE_SECRET (produzione) (non impostato) src/app/api/internal/codex-responses-ws/route.ts Segreto condiviso per il bridge WebSocket interno di Codex Responses. Autentica le richieste del bridge tra il relay WS Electron/browser e OmniRoute. ⚠️ OBBLIGATORIO in produzione: quando non è impostato, tutte le richieste al bridge WS vengono rifiutate. Generare con openssl rand -base64 32.
OMNIROUTE_SW_BUILD_ID No (SHA git) next.config.mjs, scripts/build/assembleStandalone.mjs ID esplicito per l'invalidazione della cache del service worker della shell PWA (#11779); primo nella catena di risoluzione.
SOURCE_VERSION No (non impostato) next.config.mjs, scripts/build/assembleStandalone.mjs Secondo nella catena: impostato dai sistemi di build PaaS (ad es. in stile Heroku) al commit distribuito.
NEXT_PUBLIC_SW_BUILD_ID No (derivato) src/shared/components/PwaRegister.tsx Valore pubblico definito in fase di build che il client usa per registrare /sw.js?v=…; derivato dai due valori precedenti e quindi dallo SHA git.
OMNIROUTE_PEER_STAMP_TOKEN No (automatico) (automatico a ogni avvio) src/server/authz/policies/management.ts Segreto per processo che dimostra che il contrassegno IP del peer attendibile proviene dal server HTTP di OmniRoute (scripts/dev/peer-stamp.mjs). Il middleware authz considera attendibile la località della richiesta (limitazione a loopback/LAN delle route LOCAL_ONLY) solo quando il contrassegno contiene questo token. Viene generato automaticamente a ogni avvio: lasciarlo non impostato; specificarlo solo per configurazioni multiprocesso che devono condividere il contrassegno.

Comandi di generazione

# Genera tutti e quattro i segreti contemporaneamente:
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

Non eseguire mai il commit di file .env contenenti segreti reali nel controllo di versione. .gitignore esclude già .env, ma verificarlo prima del push.


2. Archiviazione e database

OmniRoute usa SQLite (tramite better-sqlite3) per tutta la persistenza. Queste variabili controllano la posizione dei dati, la crittografia e il ciclo di vita.

Variabile Valore predefinito File sorgente Descrizione
DATA_DIR ~/.omniroute/ src/lib/db/core.ts Directory radice per il database SQLite, i backup e i file di dati. Sovrascriverla per i volumi Docker o i percorsi personalizzati.
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR (non impostata) src/lib/dataPaths.ts Scappatoia per il controllo di DATA_DIR nei test e nelle valutazioni (#10428). I test e le sonde di valutazione/stampa di Node (-e/--eval/-p/--print, incluse le forme --eval=/--print=) senza DATA_DIR vengono reindirizzati a una directory temporanea usa e getta, in modo che non possano aprire il database reale dell'operatore; impostare su 1 per tornare a utilizzare la directory reale.
OMNIROUTE_BUILD_SHA (non impostata) src/lib/monitoring/buildSha.ts SHA Git dell'artefatto in esecuzione. Inserito da npm run build:release; può essere iniettato nei container distribuiti senza il file sentinella dist/BUILD_SHA. Esposto come system.buildSha in /api/monitoring/health.
OMNIROUTE_RELEASE_REF origin/main scripts/build/buildProvenance.ts Riferimento rispetto al quale il controllo di provenienza dell'artefatto impacchettato verifica lo SHA della build (#10427).
OMNIROUTE_ALLOW_CANARY_BUILD (non impostata) scripts/build/buildProvenance.ts Impostare su 1 per consentire l'impacchettamento di una build il cui SHA non appartiene alla linea di rilascio, registrandola come canary intenzionale anziché far fallire il controllo (#10427).
OMNIROUTE_SMOKE_API_KEY (non impostata) scripts/ops/deploy-canary.mjs Chiave API per la sonda smoke della distribuzione canary, inviata come Authorization: Bearer a /v1/chat/completions. Utilizzata solo dallo script di distribuzione (#10429), mai dal server. Non è correlata alle variabili OMNIROUTE_SMOKE_* dell'infrastruttura smoke CLI con attivazione esplicita (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS in tests/integration/upstream-cli-smoke.int.test.ts) — vedere Integrazioni CLI → Analisi smoke reale.
OMNIROUTE_BUILDING (non impostata) src/lib/buildPhase.ts Segnale della fase di build (#10060): impostato su 1 da scripts/build/build-next-isolated.mjs ed ereditato da ogni worker di build avviato, affinché il livello del database restituisca uno stub no-op invece di caricare l'addon nativo better-sqlite3 (che interrompe il worker all'uscita). Mai impostato per il server in esecuzione.
OMNIROUTE_SKIP_NATIVE_DEP_CHECK 0 scripts/check/check-native-deps.mjs Impostare su 1 per ignorare il controllo pre-build facoltativo delle dipendenze native per strutture di dipendenze in bundle non comuni. Ciò non rende compilabile una dipendenza mancante; utilizzare questa opzione solo quando le dipendenze native vengono fornite separatamente.
OMNIROUTE_DATA_DIR (non impostata) open-sse/executors/promptql/threadSticky.ts Alias di ripiego per DATA_DIR, verificato solo quando DATA_DIR non è impostata. Utilizzato per individuare la cache persistente su disco delle sessioni associate ai thread dell'esecutore PromptQL (<dir>/promptql-thread-sessions.json); se nessuna delle due variabili è impostata, la cache rimane solo in memoria (non viene mantenuta tra i riavvii).
OMNIROUTE_PLUGINS_DIR (non impostata) src/lib/plugins/scanner.ts Directory letta dallo scanner dei plugin in fase di esecuzione e radice in cui il gestore dei plugin esegue l'installazione, sostituendo il valore predefinito derivato dalla home (#11827). Impostarla sulla struttura dei plugin montata tramite bind in Docker/K8s, anziché spostare HOME solo per ricollocare il percorso di scansione (HOME regola anche ogni altro comportamento relativo alla home). Se non impostata = ~/.omniroute/plugins, oppure /tmp/.omniroute/plugins quando il processo non esporta alcuna home: la mancata individuazione silenziosa che questa variabile elimina. La directory risolta viene registrata una volta all'avvio come scanner.dir_resolved, insieme all'input che ha avuto la precedenza. Solo lato server: i plugin dei comandi CLI mantengono il proprio OMNIROUTE_PLUGIN_PATH (sezione 9).
STORAGE_ENCRYPTION_KEY (vuoto = disabilitata) src/lib/db/encryption.ts Chiave AES per la crittografia completa del database SQLite inattivo. Generarla con openssl rand -hex 32.
STORAGE_ENCRYPTION_KEY_VERSION v1 scripts/build/bootstrap-env.mjs, electron/main.js Etichetta di versione della chiave di crittografia. Incrementarla durante la rotazione della chiave per supportare la decrittografia dei vecchi backup.
DISABLE_SQLITE_AUTO_BACKUP false src/lib/db/backup.ts Quando è true, ignora i backup ordinari/pre-scrittura dei file SQLite (salvataggio/cancellazione dei prezzi di models.dev, scritture delle impostazioni). I backup manuali e pre-ripristino vengono comunque eseguiti. Non disabilita lo snapshot di sicurezza persistente obbligatorio dell'esecutore delle migrazioni né la protezione contro le migrazioni massive per un DB persistente esistente. I backup non manuali sono limitati a non più di uno ogni 60 minuti. In Impostazioni → Archiviazione della dashboard è possibile disabilitare in modo indipendente il backup automatico ordinario.
OMNIROUTE_CRYPT_KEY (non impostata) src/lib/db/encryption.ts Alias legacy di STORAGE_ENCRYPTION_KEY. Accettato come fallback quando la variabile principale è assente.
OMNIROUTE_API_KEY_BASE64 (non impostata) src/lib/db/encryption.ts Alias legacy (in formato codificato Base64) accettato come fallback. Decodificato automaticamente prima dell'uso.
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS (non impostata) src/lib/db/core.ts Sostituisce l'intervallo del controllo periodico dello stato di SQLite (ms). Quando non è impostata, i valori predefiniti vengono ricavati da NODE_ENV.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS 21600000 (6 h) src/lib/db/walMaintenance.ts Sostituisce l'intervallo periodico di wal_checkpoint(TRUNCATE) (ms). Il checkpoint automatico non riduce mai il file WAL stesso e un server in esecuzione a lungo non chiude mai il proprio DB. 0 disabilita questa funzione.
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS 300000 (5 min) src/lib/db/walMaintenance.ts Sostituisce l'intervallo frequente di wal_checkpoint(PASSIVE) (ms). Mantiene ridotto il numero di frame WAL in sospeso, affinché il TRUNCATE periodico non copi mai sul thread principale un arretrato di diversi GB. 0 disabilita questa funzione.
OMNIROUTE_WAL_GUARD_MAX_MB 256 src/lib/db/walMaintenance.ts Quando un ciclo PASSIVE rileva che il file WAL supera questa dimensione, passa immediatamente a wal_checkpoint(TRUNCATE) anziché attendere il ciclo lento.
OMNIROUTE_PRESSURE_SELF_RESTART false open-sse/utils/resourcePressure.ts Impostare su 1/true/yes/on per terminare il processo dopo che una pressione critica sulle risorse persiste per OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS, consentendo a un supervisore (systemd Restart=always, criterio di riavvio Docker) di ripristinare un processo pulito anziché continuare a restituire risposte 503 a tempo indeterminato.
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS 120000 (2 min) open-sse/utils/resourcePressure.ts Durata per cui la pressione critica deve persistere prima che venga attivata l'uscita per il riavvio automatico.
OMNIROUTE_SQLJS_WASM_PATH (rilevamento automatico) src/lib/db/adapters/sqljsAdapter.ts Percorso esplicito (assoluto o relativo alla directory di lavoro corrente) di sql-wasm.wasm quando si usa l'adattatore di fallback WASM sql.js. Quando non è impostata, viene rilevato automaticamente tramite le dipendenze del pacchetto e i layout candidati.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS 21600000 (6 h) src/lib/db/core.ts Sostituisce l'intervallo periodico di wal_checkpoint(TRUNCATE) (ms). Il checkpoint automatico non riduce mai il file WAL stesso e un server in esecuzione a lungo non chiude mai il proprio DB. 0 disabilita questa funzione.
OMNIROUTE_BATCH_RETENTION_DAYS 30 src/lib/db/cleanup.ts Numero di giorni per cui i checkpoint, i file di input/output/errore referenziati e la riga di un processo Batch API in stato terminale (completato/non riuscito/annullato/scaduto) vengono conservati dalla pulizia automatica prima dell'eliminazione. Ha effetto solo dopo l'attivazione di BATCH_AND_FILE_AUTO_CLEANUP_ENABLED; corrisponde al periodo di conservazione dell'output della Batch API di OpenAI. Non influisce sulla route DELETE /api/v1/batches/delete-completed attivata dall'operatore, che per progettazione rimane incondizionata (senza filtro per età).
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED false src/lib/db/cleanup.ts Quando è true, consente al processo automatico di pulizia di eliminare i job terminali della Batch API (e i relativi checkpoint) che hanno superato OMNIROUTE_BATCH_RETENTION_DAYS e di cancellare il contenuto BLOB dei file caricati che hanno superato il proprio expires_at. Disattivato per impostazione predefinita: ogni installazione esistente conserva questi dati esattamente come prima finché un operatore non abilita l'opzione. È anche un feature flag modificabile dalla dashboard — vedere docs/reference/FEATURE_FLAGS.md → Runtime.
OMNIROUTE_SKIP_DB_HEALTHCHECK 0 src/lib/db/core.ts, src/lib/db/healthCheck.ts Impostare su 1 per ignorare completamente il controllo di integrità del DB all'avvio. Utile per attività di breve durata e test di integrazione.
OMNIROUTE_FORCE_DB_HEALTHCHECK 0 src/lib/db/core.ts Impostare su 1 per forzare l'attivazione del ciclo di controllo di integrità del DB, anche quando normalmente verrebbe ignorato (ad es. per attività di breve durata).
OMNIROUTE_SKIP_POSTINSTALL 0 scripts/postinstall.mjs Impostare su 1 per ignorare il riscaldamento del runtime nativo durante npm install. Utile nelle installazioni CI/headless in cui sqlite è già compilato.
OMNIROUTE_MIGRATIONS_DIR (rilevamento automatico) src/lib/db/migrationRunner.ts Sostituisce la directory analizzata dal runner delle migrazioni. Utile quando si distribuiscono migrazioni incluse nel bundle di build personalizzate.
OMNIROUTE_EXTRA_MIGRATIONS_DIRS (non impostato) src/lib/db/migrationRunner/extraDirs.ts Directory di migrazione aggiuntive sotto forma di voci namespace=dir, separate dal delimitatore dei percorsi della piattaforma (ad es. ee=/opt/app/enterprise/db/migrations). I file trovati al loro interno vengono registrati come <namespace>-<number>, in modo che una distribuzione che include le proprie migrazioni non entri mai in conflitto con gli slot numerici upstream. Una voce non valida, un namespace non valido o una directory mancante genera un errore all'avvio invece di ignorare silenziosamente lo schema.
OMNIROUTE_MAX_PENDING_MIGRATIONS 50 src/lib/db/migrationRunner.ts Soglia di sicurezza per un numero elevato di migrazioni in sospeso (#3416). L'avvio viene interrotto se su un DB esistente sono in sospeso più migrazioni di quante indicate da questo valore (per evitare problemi causati da una tabella di tracciamento cancellata). Aumentarlo per ripristinare un backup meno recente; impostarlo su 0 per disabilitare il controllo.
OMNIROUTE_INSTALL_UPGRADE_WORKDIR (<repo>/.install-upgrade) scripts/check/check-install-upgrade.mjs Directory di lavoro per il gate di rilascio check:install-upgrade. Richiede circa 12 GB (due alberi di installazione da ~3 GB più il tarball), quindi non deve essere eseguito su un tmpfs di piccole dimensioni — sul runner self-hosted /tmp è un tmpfs da 12 GB supportato dalla RAM e il gate lo ha esaurito, troncando il pacchetto.
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS (valore predefinito nel codice) src/lib/spend/batchWriter.ts Intervallo di flush (ms) per il writer in batch di spese/costi. Valori inferiori riducono il raggruppamento delle scritture; valori superiori riducono la contesa sul DB.
OMNIROUTE_SPEND_MAX_BUFFER_SIZE (valore predefinito nel codice) src/lib/spend/batchWriter.ts Numero massimo di voci di spesa memorizzate nel buffer prima di un flush forzato. Aumentarlo nelle distribuzioni con QPS elevati; ridurlo quando limitare l'uso della memoria è più importante.
OMNIROUTE_PROXY_FETCH_DEBUG (non impostato) open-sse/utils/proxyFetch.ts Impostare su "true" per generare log di debug [ProxyFetch] nel percorso relay di Vercel. Disattivato per impostazione predefinita per evitare la divulgazione di indicazioni sul routing.
PROXY_LOG_INCLUDE_IPS false src/lib/proxyLogger.ts Impostare su "true" o "1" per includere gli IP del client/di uscita e il prefisso dell'account nella riga dettagliata del log di processo [ProxyEgress]. Mantenuto disattivato per impostazione predefinita, affinché il log di processo non divulghi gli IP o il prefisso dell'account.
OMNIROUTE_DEBUG (non impostato) bin/cli/commands/quota.mjs Impostare su 1 per stampare su stderr la diagnostica delle tempistiche per ogni richiesta ([omniroute] GET <path> completed in Nms) dai comandi quota della CLI.
OMNIROUTE_HEALTHCHECK_PATH (automatico) scripts/dev/healthcheck.mjs Percorso esplicito verificato dal controllo di integrità del container. Se non impostato, il controllo lo ricava da OMNIROUTE_BASE_PATH; impostandolo si riabilita l'endpoint di monitoraggio approfondito.
OMNIROUTE_DEBUG_COMPLETION (non impostato) bin/cli/commands/completion.mjs Impostare su un valore non vuoto per generare la diagnostica [omniroute completion] dai percorsi della cache di completamento della shell della CLI (lettura/aggiornamento/scrittura). Disattivato per impostazione predefinita — gli errori di queste cache vengono ignorati, così una cache mancante/danneggiata non interrompe mai il completamento tramite tabulazione.
BATCH_RETRY_DURATION_MS 86400000 (24h) open-sse/services/batchProcessor.ts Finestra massima per i nuovi tentativi dei singoli elementi batch (ms). Gli elementi che superano questa durata vengono contrassegnati come non riusciti.
BATCH_BACKOFF_BASE_MS 5000 open-sse/services/batchProcessor.ts Ritardo di base (ms) per il backoff esponenziale nei nuovi tentativi degli elementi batch.
BATCH_BACKOFF_MAX_MS 3600000 (1h) open-sse/services/batchProcessor.ts Limite massimo (ms) per il backoff esponenziale tra i nuovi tentativi degli elementi batch.
BATCH_MAX_CONCURRENT 1 open-sse/services/batchProcessor.ts Numero massimo di batch elaborati simultaneamente. Aumentarlo per incrementare il throughput; mantenerlo basso per evitare picchi di superamento dei limiti di frequenza.

Important

Prima di modificare un database persistente esistente, il sistema di migrazione pubblica uno snapshot completo, indirizzato in base al contenuto, in DATA_DIR/db_backups/. La pubblicazione richiede un file system che supporti hard link sullo stesso file system senza sovrascrittura, oltre alla sincronizzazione persistente dei file. Gli host POSIX richiedono inoltre la sincronizzazione delle directory; su Windows, Node potrebbe rifiutare gli handle delle directory, pertanto OmniRoute scarica su disco il file pubblicato e considera la sincronizzazione delle voci di directory come un'operazione best effort. Se il DATA_DIR montato non è in grado di fornire tali garanzie, l'avvio viene interrotto in modo sicuro prima di applicare una migrazione. Spostare DATA_DIR su un volume che supporti queste primitive; non utilizzare DISABLE_SQLITE_AUTO_BACKUP per aggirare le misure di sicurezza della migrazione.

Scenari

Scenario Configurazione
Sviluppo locale Lasciare tutti i valori predefiniti. Il DB si trova in ~/.omniroute/omniroute.db.
Docker DATA_DIR=/data + montare un volume in /data.
Crittografia a riposo Impostare STORAGE_ENCRYPTION_KEY + conservare copie di backup della chiave! Perderla = perdere i dati.
CI/Test DATA_DIR=/tmp/omniroute-test — temporaneo, non è necessaria alcuna crittografia.

3. Rete e porte

Variabile Valore predefinito File sorgente Descrizione
PORT 20128 src/lib/runtime/ports.ts Porta principale sia per l'interfaccia della Dashboard sia per gli endpoint API (modalità a porta singola).
OMNIROUTE_BASE_PATH (vuoto = radice) next.config.mjs, scripts/docker/ensure-docker-base-path.mjs Sottopercorso URL per servire OmniRoute dietro un reverse proxy (imposta il basePath di Next.js; i reindirizzamenti di autenticazione tengono conto del basePath). Ad es. /omniroute. In Docker il valore viene incorporato durante docker build (ARG OMNIROUTE_BASE_PATH); le immagini precompilate per la radice possono applicare un valore di runtime diverso una sola volta all'avvio del container, prima dell'avvio di Next.js. Impostare NEXT_PUBLIC_BASE_URL sull'origine pubblica includendo lo stesso sottopercorso.
NEXT_PUBLIC_OMNIROUTE_BASE_PATH (vuoto = radice) src/shared/hooks/useDisplayBaseUrl.ts Copia visibile al browser di OMNIROUTE_BASE_PATH, incorporata durante la compilazione affinché la visualizzazione dell'endpoint nella dashboard mostri https://host/omniroute/v1 anziché https://host/v1. Se non impostata, utilizza OMNIROUTE_BASE_PATH. Ricompilare dopo una modifica (il basePath di Next viene definito in fase di compilazione).
DASHBOARD_ALLOW_EMBED (non impostato = mai incorporabile) next.config.mjs, scripts/build/dashboardEmbed.mjs Abilita facoltativamente l'incorporamento delle pagine HTML tramite iframe. Se non impostata, ogni route viene fornita con frame-ancestors 'none' + X-Frame-Options: DENY. Impostarla su vscode per fornire le pagine (dashboard, accesso, documentazione, pagina iniziale) con frame-ancestors 'self' vscode-webview: e senza X-Frame-Options, in modo che il browser semplice di VS Code possa visualizzarle (modalità dashboardOpen: "editor" di OmniCopilot). La superficie API (/api, /v1, /v1beta, /a2a, /healthz, alias a livello di radice) mantiene in ogni caso le intestazioni restrittive. Viene riconosciuto solo vscode: 1/true non abilita questa funzionalità. In fase di compilazione: ricompilare dopo una modifica (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode per le immagini; impostarla su un'installazione precompilata non ha alcun effetto).
API_PORT (non impostato) src/lib/runtime/ports.ts Se impostata, serve l'API proxy /v1/* su questa porta separata.
API_HOST 0.0.0.0 src/lib/runtime/ports.ts Indirizzo di binding per la porta API.
DASHBOARD_PORT (non impostato) src/lib/runtime/ports.ts Se impostata, serve l'interfaccia della Dashboard su questa porta separata.
OMNI_MAX_CONCURRENT_CONNECTIONS 0 (disabilitato) src/sse/utils/backpressure.ts Limita le connessioni di chat simultanee in corso; le richieste che superano il limite ricevono 503 con Retry-After. Un numero intero positivo abilita la protezione; se non impostata o impostata su 0, la protezione è disabilitata.
OMNIROUTE_INSTANCE_ID (non impostato) src/shared/resilience/peerRouting.ts ID stabile e univoco per questo gateway quando si concatenano istanze OmniRoute. Abilita i controlli in ingresso sui loop tra peer. Caratteri consentiti: lettere, cifre, ., _, : e -; massimo 64 caratteri.
OMNIROUTE_PEER_URLS (non impostato) src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts URL di base OmniRoute separate da virgole che possono ricevere X-OmniRoute-Peer-Trace. Solo gli URL upstream esplicitamente inclusi nell'elenco consentito ricevono i metadati dei peer; tutti gli altri provider rimangono invariati.
OMNIROUTE_PEER_MAX_HOPS 4 src/shared/resilience/peerRouting.ts Numero massimo di istanze OmniRoute visitate in precedenza accettate in una richiesta concatenata (1-32). Istanze ripetute o un budget esaurito restituiscono HTTP 508 Loop Detected.
PROD_DASHBOARD_PORT 20130 docker-compose.prod.yml Porta pubblicata sul lato host per la Dashboard in modalità di produzione Docker.
PROD_API_PORT 20131 docker-compose.prod.yml Porta pubblicata sul lato host per l'API in modalità di produzione Docker.
OMNIROUTE_PORT (non impostato) src/lib/runtime/ports.ts Ha la precedenza su PORT durante l'esecuzione all'interno di Electron o altri wrapper.
LIVE_WS_PORT 20129 src/server/ws/liveServer.ts Porta del server WebSocket per il monitoraggio in tempo reale.
LIVE_WS_HOST 127.0.0.1 src/server/ws/liveServer.ts Indirizzo di binding per il server WebSocket live. Impostare su 0.0.0.0 per esporlo sulla LAN (configurare anche LIVE_WS_ALLOWED_ORIGINS).
LIVE_WS_ALLOWED_ORIGINS (non impostato) src/server/ws/liveServer.ts Origini aggiuntive separate da virgole autorizzate ad aprire un WebSocket live. Le origini loopback della dashboard sono già consentite per impostazione predefinita.
LIVE_WS_ALLOWED_HOSTS (non impostato) src/server/ws/liveServerAllowList.ts Nomi host aggiuntivi separati da virgole consentiti per le origini WebSocket live. A differenza di LIVE_WS_ALLOWED_ORIGINS (URL di origine completi), confronta solo la parte relativa all'host — utile per configurazioni LAN/Tailscale.
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL (non impostato) src/hooks/useLiveDashboard.ts URL pubblico per il WebSocket della dashboard live (lato browser). Impostarlo quando il server WS è protetto da un reverse proxy o da Cloudflare Tunnel (ad es. wss://ws.my-ai.com/live-ws); il browser si connette a tale URL anziché a ws://hostname:20132. La parte relativa al percorso viene usata anche come percorso di upgrade WebSocket (predefinito: /live-ws).
OMNIROUTE_ENABLE_LIVE_WS true src/server/ws/liveServer.ts e scripts/start-ws-server.mjs Impostare su 0 o false per disabilitare il server WebSocket in tempo reale (abilitato per impostazione predefinita, associato al loopback). Opzione CI/harness che disabilita lo script helper WebSocket live autonomo.
RELAY_IP_PER_MINUTE 30 src/app/api/v1/relay/chat/completions/route.ts Limite di frequenza del relay per coppia (token, IP), espresso in richieste/minuto. In memoria, per istanza. 0 o un valore negativo disabilita il controllo basato sull'IP (il limite DB per token continua ad applicarsi).
NODE_ENV production Core di Next.js Controlla il livello di dettaglio dei log, la memorizzazione nella cache, l'esposizione dei dettagli degli errori e le ottimizzazioni di Next.js.
OMNIROUTE_USE_TURBOPACK 1 (Turbopack — valore predefinito nel codice) package.json / Next.js 16 Turbopack è il bundler predefinito per npm run dev e npm run build (build 2-3 volte più veloci, in base ai benchmark). Impostare su 0 per tornare a webpack su Windows, in caso di incompatibilità con i binding nativi o con il bundler, oppure su macchine con RAM limitata — è noto a monte che le build di produzione di Turbopack con questa linea di versioni di Next.js (16.2.x) raggiungono picchi di utilizzo della memoria molto più elevati rispetto a webpack su grafi di moduli di grandi dimensioni (la correzione dell'evizione dalla memoria di Turbopack in Next 16.3 non è ancora stabile); il fallback a webpack raggiunge picchi molto più bassi. Vedere #6409.
OMNIROUTE_SKIP_DB_HEALTHCHECK (non impostata) src/lib/db/core.ts / src/lib/db/healthCheck.ts Impostare su 1 per saltare il controllo di integrità di SQLite all'avvio. Utile per un avvio più rapido con database di grandi dimensioni.
NOTIFY_SOCKET (non impostata) systemd (protocollo sd_notify) Impostata da systemd quando il processo viene eseguito in un'unità di servizio con integrazione sd_notify; OmniRoute la legge (vedere OMNIROUTE_DISABLE_SD_NOTIFY) per inviare notifiche READY/WATCHDOG. Non deve mai essere impostata dall'utente.
OMNIROUTE_DISABLE_SD_NOTIFY (non impostata) scripts/dev/systemd-notify.mjs Impostare su 1 per disabilitare sd_notify di systemd (Type=notify / WatchdogSec=) anche quando l'esecuzione avviene in un'unità systemd. In ogni caso, il notificatore non esegue alcuna operazione al di fuori di systemd.
CREDENTIAL_HEALTH_CHECK_INTERVAL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts Intervallo (ms) per lo scheduler in background del controllo dello stato delle credenziali. Minimo: 10000 (10 s).
CREDENTIAL_HEALTH_CACHE_TTL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts TTL (ms) per lo stato di integrità delle credenziali memorizzato nella cache.
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK false src/lib/credentialHealth/scheduler.ts Impostare su 1 o true per disabilitare i test periodici in background delle connessioni ai provider. I provider di ricerca (SEARCH_VALIDATOR_CONFIGS in src/lib/providers/validation/searchProviders.ts, ad esempio tavily-search) sono sempre esclusi dalla scansione: la loro "convalida" è una vera query fatturata dal servizio a monte, pertanto non vengono mai sottoposti a controlli di integrità pianificati (#9970).
HOST 0.0.0.0 scripts/dev/run-next.mjs Indirizzo di associazione per il server dev/start di Next.js. Se impostato, sostituisce il valore predefinito 0.0.0.0.
HOSTNAME 127.0.0.1 scripts/dev/run-next-playwright.mjs Indirizzo di associazione utilizzato dal runner Playwright all'avvio di Next.js. Il valore predefinito è 127.0.0.1 per test ermetici. Non utilizzare per omniroute serve — utilizzare invece OMNIROUTE_SERVER_HOST (le shell POSIX impostano automaticamente HOSTNAME sul nome della macchina; .env non può sovrascriverla).
OMNIROUTE_SERVER_HOST 0.0.0.0 bin/cli/commands/serve.mjs Indirizzo di associazione per omniroute serve. Evita conflitti con la variabile della shell POSIX HOSTNAME (sempre impostata sul nome della macchina da bash/zsh). Se non impostata, utilizza come fallback 0.0.0.0. (#6194)

Modalità delle porte

┌─────────────────────────── Porta singola (predefinita) ────────────────────┐
│  PORT=20128                                                                 │
│  → Dashboard: http://localhost:20128                                        │
│  → API:       http://localhost:20128/v1/chat/completions                    │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────── Porte separate ──────────────────────────────────┐
│  DASHBOARD_PORT=20128                                                       │
│  API_PORT=20129                                                             │
│  API_HOST=0.0.0.0                                                           │
│  → Dashboard: http://localhost:20128                                        │
│  → API:       http://0.0.0.0:20129/v1/chat/completions                     │
│  Uso: esporre l'API alla LAN limitando la Dashboard a localhost.            │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────── Docker in produzione ────────────────────────────┐
│  PROD_DASHBOARD_PORT=443   PROD_API_PORT=8443                              │
│  → Mappa le porte del container sulle porte host in docker-compose.prod.yml.│
└─────────────────────────────────────────────────────────────────────────────┘

4. Sicurezza e autenticazione

Variabile Valore predefinito File sorgente Descrizione
MACHINE_ID_SALT endpoint-proxy-salt src/lib/auth Salt combinato con gli identificatori hardware per generare l'impronta digitale della macchina. Modificarlo per ogni distribuzione per garantire l'isolamento.
OMNIROUTE_CLI_SALT (non impostato = salt casuale per installazione, memorizzato in modo persistente in <DATA_DIR>/cli-token-salt.json) src/lib/machineToken.ts Salt HMAC per derivare il token di autenticazione della CLI locale. L'impostazione di questo valore rigenera tutti i token CLI sulla macchina e ha sempre la precedenza sul salt memorizzato in modo persistente. Vedere docs/security/CLI_TOKEN.md.
AUTH_COOKIE_SECURE false src/lib/auth Imposta il flag Secure sui cookie di sessione. Deve essere true quando l'esecuzione avviene dietro HTTPS.
REQUIRE_API_KEY false Middleware API Quando è true, tutte le richieste proxy /v1/* devono includere una chiave API valida.
ALLOW_API_KEY_REVEAL false src/shared/constants/featureFlagDefinitions.ts Consente di visualizzare i valori completi delle chiavi API nell'interfaccia utente della Dashboard. Configurabile tramite i flag di funzionalità della Dashboard; comporta un rischio per la sicurezza nelle istanze condivise.
NO_LOG_API_KEY_IDS (vuoto) src/lib/compliance/index.ts ID delle chiavi API, separati da virgole, che escludono la registrazione delle richieste (conformità al GDPR).
DEFAULT_RATE_LIMIT_PER_DAY (non impostato = illimitato) src/shared/utils/apiKeyPolicy.ts Budget giornaliero di richieste di riserva applicato alle chiavi API la cui colonna rate_limits è null. Se non impostato o vuoto: nessun limite implicito (#2289, #11017). Anche 0 equivale a nessun limite. Un numero intero positivo N abilita N richieste/giorno, 5N/settimana e 20N/mese. I valori non vuoti con formato non valido ripristinano le finestre precedenti di 1000/giorno, 5000/settimana e 20000/mese.
MAX_BODY_SIZE_BYTES 10485760 (10 MB) src/shared/middleware/bodySizeGuard.ts Dimensione massima consentita del corpo della richiesta. Rifiuta i payload che superano questo limite.
OMNIROUTE_CHAT_LARGE_BODY_BYTES 262144 (256 KB) src/shared/middleware/chatBodyAdmission.ts I corpi effettivi delle richieste pari o superiori a questa soglia acquisiscono il lease atomico locale al processo per l'ammissione dei carichi pesanti prima dell'analisi JSON (percorso BYTE, incluso POST /v1/responses). Stesso meccanismo di elusione in presenza di margine di capacità disponibile di #10437 usato per i carichi strutturalmente pesanti; rimane comunque vincolato da OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, affinché #7849 non si ripresenti.
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES 52428800 (50 MB) src/shared/middleware/chatBodyAdmission.ts Limite massimo rigido delle route di chat, applicato ai byte letti durante l'acquisizione limitata, incluse le richieste con Content-Length mancante, non valido o non veritiero; le richieste che lo superano ricevono 413.
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (non impostato — nessun limite al numero di richieste) src/shared/middleware/chatBodyAdmission.ts #503-fanout: questo limite legacy sul NUMERO di richieste si applica ora solo quando è impostato esplicitamente. Se non impostato (impostazione predefinita), l'ammissione delle chat ad alto consumo di risorse è invece regolata da OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES, un budget in BYTE derivato automaticamente e dimensionato in base al limite reale di memoria del processo in un singolo processo (un heap V8). Due richieste /v1/responses sovrapposte da circa 750.000 token causano l'interruzione di heap da circa 12 GiB (#7849): si tratta di un avviso relativo al budget di memoria, non di un limite massimo rigido del prodotto pari a 2. Un processo in condizioni normali (heap sotto il rapporto di scarico) PUÒ ammettere più richieste /v1/responses lunghe simultanee tramite OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Decine di client SSE di lunga durata (4050) dipendono dall'heap + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, non da un «massimo di 2». Aumentare questo valore alla cieca per «usare l'host» reintroduce #7849. Moltiplicare gli heap con N DATA_DIR indipendenti (#11024); non usare mai replicas>1 su un singolo file SQLite.
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES (derivato automaticamente) src/shared/middleware/admissionBudget.ts #503-fanout: sostituzione manuale del budget di byte in ingresso derivato automaticamente (25% del limite di memoria più restrittivo tra V8 e cgroup, diviso per un'amplificazione transitoria di 8x). I valori derivati ed espliciti sono limitati all'intervallo 8 MiB2 GiB. Un corpo più grande del budget effettivo fallisce immediatamente con 413 body_exceeds_budget; la contesa tra corpi gestibili singolarmente rimane ritentabile con 503. La gestione di 4050 client SSE lunghi simultanei dipende da questo budget + heap, non da un limite rigido «massimo di 2». Consultare chatAdmission.maxInflightBytes / budgetSource / pressureSeverity in /api/monitoring/health prima di effettuare modifiche.
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO 0.75 src/shared/middleware/chatBodyAdmission.ts Rapporto di scarico per pressione dell'heap (heapUsed / heap_size_limit) per l'ammissione ad alto consumo di risorse basata su BYTE e STRUTTURA (#10183, #10268, #10437). Una richiesta simultanea ad alto consumo di risorse che supera OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT viene rifiutata con il 503 ritentabile solo quando ANCHE l'heap raggiunge o supera questo rapporto; con un heap in condizioni normali viene invece ammessa tramite la capacità aggiuntiva per heap sano.
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (valore predefinito 1) src/shared/middleware/chatBodyAdmission.ts Capacità aggiuntiva limitata per il percorso rapido con heap sano (#10437), sia per STRUTTURA sia per BYTE (admitChatRequest, inclusi i corpi ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Senza questo limite, ogni richiesta in condizioni di carico ma con heap sano aggirava l'ammissione senza alcun tetto massimo. Quando questo numero di lease simultanei è attivo tramite il percorso con heap sano, le ulteriori richieste in condizioni di carico passano allo STESSO percorso di attesa limitata/scarico utilizzato in condizioni di reale pressione dell'heap. 0 disabilita completamente l'aggiramento.
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT 200 src/shared/middleware/chatBodyAdmission.ts Numero di messaggi che classifica una richiesta di chat come ad alto consumo di risorse anche quando il corpo è inferiore alla soglia in byte.
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT 64 src/shared/middleware/chatBodyAdmission.ts Numero di strumenti che classifica una richiesta di chat come ad alto consumo di risorse anche quando il corpo è inferiore alla soglia in byte.
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS 32000 src/shared/middleware/chatBodyAdmission.ts Stima prudenziale dei token basata sulla dimensione delle stringhe che classifica una richiesta come ad alto consumo di risorse; è un'approssimazione del costo di ammissione, non la tokenizzazione usata dal provider per la fatturazione.
OMNIROUTE_CHAT_HARD_MAX_MESSAGES 0 (disabilitato) src/shared/middleware/chatBodyAdmission.ts Limite facoltativo e attivabile esplicitamente per la cronologia delle chat. Disabilitato per impostazione predefinita: il numero di messaggi è una scelta dei criteri di distribuzione, non una proprietà universale di una richiesta, e l'imposizione di un limite in questo punto rifiuta le conversazioni con un errore terminale 413 prima che la pipeline di compressione possa renderle gestibili. La crescita dell'heap è limitata da OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT e dallo scarico per pressione dell'heap. Impostare un valore positivo nelle distribuzioni con memoria limitata che richiedono un tetto rigido; le richieste in eccesso riceveranno quindi un 413 strutturato che indica la necessità di compattazione.
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES 67108864 (64 MB) open-sse/handlers/chatCore/nonStreamingResponseBody.ts Limite rigido per una risposta upstream non in streaming memorizzata interamente in memoria. Superato questo limite, il lettore upstream viene annullato e la richiesta fallisce immediatamente, anziché far crescere una stringa senza limiti fino all'esaurimento dell'heap.
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES 768 open-sse/handlers/chatCore/responseHeaders.ts Numero massimo di byte trasmessi per gli header di risposta inoltrati dall'upstream. Quando il budget viene superato, gli header a priorità inferiore (ad esempio, gli header personalizzati x-codex-*, x-oai-request-id) vengono eliminati per rispettare i comuni limiti degli header dei reverse proxy. Impostare un valore più alto per inoltrare più metadati upstream, a costo di una maggiore dimensione degli header di risposta.
CORS_ORIGIN (non impostato) src/server/cors/origins.ts Elenco consentito CORS legacy per una singola origine. Per le nuove distribuzioni, preferire CORS_ALLOWED_ORIGINS. CORS serve solo per i client API browser multiorigine; le scritture autenticate della dashboard utilizzano invece richieste dalla stessa origine con protezione CSRF associata alla sessione.
CORS_ALLOWED_ORIGINS (non impostato) src/server/cors/origins.ts Elenco consentito CORS separato da virgole. Non viene inviato alcun carattere jolly, a meno che CORS_ALLOW_ALL=true non sia configurato esplicitamente.
CORS_ALLOW_ALL false src/server/cors/origins.ts Scappatoia destinata esclusivamente allo sviluppo per restituire qualsiasi Origin del browser. Non abilitarla nelle distribuzioni condivise o di produzione.
OUTBOUND_SSRF_GUARD_ENABLED true src/shared/network/outboundUrlGuard.ts Blocca le chiamate ai provider destinate a intervalli di indirizzi IP privati/loopback/link-local. Disabilitare solo in ambienti di test isolati.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS false src/shared/network/outboundUrlGuard.ts Consente URL di provider che puntano a reti private/locali (localhost, 192.168.x.x, 10.x.x.x, ecc.). OBBLIGATORIO per i provider self-hosted (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Quando è impostato su false, la dashboard rifiuta la convalida degli URL locali.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS true src/shared/network/outboundUrlGuard.ts Consente di aggiungere/convalidare provider su indirizzi locali/privati (127.0.0.1, localhost, LAN, intervalli privati), limitatamente al percorso di convalida del provider. Valore predefinito: true (priorità all'ambiente locale); impostare su false per applicare il blocco rigoroso dei soli indirizzi non pubblici. Gli endpoint dei metadati cloud (169.254.169.254, metadata.google.internal) rimangono bloccati in ogni caso. (#5066)
AUDIO_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/audioProviderNodes.ts Consente alle route /v1/audio/* (trascrizioni, sintesi vocale, traduzioni) di utilizzare un nodo provider compatibile con OpenAI ospitato al di fuori di localhost. Disabilitato per impostazione predefinita: l'instradamento dell'audio verso un host remoto modifica l'identità di uscita e deve essere una decisione esplicita dell'operatore. I nodi loopback/privati (localhost, 127.0.0.1, 172.16-31.x) sono sempre consentiti e non vengono interessati. (#3963)
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Quando OIDC è abilitato, disabilita l'accesso tramite password affinché gli utenti possano autenticarsi solo mediante Single Sign-On OIDC. È accettato anche l'alias semplice OIDC_DISABLE_PASSWORD_LOGIN; il flag di funzionalità della dashboard con la stessa chiave ha la precedenza. (#10889)
OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Alias semplice di OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889).

Checklist di rafforzamento della sicurezza

# Requisiti minimi di sicurezza per la produzione:
AUTH_COOKIE_SECURE=true        # Richiede HTTPS
REQUIRE_API_KEY=true           # Autentica tutte le chiamate proxy
ALLOW_API_KEY_REVEAL=false     # Non esporre mai le chiavi nell'interfaccia utente
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880    # Limite di 5 MB

5. Sanificazione dell'input e protezione dei dati personali (PII)

OmniRoute fornisce una difesa a due livelli: scansione delle richieste contro le injection e rimozione dei dati personali (PII) dalle risposte.

⚠️ Limitazioni: Queste misure di protezione sono rilevamenti euristici best effort, non un firewall completo contro le prompt injection né un sistema DLP per i dati personali (PII). Possono produrre falsi positivi (prompt innocui relativi a personaggi o giochi di ruolo segnalati erroneamente) e falsi negativi (leetspeak, spaziatura, schemi non in inglese). Da sole non sono sufficienti a garantire la conformità. Configura le modalità e testale con il tuo traffico prima di farvi affidamento.

Lato richiesta: protezione contro le prompt injection

Variabile Valore predefinito File sorgente Descrizione
INPUT_SANITIZER_ENABLED true src/middleware/promptInjectionGuard.ts Abilita la scansione dei messaggi in ingresso alla ricerca di schemi di prompt injection.
INPUT_SANITIZER_MODE warn src/middleware/promptInjectionGuard.ts Criterio per le injection: warn = registra soltanto, block = rifiuta la richiesta con codice 400. Il valore legacy redact non rimuove il testo dell'injection; usa PII_REDACTION_ENABLED per riscrivere i dati personali (PII) nella richiesta.
INJECTION_GUARD_MODE (non impostato) src/middleware/promptInjectionGuard.ts Alias legacy di INPUT_SANITIZER_MODE: stesso comportamento.
INPUT_SANITIZER_BLOCK_THRESHOLD high src/shared/utils/injectionSeverity.ts Gravità minima rifiutata da MODE=block: high (valore predefinito), medium o low. Gli schemi di gravità media vengono soltanto osservati, a meno che la soglia non venga abbassata.
INJECTION_GUARD_BLOCK_THRESHOLD (non impostato) src/shared/utils/injectionSeverity.ts Alias legacy di INPUT_SANITIZER_BLOCK_THRESHOLD: stesso comportamento.
PII_REDACTION_ENABLED false src/lib/guardrails/piiMasker.ts Quando è true, oscura i dati personali (PII) nelle richieste in ingresso, indipendentemente dalla modalità di gestione delle injection.
CREDENTIAL_REDACTION_ENABLED false src/lib/guardrails/credentialMasker.ts Oscura dai payload di richiesta e risposta gli schemi noti di chiavi API e token segreti. Funzionalità facoltativa; rispecchia PII_REDACTION_ENABLED.

Lato risposta: sanificatore dei dati personali (PII)

Variabile Valore predefinito File sorgente Descrizione
PII_RESPONSE_SANITIZATION false src/lib/piiSanitizer.ts Esamina le risposte dell'LLM alla ricerca di dati personali (PII) esposti prima di restituirle al client.
PII_RESPONSE_SANITIZATION_MODE redact src/lib/piiSanitizer.ts redact = maschera i dati personali (PII), warn = registra soltanto, block = elimina l'intera risposta.

Sanificatore del contesto delle route con token di VS Code

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_VSCODE_SANITIZE_CONTEXT 1 src/app/api/v1/vscode/contextSanitizer.ts Rimuove il contesto implicito dell'editor attivo (editorContext, activeEditor, currentFile, selection, openTabs…) dalle richieste a /v1/vscode/[token]/* e oscura il contenuto dei file sensibili allegati esplicitamente. Sicuro per impostazione predefinita; impostalo su 0 per disabilitarlo.

Scenari

Scenario Configurazione
Conformità aziendale INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (blocco delle injection + oscuramento dei dati personali nelle richieste e nelle risposte; le modalità sono indipendenti)
Solo monitoraggio INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — registra gli eventi ma non blocca mai
Uso personale Lascia tutto disabilitato: nessun overhead

6. Criteri per strumenti e routing

Variabile Valore predefinito File sorgente Descrizione
TOOL_POLICY_MODE disabled src/lib/toolPolicy.ts Controlla l'accesso dell'LLM agli strumenti e alle chiamate di funzione. allowlist = solo gli strumenti elencati, denylist = tutti tranne quelli elencati, disabled = nessuna restrizione.
OMNIROUTE_PAYLOAD_RULES_PATH ./config/payloadRules.json open-sse/services/payloadRules.ts Percorso del file JSON contenente le regole di manipolazione del payload (modifiche upstream specifiche per modello/protocollo).
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS 5000 open-sse/services/payloadRules.ts Intervallo di ricaricamento (ms) per l'aggiornamento automatico del file delle regole del payload. Minimo 1000.
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS false open-sse/services/model.ts Opzione facoltativa: instrada gli ID modello claude-* senza prefisso provenienti dai client Claude Code tramite l'account OAuth di Claude Code, anziché richiedere il prefisso di un provider. I prefissi espliciti dei provider continuano ad avere la precedenza. Configurabile anche tramite un interruttore nella dashboard, nella pagina del provider Claude.
COMBO_CONCURRENCY_PER_MODEL 3 open-sse/services/comboConfig.ts Limite di concorrenza per modello per le combinazioni round-robin (#9100). Il semaforo delle combinazioni round-robin era limitato rigidamente a 3 richieste simultanee per modello senza possibilità di modifica, serializzando il traffico con concorrenza maggiore dietro tale limite. Validato come >= 1 e limitato a <= 32.
DISABLE_CONTEXT_WINDOW_CHECKS false open-sse/handlers/chatCore.ts Opzione facoltativa pericolosa che ignora il controllo locale di OmniRoute sulla finestra di contesto / sul numero massimo di token di input per le richieste dirette a un singolo modello. I provider upstream continuano ad applicare i propri limiti effettivi; la compressione del prompt e il limite di token di output del modello rimangono attivi. L'ordine di precedenza effettivo è: impostazione nel database dei flag delle funzionalità > variabile di ambiente > valore predefinito; non è necessario alcun riavvio.
OMNIROUTE_DISABLE_CONVERSATION_TRACKING (non impostato) open-sse/services/conversationTracker.ts Impostare su 1 per interrompere la raccolta della cronologia delle conversazioni. resolveConversationId() restituisce un risultato non tracciato prima di leggere SQLite o analizzare la cronologia dei messaggi; sono inclusi anche gli ID di sessione forniti dal client. La gestione delle sessioni di routing rimane invariata e i record esistenti non vengono eliminati. Utile per le distribuzioni che non utilizzano la visualizzazione delle conversazioni nella dashboard e desiderano impedire che la tabella dei turni continui a crescere.

7. URL e sincronizzazione cloud

Variabile Valore predefinito File sorgente Descrizione
BASE_URL http://localhost:20128 src/lib/cloudSync.ts URL lato server utilizzato dai processi di sincronizzazione interni per chiamare /api/sync/cloud. Mantenerlo come URL di loopback/del container anche quando l'app è esposta pubblicamente tramite proxy.
CLOUD_URL (vuoto) src/lib/cloudSync.ts URL dell'endpoint di inoltro cloud (funzionalità premium).
CLOUD_SYNC_TIMEOUT_MS 12000 src/lib/cloudSync.ts Timeout HTTP per le richieste di sincronizzazione cloud.
OMNIROUTE_BUILD_PROFILE full Configurazione di build Webpack Profilo in fase di build (impostare su minimal per escludere fisicamente dal bundle i moduli con privilegi).
OMNIROUTE_STANDALONE_DIR output standalone di .build/ scripts/build/colocate-standalone.mjs Override in fase di build per la directory di output standalone utilizzata dal passaggio di co-locazione post-build. Non è un'impostazione di runtime.
OMNIROUTE_CLOUD_SYNC_SECRET (vuoto) src/lib/cloudSync.ts Segreto condiviso utilizzato per verificare la firma HMAC-SHA256 delle risposte di Cloud Sync.
OMNIROUTE_CLOUD_SYNC_SECRETS false src/lib/cloudSync.ts Impostare su true per consentire all'endpoint Cloud Sync di sovrascrivere le credenziali locali. Il valore predefinito è false.
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE false src/lib/cloudSync.ts Impostare su true per rifiutare una risposta Cloud Sync non firmata quando non è configurato alcun segreto locale (#13679). Una firma presente viene sempre verificata, e sempre rifiutata quando OMNIROUTE_CLOUD_SYNC_SECRET non è impostato, indipendentemente da questo flag. Dalla v3.9 la verifica sarà obbligatoria per impostazione predefinita.
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP false src/app/api/providers/zed/import/route.ts Impostare su true per ripristinare il comportamento in un solo passaggio «importa tutto» della v3.8.5 senza conferma dell'utente.
NEXT_PUBLIC_BASE_URL http://localhost:20128 OAuth, Dashboard, sincronizzazione URL pubblico per OAuth redirect_uri, i link della Dashboard e gli URL pubblici generati. Impostarlo sull'URL pubblico stabile quando i callback OAuth o i link generati per il browser devono utilizzare un host canonico del reverse proxy.
NEXT_PUBLIC_CLOUD_URL (vuoto) Lato client Copia lato client di CLOUD_URL.
NEXT_PUBLIC_APP_URL (non impostata) src/shared/services/cloudSyncScheduler.ts Fallback legacy per NEXT_PUBLIC_BASE_URL.
OMNIROUTE_PUBLIC_BASE_URL (non impostata) Risolutore dell'origine pubblica, URL delle immagini Origine OmniRoute destinata al browser con la priorità più alta, utilizzata per la generazione degli URL pubblici e la convalida dell'origine del browser al di fuori della dashboard. Impostala quando OpenWebUI o un altro relay raggiunge OmniRoute tramite un URL interno, ma il browser dell'utente deve recuperare i contenuti multimediali generati da una LAN, un tunnel o un'origine pubblica. Non includere /v1.
OMNIROUTE_PROVIDER_MANIFEST_URL (non impostata) open-sse/config/providerPluginManifestUrl.ts URL assoluto del manifest del plugin del provider comunicato ai client sidecar. Quando non è impostata, OmniRoute deriva /api/v1/provider-plugin-manifest dall'origine della richiesta o da HOST/PORT.
OMNIROUTE_PUBLIC_PROTOCOL http open-sse/config/providerPluginManifestUrl.ts Protocollo utilizzato quando si deriva l'URL del manifest del plugin del provider da HOST/PORT senza un'origine della richiesta. Impostalo su https dietro un proxy pubblico che termina TLS quando non è impostato alcun OMNIROUTE_PROVIDER_MANIFEST_URL esplicito.
OMNIROUTE_TRUST_PROXY (non impostata) src/server/origin/publicOrigin.ts Modalità di attendibilità opzionale per le intestazioni inoltrate dell'origine pubblica. Non impostata = non considerare attendibili Forwarded / X-Forwarded-* per le decisioni di sicurezza. true / loopback considera attendibili host/protocollo inoltrati solo da un proxy di loopback contrassegnato da token. private / lan considera attendibili anche i peer proxy della LAN privata. In produzione, preferire un NEXT_PUBLIC_BASE_URL esplicito.
KIE_CALLBACK_URL (non impostata) open-sse/utils/kieTask.ts URL di callback pubblico per i processi kie.ai asincroni. Override con la priorità più alta, prima di OMNIROUTE_KIE_CALLBACK_URL e OMNIROUTE_PUBLIC_URL.
OMNIROUTE_KIE_CALLBACK_URL (non impostata) open-sse/utils/kieTask.ts Denominazione alternativa di KIE_CALLBACK_URL. Viene usata come fallback quando la variabile principale non è impostata.
OMNIROUTE_PUBLIC_URL (non impostata) open-sse/utils/kieTask.ts Origine pubblica utilizzata per comporre gli URL di callback asincroni. Fallback con la priorità più bassa per le callback kie.ai; utilizzata anche come URL pubblico generico per altri relay.
OMNIROUTE_CROF_USAGE_URL https://crof.ai/usage_api/ open-sse/services/usage.ts Endpoint di ricerca della quota CrofAI utilizzato dalla pagina Utilizzo. Esegui l'override per relay / fixture di test.
OMNIROUTE_OPENCODE_QUOTA_URL https://opencode.ai/zen/go/v1/usage open-sse/services/opencodeQuotaFetcher.ts Endpoint ufficiale per l'utilizzo di OpenCode Go, autenticato tramite chiave API e usato dalla pagina Utilizzo. Esegui l'override per relay / fixture di test.
OPENCODE_SYNTHESIZE_CLI_HEADERS true open-sse/executors/opencode.ts Genera le intestazioni di identità di OpenCode CLI (User-Agent, x-opencode-client/project, UUID di richiesta/sessione) nelle richieste upstream opencode-go/zen quando il client non le ha inviate, affinché Cloudflare le accetti nell'egress VPS (#6210/#5997). Attiva per impostazione predefinita dalla #10571; disattivala con false/0/no/off.
OPENCODE_USER_AGENT opencode open-sse/executors/opencode.ts User-Agent predefinito utilizzato quando OPENCODE_SYNTHESIZE_CLI_HEADERS è attiva e non è impostato alcun override <PROVIDER>_USER_AGENT specifico per provider. Applicato solo agli executor opencode.
OPENCODE_CLIENT desktop open-sse/executors/opencode.ts Valore per l'intestazione x-opencode-client generata quando OPENCODE_SYNTHESIZE_CLI_HEADERS è attiva.
OPENCODE_PROJECT global open-sse/executors/opencode.ts Valore dell'header x-opencode-project sintetizzato quando OPENCODE_SYNTHESIZE_CLI_HEADERS è attivo.
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL https://ollama.com/settings open-sse/services/usage.ts URL delle impostazioni di Ollama Cloud utilizzato per il recupero delle quote. Sovrascrivibile per relay / fixture di test.
OLLAMA_USAGE_COOKIE (non impostata) open-sse/services/usage.ts Cookie __Secure-session di Ollama Cloud utilizzato per recuperare le quote dalla pagina delle impostazioni. Sensibile; quando sono configurati più account, preferire il campo per connessione nella Dashboard.
OLLAMA_CLOUD_USAGE_COOKIE (non impostata) open-sse/services/usage.ts Variabile d'ambiente alternativa per il cookie __Secure-session di Ollama Cloud. Sensibile; quando sono configurati più account, preferire il campo per connessione nella Dashboard.
OMNIROUTE_OLLAMA_USAGE_COOKIE (non impostata) open-sse/services/usage.ts Variabile d'ambiente alternativa per il cookie __Secure-session di Ollama Cloud, utilizzata prima degli alias più brevi. Sensibile; quando sono configurati più account, preferire il campo per connessione nella Dashboard.
OMNIROUTE_CODEWHISPERER_BASE_URL https://codewhisperer.us-east-1.amazonaws.com open-sse/services/usage.ts Endpoint dei limiti di utilizzo di CodeWhisperer (AWS Kiro). Sovrascrivibile per relay / fixture di test.

Important

Quando si esegue il deployment dietro un reverse proxy (nginx, Caddy), impostare NEXT_PUBLIC_BASE_URL sull'URL pubblico stabile (ad es. https://omniroute.example.com) quando i callback OAuth o i link pubblici generati devono utilizzare tale nome host. In caso contrario, i callback OAuth possono non riuscire perché redirect_uri non corrisponde e i link pubblici generati possono puntare all'origine interna del container.

Mantenere BASE_URL come URL interno di loopback/del container per i processi server-to-server. Non utilizzare un'Origin del browser o un nome host pubblico per richieste interne verso sé stessi che includono credenziali.

Le scritture autenticate della dashboard non richiedono un URL di base pubblico statico: la dashboard invia richieste non sicure alla stessa origine con un token CSRF associato alla sessione. OmniRoute centralizza comunque la convalida dell'origine pubblica per le integrazioni browser esterne alla dashboard: le variabili d'ambiente esplicite dell'URL pubblico sono considerate attendibili per prime; gli header Forwarded / X-Forwarded-* grezzi vengono ignorati, a meno che OMNIROUTE_TRUST_PROXY non sia abilitato e il peer proxy immediato sia contrassegnato come attendibile tramite token. Non utilizzare le impostazioni CORS per correggere le richieste della dashboard alla stessa origine; CORS serve solo per i client browser cross-origin.


8. Proxy in uscita

Instrada le chiamate ai provider LLM upstream attraverso un proxy HTTP o SOCKS5 per il controllo del traffico in uscita, l'instradamento geografico o il mascheramento dell'IP.

Variabile Valore predefinito File sorgente Descrizione
ENABLE_SOCKS5_PROXY true open-sse/executors Abilita l'agente proxy SOCKS5 per le chiamate upstream. Disattivalo con false.
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY true Lato client Consapevolezza lato client della disponibilità di SOCKS5.
PROXY_SKIP_RECENTLY_FAILED false src/shared/utils/featureFlags.ts Flag di funzionalità facoltativo (vedi FEATURE_FLAGS.md; un'override del DB della dashboard ha la precedenza). I pool di proxy e la rotazione per account smettono temporaneamente di riproporre un membro che ha appena avuto un errore (sonda TCP rifiutata o risposta 429 attraverso di esso) per un periodo che raddoppia a ogni ripetizione, fino a un limite massimo. true (oppure 1, yes) lo abilita.
HTTP_PROXY (non impostato) Standard di Node.js Proxy HTTP per le chiamate upstream.
HTTPS_PROXY (non impostato) Standard di Node.js Proxy HTTPS per le chiamate upstream.
ALL_PROXY (non impostato) Standard di Node.js Proxy universale (supporta socks5://).
OMNIROUTE_PROXY_ECHO_URL (non impostato) src/lib/proxyEchoTarget.ts Fissa a un singolo URL la destinazione di echo dell'IP utilizzata dalle sonde del traffico proxy in uscita. Se non impostata, la sonda prova api64.ipify.org e poi api4.ipify.org, affinché i tunnel solo IPv4 non vengano segnalati come inattivi (#9694).
NO_PROXY (non impostato) Standard di Node.js Nomi host/IP separati da virgole per ignorare il proxy.
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS 32 open-sse/utils/proxyDispatcher.ts Numero massimo di socket simultanei per ciascun dispatcher proxy HTTP/SOCKS memorizzato nella cache. I flussi SSE di lunga durata, come Codex /v1/responses, richiedono più di una connessione quando più richieste condividono lo stesso proxy a livello di account. I valori superiori a 256 sono limitati.
SOCKS_HANDSHAKE_TIMEOUT_MS 10000 open-sse/utils/socksConnectorWithFamily.ts Timeout dell'handshake (connessione) SOCKS5 in ms. Aumentalo quando un singolo host gateway residenziale è sottoposto a un'elevata concorrenza (ad es. 100 richieste simultanee): l'handshake effettivo può superare i 10 secondi con un pool saturo, anche se il proxy è raggiungibile, causando altrimenti un falso [Proxy Fast-Fail] Proxy unreachable. Limitato a 120000.
PROXY_FAIL_OPEN false src/sse/handlers/chatHelpers.ts Quando è false (valore predefinito), una richiesta il cui proxy assegnato non può essere risolto viene rifiutata (fail-closed) anziché ripiegare su una connessione diretta, evitando l'esposizione dell'IP reale. Impostalo su true per ripristinare il precedente fallback DIRECT.
ENABLE_TLS_FINGERPRINT false open-sse/executors Simula l'impronta digitale TLS utilizzando wreq-js (imita Chrome 124). Contrasta il blocco JA3/JA4.
TLS_FINGERPRINT_PROVIDERS (non impostata) open-sse/utils/proxyFetch.ts Elenco consentito di provider separati da virgole per il nuovo instradamento TLS tramite proxy (open-sse/utils/proxyFetch.ts). Quando non è impostata, il TLS diretto mantiene il comportamento precedente; solo questi provider vengono instradati attraverso il bridge per l'impronta digitale Chrome-124.
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS false open-sse/services/claudeTurnstileSolver.ts Consente al contesto del browser Playwright di Claude Turnstile di ignorare gli errori dei certificati HTTPS.

Scenari

Scenario Configurazione
SOCKS5 tramite tunnel SSH ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true
Proxy HTTP aziendale HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com
Anti-fingerprinting ENABLE_TLS_FINGERPRINT=true — richiede wreq-js (incluso)
Uscita controllata / nessun accesso diretto Lasciare PROXY_FAIL_OPEN=false (valore predefinito). Le richieste non riescono quando il proxy non è disponibile, anziché fuoriuscire tramite una connessione diretta.
Legacy / sviluppo — consenti fallback diretto PROXY_FAIL_OPEN=true. Ripristina il comportamento precedente all'irrobustimento: viene utilizzata una connessione diretta quando la risoluzione del proxy non riesce.

Nota (bypass della convalida NVIDIA — #3226): l'endpoint di convalida della chiave API di NVIDIA si blocca quando viene instradato tramite il fetch globale con patch proxy/TLS (dispatcher undici → 504). src/lib/providers/validation.ts::directHttpsRequest() ignora intenzionalmente la patch del proxy per quella singola chiamata di convalida utilizzando safeOutboundFetch({ bypassProxyPatch: true }). Questa è un'eccezione documentata e circoscritta — non influisce sul traffico in uscita di chat/utilizzo. L'ambito del bypass è vincolato da tests/unit/proxy-bypass-scope-guard-3226.test.ts.


9. Integrazione degli strumenti CLI

Controlla come OmniRoute rileva e avvia i sidecar CLI (Claude Code, Codex, ecc.).

Variabile Valore predefinito File sorgente Descrizione
CLI_MODE auto src/shared/services/cliRuntime.ts auto = cerca nel PATH di sistema; manual = usa solo percorsi espliciti.
CLI_EXTRA_PATHS (non impostata) src/shared/services/cliRuntime.ts Voci PATH aggiuntive per individuare i binari CLI (separate da due punti).
CLI_CONFIG_HOME (non impostata) src/shared/services/cliRuntime.ts Sovrascrive la directory home per la lettura delle configurazioni CLI (~/.claude, ~/.codex). Deve essere assoluta e trovarsi all'interno della home del processo — oppure, in un container, essere un percorso montato tramite bind mount (è così che funziona /host-home). In tutti gli altri casi, viene usata la directory home.
CLI_ALLOW_CONFIG_WRITES true src/shared/services/cliRuntime.ts Consente a OmniRoute di scrivere i file di configurazione CLI (aggiornamento dei token, dati di sessione). Impostare su false affinché ogni scrittura della configurazione CLI non riesca e restituisca un errore esplicito "scritture disabilitate".
CLI_CLAUDE_BIN claude src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Claude.
CLI_CODEX_BIN codex src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Codex.
CLI_DROID_BIN droid src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Droid.
CLI_OPENCLAW_BIN openclaw src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di OpenClaw.
CLI_CURSOR_BIN agent, poi cursor src/shared/services/cliRuntime.ts Percorso personalizzato del binario dell'agente Cursor. Se non specificato, il rilevamento prova prima agent e, in caso di insuccesso, utilizza cursor.
CLI_CLINE_BIN cline src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Cline.
CLI_5DIVE_BIN 5dive src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di 5dive.
CLI_5DIVE_STATE_DIR /var/lib/5dive src/shared/services/cliRuntime.ts Directory di stato di sistema di 5dive (profili di autenticazione di proprietà di root); rispecchia il valore predefinito di STATE_DIR di 5dive.
CLI_CONTINUE_BIN cn src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Continue.
CLI_QODER_BIN qodercli src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Qoder.
CLI_QWEN_BIN qwen src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Qwen Code.
CLI_AIDER_BIN aider src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Aider.
CLI_GOOSE_BIN goose src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Goose.
CLI_GEMINI_BIN gemini src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Google Gemini — solo per il rilevamento e i controlli di integrità lato server; omniroute run gemini risolve il binario gemini dal PATH di sistema.
CLI_KILO_BIN kilocode src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di Kilo Code.
CLI_OPENCODE_BIN opencode src/shared/services/cliRuntime.ts Percorso personalizzato del binario CLI di OpenCode.
CLI_HERMES_BIN hermes src/shared/services/cliRuntime.ts Percorso personalizzato del binario Hermes. Condiviso da entrambe le voci del catalogo (hermes e hermes-agent).
CLI_FORGE_BIN forge src/shared/services/cliRuntime.ts Percorso personalizzato del binario della CLI ForgeCode.
CLI_JCODE_BIN jcode src/shared/services/cliRuntime.ts Percorso personalizzato del binario della CLI jcode.
CLI_DEEPSEEK_TUI_BIN deepseek-tui src/shared/services/cliRuntime.ts Percorso personalizzato del binario della TUI DeepSeek.
CLI_CODEWHALE_BIN codewhale src/shared/services/cliRuntime.ts Percorso personalizzato del binario della CLI CodeWhale.
CLI_SMELT_BIN smelt src/shared/services/cliRuntime.ts Percorso personalizzato del binario della CLI Smelt.
CLI_PI_BIN pi src/shared/services/cliRuntime.ts Percorso personalizzato del binario Pi (pi-coding-agent).
CLI_CRUSH_BIN crush src/shared/services/cliRuntime.ts Percorso personalizzato del binario della CLI Crush.
CLI_OMP_BIN omp src/shared/services/cliRuntime.ts Percorso personalizzato del binario dell'agente Oh My Pi (omp).
CLI_LETTA_BIN letta src/shared/services/cliRuntime.ts Percorso personalizzato del binario della CLI Letta.
CLI_PRIME_AGENT_BIN prime-agent src/shared/services/cliRuntime.ts Percorso personalizzato del binario Prime Agent (Prime Intellect).
CLI_WINDSURF_BIN (nessuno) src/shared/services/cliRuntime.ts Percorso personalizzato del binario Windsurf. Windsurf viene distribuito senza un comando predefinito: il rilevamento del binario rimane disabilitato finché questa variabile non viene impostata.
CLI_DEVIN_BIN devin open-sse/executors/devin-cli.ts Percorso personalizzato del binario della CLI Devin (v3.8.0). Utilizzato dall'esecutore Windsurf/Devin.
DEVIN_DESKTOP_VERSION 3.6.27 open-sse/executors/devin-desktop.ts ide_version di Devin Desktop. I valori sostitutivi devono usare il formato x.y.z; i valori non validi vengono sostituiti con il valore predefinito verificato.
DEVIN_DESKTOP_EXTENSION_VERSION 1.48.2 open-sse/executors/devin-desktop.ts extension_version di Codeium/language-server incluso, distinto da ide_version di Desktop. I valori sostitutivi devono usare il formato x.y.z; per i valori non validi viene usato il valore predefinito incluso.
CLI_DEVIN_AGENTIC_BIN devin open-sse/executors/devin-cli-agentic.ts Valore sostitutivo della CLI Devin esclusivo per il bridge agentico. L'esecutore accetta esclusivamente l'upstream ACP stdio locale.
DEVIN_AGENTIC_HOME (obbligatorio) open-sse/executors/devin-cli-agentic.ts Home assoluta e isolata per il sottoprocesso Devin agentico; i percorsi del bridge accettati sono /home/bridge e i percorsi .sandbox locali all'attività (su Windows, C:\...\.sandbox\...).
DEVIN_AGENTIC_ACP_TIMEOUT_MS 120000 open-sse/executors/devin-cli-agentic.ts Durata massima di un turno ACP di Devin prima che il bridge termini il processo figlio e restituisca esplicitamente un timeout.
DEVIN_BRIDGE_MODEL devin-cli-agentic/swe-1-7 docker/devin-bridge/compose.yml Alias del modello Claude Code principale per il bridge isolato. L'harness live sostituisce l'esempio con un modello restituito dall'account Devin corrente.
DEVIN_BRIDGE_SONNET_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias del bridge isolato usato quando Claude Code richiede il proprio modello Sonnet predefinito.
DEVIN_BRIDGE_OPUS_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias del bridge isolato usato quando Claude Code richiede il proprio modello Opus predefinito.
DEVIN_BRIDGE_HAIKU_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias del bridge isolato usato quando Claude Code richiede il proprio modello Haiku predefinito.
DEVIN_BRIDGE_SUBAGENT_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias del bridge isolato usato per i sottoagenti di Claude Code.
DEVIN_SEAT_API_URL https://server.codeium.com open-sse/services/usage/devinCli.ts Override facoltativo per l'API di gestione delle postazioni Codeium utilizzata per la quota di Devin CLI (GetUserStatus).
AUGGIE_BIN auggie open-sse/executors/auggie.ts Override con percorso assoluto per il binario della CLI Augment (Auggie) utilizzato dal provider locale auggie. In alternativa, utilizza CLI_AUGGIE_BIN, quindi esegue una ricerca nel PATH.
CLI_AUGGIE_BIN auggie open-sse/executors/auggie.ts Override alternativo per il percorso del binario della CLI Augment (Auggie), verificato dopo AUGGIE_BIN.
ZCODE_BIN zcode open-sse/executors/zcode.ts Binario utilizzato per il client stdio del provider locale zcode. In alternativa, utilizza zcode nel PATH.
ZCODE_ARGS open-sse/executors/zcode.ts Array JSON (≤16 stringhe) di argomenti aggiuntivi passati al binario zcode quando viene avviato tramite cliTools.
ZCODE_CWD process.cwd() open-sse/executors/zcode.ts Directory di lavoro per il sottoprocesso dell'app-server ZCode.
ZCODE_PROVIDER_ID builtin:zai-coding-plan open-sse/executors/zcode.ts Override per l'ID del provider inviato all'app-server.
ZCODE_SERVER_RUNTIME_ROOT ~/.zcode/server open-sse/executors/zcode.ts Directory radice del runtime dell'app-server ZCode, in cui si trovano i file inclusi node e zcode-server.cjs.
ZCODE_SERVER_NODE <runtimeRoot>/node open-sse/executors/zcode.ts Eseguibile Node utilizzato per ospitare l'app-server ZCode.
ZCODE_SERVER_ENTRY <runtimeRoot>/zcode-server.cjs open-sse/executors/zcode.ts Script di ingresso dell'app-server utilizzato per ospitare il server ZCode.
ZCODE_STARTUP_TIMEOUT_MS 10000 open-sse/executors/zcode.ts Timeout di avvio (ms) oltre il quale l'avvio di un app-server ZCode viene considerato non riuscito.
ZCODE_RPC_TIMEOUT_MS 30000 open-sse/executors/zcode.ts Timeout RPC per richiesta (ms) per una chiamata all'app-server ZCode.
ZCODE_TURN_TIMEOUT_MS 120000 open-sse/executors/zcode.ts Durata massima (ms) di un turno ZCode prima che il supervisore ne causi il timeout.
ZCODE_POLL_INTERVAL_MS 250 open-sse/executors/zcode.ts Intervallo di polling (ms) per il completamento del turno ZCode.
HERMES_HOME ~/.hermes src/lib/cli-helper/config-generator/hermesHome.ts Directory home di Hermes Agent in cui OmniRoute legge e scrive la configurazione della CLI Hermes. Corrisponde alla variabile di ambiente impostata dal programma di installazione PowerShell di Hermes su Windows (%LOCALAPPDATA%\hermes).

Sincronizzazione automatica dei profili CLI

Questi flag di funzionalità sono facoltativi e disattivati per impostazione predefinita. Possono inoltre essere attivati o disattivati dalla dashboard CLI Code.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES false src/shared/constants/featureFlagDefinitions.ts Dopo la sincronizzazione dei modelli di un provider, riscrive automaticamente i file di profilo ~/.codex/*.config.toml dal catalogo aggiornato. Richiede CLI_ALLOW_CONFIG_WRITES; non modifica mai la configurazione Codex attiva/predefinita, l'autenticazione, le impostazioni di Codex-lb o la scelta del provider.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES false src/shared/constants/featureFlagDefinitions.ts Dopo la sincronizzazione dei modelli di un provider, riscrive automaticamente i file di profilo Claude Code ~/.claude/profiles/<name>/settings.json dal catalogo aggiornato. Richiede CLI_ALLOW_CONFIG_WRITES; non modifica mai la configurazione Claude attiva/predefinita, l'autenticazione o la scelta del provider.

Esempio Docker

# Monta i binari dell'host nel container e indica a OmniRoute dove si trovano:
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 ha effetto solo quando il percorso è effettivamente montato tramite bind mount dall'host — abbinalo a mount come ~/.codex:/host-home/.codex:rw (consulta il profilo host in docker-compose.yml). Un percorso che non si trova né nella home dell'utente del container né in un bind mount viene ignorato, perché i dati scritti in tale posizione andrebbero persi quando il container viene ricreato.

L'immagine viene eseguita come USER node, quindi un /root non montato non è un override valido.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_CONTAINER (automatico) src/shared/utils/containerEnv.ts Forza l'attivazione (1/true) o la disattivazione (0/false) del rilevamento del container. È necessario solo nei runtime non rilevati automaticamente.
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE false src/shared/services/cliRuntime.ts Consente comunque agli strumenti CLI di scrivere la configurazione in un percorso del container non montato. L'equivalente nella CLI è --allow-container-write.

Strumenti ausiliari del binario CLI (omniroute)

Queste variabili regolano il comportamento del binario CLI omniroute stesso (non il rilevamento del sidecar descritto sopra).

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_LANG (sistema) bin/cli/i18n.mjs Forza la lingua dell'output della CLI. Locale BCP-47 (ad es. en, pt-BR). Ha la precedenza sulle variabili d'ambiente delle impostazioni locali di sistema (LC_ALL, LC_MESSAGES).
OMNIROUTE_SHOW_LOG (non impostato) bin/cli/runtime/processSupervisor.mjs Impostalo su 1 per inoltrare stdout/stderr del server al terminale in modalità supervisionata. Equivale al flag --log di omniroute serve.
OMNIROUTE_CLI_TOKEN (non impostato) bin/cli/api.mjs Token di autenticazione della macchina inserito come header x-omniroute-cli-token. Generato automaticamente nell'attività 8.12.
OMNIROUTE_HTTP_TIMEOUT_MS 30000 bin/cli/api.mjs Timeout HTTP per tentativo (ms) per le richieste dalla CLI al server.
OMNIROUTE_READY_TIMEOUT_MS 60000 bin/cli/utils/pid.mjs Tempo massimo (ms) durante il quale la CLI attende l'endpoint di integrità del server prima di visualizzare un avviso di timeout. Utile per gli avvii a freddo lenti (ad es. Windows). Può essere impostato anche tramite --ready-timeout.
OMNIROUTE_VERBOSE 0 bin/cli/api.mjs Impostalo su 1 per visualizzare su stderr la diagnostica relativa ai nuovi tentativi e al backoff durante i comandi CLI.
OMNIROUTE_PLUGIN_PATH (non impostato) bin/cli/plugins.mjs Directory personalizzata per il rilevamento dei plugin CLI (pacchetti omniroute-cmd-*). Se non impostata, il valore predefinito è ~/.omniroute/plugins/. Solo per la CLI — non raggiunge mai lo scanner dei plugin lato server, il cui percorso è specificato da OMNIROUTE_PLUGINS_DIR (sezione 2).

10. Integrazioni interne di agenti e MCP

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_BASE_URL rilevamento automatico open-sse/mcp-server/server.ts URL esplicito che consente agli strumenti MCP/A2A di raggiungere OmniRoute. Sostituisce il rilevamento automatico di localhost.
OMNIROUTE_API_KEY (non impostata) Moduli MCP/A2A Chiave API per le chiamate interne agli strumenti MCP e alle skill A2A.
OMNIROUTE_API_KEY_ID (non impostato) open-sse/mcp-server/audit.ts ID della chiave per l'attribuzione dei log di audit MCP.
ROUTER_API_KEY (non impostata) Obsoleto Alias obsoleto di OMNIROUTE_API_KEY.
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS 30 src/lib/a2a/taskManager.ts Numero di giorni per cui la cronologia delle attività A2A viene conservata nel database locale prima che l'eliminazione giornaliera rimuova una riga. Se non impostato, non numerico o <= 0, viene usato 30.
OMNIROUTE_A2A_MEMORY_HITS 1 src/lib/a2a/taskExecution.ts Interruttore di disattivazione per la funzionalità di osservabilità dei riscontri in memoria A2A. Impostare su 0 per ignorare completamente la ricerca di richiamo dalla memoria per un'attività; qualsiasi altro valore (incluso quello non impostato) la mantiene abilitata.
OMNIROUTE_ISSUE_AGENT_ENABLED false src/app/api/issue-agent/runs/route.ts Abilita l'endpoint di valutazione registrata offline/locale di Issue Agent. Lasciare disabilitato, salvo quando si eseguono esplicitamente flussi di lavoro locali di valutazione registrata.
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS (non impostato) src/lib/issueAgent/execution.ts Timeout (ms) per una singola esecuzione di valutazione registrata di Issue Agent. Limitato a un valore massimo interno; se non impostato o non valido, viene usato il valore predefinito integrato.
OMNIROUTE_CONTEXT (contesto attivo) bin/cli/program.mjs, bin/cli/api.mjs Contesto/profilo della modalità remota della CLI per i comandi omniroute; sostituisce il contesto attivo nell'archivio locale dei contesti. Equivale a --context <name>.
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED 0 bin/cli/contexts.mjs Disabilita il backend opzionale del portachiavi del sistema operativo keytar per le credenziali dei contesti della CLI. Quando è abilitato, le credenziali rimangono in config.json con modalità 0600 e la CLI emette una sola volta un avviso di ripiego; destinato all'uso intenzionale in ambienti headless/container.
OMNIROUTE_MCP_ENFORCE_SCOPES true open-sse/mcp-server/server.ts Applica il controllo degli accessi basato sugli ambiti alle chiamate degli strumenti MCP.
OMNIROUTE_MCP_SCOPES (tutti) open-sse/mcp-server/server.ts Ambiti separati da virgole: admin, combos, health, models, routing, budget, metrics, pricing, memory, skills.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS false open-sse/mcp-server/descriptionCompressor.ts Comprime le descrizioni degli strumenti MCP prima di serializzare il manifesto. Valori di abilitazione: 1, true, on.
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION rtk open-sse/mcp-server/descriptionCompressor.ts Algoritmo/profilo di compressione. Valori di disabilitazione: 0, false, off.
OMNIROUTE_MCP_FETCH_TIMEOUT_MS 10000 open-sse/mcp-server/fetchTimeout.ts Limite di tempo (ms) prima dell'interruzione delle letture di gestione interne del server MCP (stato, resilienza, combinazioni, quota, utilizzo).
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS 60000 open-sse/mcp-server/fetchTimeout.ts Tempo massimo prima dell'interruzione (ms) per i passaggi MCP in attesa di un provider (route_request, web_search, web_fetch).
OMNIROUTE_CORPUS_CACHE_SIZE 5 src/lib/localCorpus/configured.ts Numero massimo di istanze dell'indice del corpus locale memorizzate nella cache in memoria (LRU, una per directory radice indicizzata). Limitato a un minimo di 1.
MODEL_SYNC_INTERVAL_HOURS 24 src/shared/services/modelSyncScheduler.ts Intervallo di sincronizzazione del catalogo dei modelli, in ore.
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 src/lib/usage/providerLimits.ts Intervallo di polling dei limiti di frequenza e delle quote del provider.
PROVIDER_LIMITS_SYNC_SPACING_MS 1500 src/lib/usage/providerLimits.ts Intervallo (ms) tra recuperi consecutivi delle quote OAuth durante una sincronizzazione in blocco; le connessioni OAuth vengono recuperate una alla volta per evitare picchi di richieste verso un servizio upstream. 0 disattiva questa limitazione (richieste simultanee).
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS 250 open-sse/services/quotaFetchThrottle.ts Intervallo minimo (ms) tra recuperi consecutivi delle quote upstream nel percorso di preflight/monitoraggio per richiesta; distanzia le chiamate di rete simultanee affinché più account su un singolo IP non generino picchi di richieste verso il servizio upstream. Integrato nei sistemi di recupero delle quote di Codex (/wham/usage), DeepSeek, Bailian (entrambi i punti di recupero), OpenCode e Crof (#6009, #6911). Il percorso generico di dispatch usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/ecc.) non è ancora coperto: viene monitorato separatamente. Le corrispondenze nella cache non sono interessate. 0 disabilita la funzionalità; limitato all'intervallo 0..5000.
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS 5000 src/lib/usage/providerLimits.ts Ritardo (ms) prima dell'aggiornamento dei limiti del provider dopo un evento di utilizzo effettivo, per consentire all'API delle quote upstream di registrare il consumo.
OMNIROUTE_LOGIN_BROWSER_PATH rilevamento automatico open-sse/services/adobeFireflyBrowserLogin.ts Percorso assoluto di un eseguibile Chrome o Edge di sistema utilizzato per l'accesso interattivo ad Adobe Firefly e il rinnovo in background.
ADOBE_FIREFLY_BROWSER_REFRESH abilitato open-sse/services/adobeFireflySession.ts Mantiene aggiornati lo stato IMS e quello relativo ai rischi del browser mediante sessioni Chrome CDP specifiche per account. Impostare su 0 per disabilitare il rinnovo tramite browser.
ADOBE_FIREFLY_SESSION_DISK abilitato open-sse/services/adobeFireflySession.ts Mantiene in modo persistente le sessioni Adobe ripristinate in DATA_DIR tra i riavvii del processo. Impostare su 0 per conservare le sessioni esclusivamente in memoria.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Intervallo minimo, in millisecondi, tra gli invii di generazione ad Adobe Firefly; 0 disabilita l'intervallo.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Periodo di attesa aggiuntivo, in millisecondi, dopo ogni terzo invio riuscito ad Adobe.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyClient.ts Backoff di base, in millisecondi, dopo risposte Adobe 408 temporanee; combinato con l'intervallo tra gli invii per un massimo di cinque tentativi.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES false src/instrumentation-node.ts Disabilita tutti i servizi in background (sincronizzazione, prezzi, aggiornamento dei modelli). Utile per CI/test.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS (non impostato) src/lib/config/runtimeSettings.ts Forza l'attivazione delle attività in background quando viene rilevato un test automatizzato. Impostare 1 per ignorare l'euristica dei test.
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS 600000 src/lib/jobs/budgetResetJob.ts Frequenza di controllo della reimpostazione del budget (ms). Valore minimo 10000.
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS 60000 src/lib/quota/connectionRecovery.ts Cadenza del ripristino proattivo delle connessioni dopo il periodo di attesa (ms): convalida nuovamente le connessioni il cui rate_limited_until transitorio è scaduto, al di fuori del percorso critico delle richieste. Minimo 5000.
OMNIROUTE_DISABLE_CONNECTION_RECOVERY false src/lib/quota/connectionRecovery.ts Disabilita lo scheduler di ripristino proattivo delle connessioni dopo il periodo di attesa (il ripristino lazy in getProviderCredentials continua ad applicarsi).
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS 1800000 src/lib/jobs/reasoningCacheCleanupJob.ts Cadenza della pulizia della cache di ragionamento (ms). Minimo 60000.
OMNIROUTE_REASONING_MIN_BUDGET non impostato (disabilitato) open-sse/services/reasoningTokenBuffer.ts Limite minimo facoltativo per i budget di output dei modelli di ragionamento: il valore max_tokens del chiamante nell'intervallo [256, limite minimo) viene innalzato al limite minimo (senza superare il limite di output del modello). Non impostato = i budget del client non vengono mai aumentati (#9507).
OMNIROUTE_LOG_EXPORT_CRON 0 * * * * src/lib/jobs/logExportJob.ts Espressione cron (UTC) per il processo di esportazione dei log delle chiamate che svuota ogni destinazione di esportazione dei log abilitata.
OMNIROUTE_CONFIG_HOT_RELOAD_MS 5000 src/lib/config/hotReload.ts Intervallo di polling (ms) per il ricaricamento a caldo della configurazione. I valori inferiori a 1000 vengono rifiutati.
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE (abilitata) src/lib/db/apiKeys.ts Impostare su 1 per ignorare la cache di autenticazione delle chiavi API basata su Redis (forza le letture dal DB).
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS 0 open-sse/services/compression/engines/rtk/filterLoader.ts Considera attendibili le regole dei filtri di progetto RTK gestite dagli utenti senza rigorosi controlli delle firme.
OMNIROUTE_LITE_MAX_TOOL_LENGTH 2000 open-sse/services/compression/lite.ts Limite di caratteri per il troncamento proattivo dei risultati degli strumenti in Lite quando lite.maxToolLength non è impostato. Intervallo 2561000000. L'impostazione della dashboard ha la precedenza su questa variabile di ambiente.
OMNI_COMPRESSION_WORKERS 2 open-sse/services/compression/compressionWorkerPool.ts Numero massimo di worker RTK/Caveman sincroni simultanei; i processi in eccesso attendono in ordine FIFO.
OMNI_COMPRESSION_WORKER_TIMEOUT_MS 120000 open-sse/services/compression/compressionWorkerPool.ts Timeout per processo in millisecondi. I worker che superano il timeout vengono terminati e, in caso di errore, la richiesta prosegue invariata.
OMNI_COMPRESSION_WORKER_IDLE_MS 60000 open-sse/services/compression/compressionWorkerPool.ts Durata massima di inattività in millisecondi prima che un worker di compressione inutilizzato venga terminato.
COMPRESSION_PIPELINE_BREAKER_ENABLED false open-sse/services/compression/pipelineEngineBreaker.ts Interruttore principale del circuit breaker per ciascun motore della pipeline combinata T02. Facoltativo (disattivato per impostazione predefinita) — quando è attivo, un motore che genera ripetutamente eccezioni tra richieste diverse viene ignorato (fail-open) per un periodo di attesa; disattivato = comportamento precedente identico a livello di byte.
COMPRESSION_PIPELINE_BREAKER_THRESHOLD 3 open-sse/services/compression/pipelineEngineBreaker.ts Numero di errori consecutivi tra richieste diverse prima dell'apertura del circuit breaker di un motore.
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS 30000 open-sse/services/compression/pipelineEngineBreaker.ts Numero di millisecondi durante i quali un motore con circuit breaker aperto viene ignorato prima di una verifica in stato semiaperto.
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR 2 open-sse/services/compression/engines/ccr/index.ts Incremento del feedback di recupero CCR T08/H8: ogni recupero precedente di un blocco memorizzato aumenta linearmente il relativo minChars effettivo (i contenuti recuperati di frequente vengono compressi meno; >=3 recuperi = mai compressi). 1 disabilita l'incremento (esclusione binaria solo al raggiungimento della soglia).
COMPRESSION_CCR_DURABLE_STORE true open-sse/services/compression/engines/ccr/index.ts Archivio durevole dei blocchi CCR (#9061). Supporta l'archivio in memoria con SQLite, affinché un blocco sopravviva all'espulsione LRU, al TTL, a un riavvio o a un recupero eseguito su un'altra istanza. Impostare su false per mantenere i blocchi solo in memoria. I blocchi superiori a 512KB e i runtime cloud rimangono esclusivamente in memoria in ogni caso.
COMPRESSION_PREFIX_FREEZE_ENABLED false open-sse/services/compression/prefixFreeze.ts Interruttore principale per il congelamento del prefisso T08/H5 basato sull'utilizzo osservato. Attivazione esplicita (disattivato per impostazione predefinita) — quando è attivo, un prompt di sistema osservato >= rispetto alla soglia viene considerato un prefisso stabile memorizzabile nella cache e preservato dalla compressione, anche per i provider non rilevati dall'euristica statica della cache (il congelamento si limita a preservare, senza mai modificare).
COMPRESSION_PREFIX_FREEZE_THRESHOLD 3 open-sse/services/compression/prefixFreeze.ts Numero di osservazioni di un prompt di sistema necessarie prima che venga considerato un prefisso stabile congelato.
OMNIROUTE_BOOTSTRAPPED false src/app/(dashboard)/dashboard/page.tsx Impostato su true dallo script di bootstrap dopo la configurazione iniziale. Controlla la visibilità della procedura guidata di configurazione.
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE 0 open-sse/executors/antigravity.ts Scappatoia: consente al corpo della richiesta di sovrascrivere il campo del progetto Antigravity.
ANTIGRAVITY_CREDITS off open-sse/services/antigravityCredits.ts Criterio dei crediti Google One AI: off non inserisce mai i crediti, retry li inserisce una volta dopo un errore 429 di quota idoneo e always li inserisce alla prima richiesta.
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS 0 open-sse/translator/request/openai-to-gemini.ts Consente al traduttore delle richieste Antigravity di ignorare la rigorosa convalida della firma delle richieste CLI quando il servizio upstream rifiuta firme reali (modalità di debug/CLI obsoleta). Un valore diverso da zero abilita l'esclusione.
AGY_TOKEN_FILE ~/.gemini/antigravity-cli/antigravity-oauth-token src/app/api/providers/agy-auth/apply-local/route.ts Sovrascrive il percorso del file del token della CLI Antigravity (agy) per l'importazione dell'accesso locale con rilevamento automatico.

Bridge OAuth per la CLI (interno)

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_SERVER rilevamento automatico src/lib/oauth/config/index.ts URL del server per il bridge di autenticazione CLI↔OmniRoute.
OMNIROUTE_TOKEN (non impostato) src/lib/oauth/config/index.ts Token di autenticazione per il bridge della CLI.
OMNIROUTE_USER_ID cli src/lib/oauth/config/index.ts ID utente per le sessioni del bridge della CLI.
SERVER_URL (non impostato) src/lib/oauth/config/index.ts Alias legacy di OMNIROUTE_SERVER.
CLI_TOKEN (non impostato) src/lib/oauth/config/index.ts Alias legacy di OMNIROUTE_TOKEN.
CLI_USER_ID (non impostato) src/lib/oauth/config/index.ts Alias legacy di OMNIROUTE_USER_ID.

11. Credenziali dei provider OAuth

Credenziali integrate per lo sviluppo su localhost. Per le distribuzioni remote, registra le tue credenziali nella console per sviluppatori di ciascun provider.

Variabile Provider Note
CLAUDE_OAUTH_CLIENT_ID Claude Code (Anthropic) Client pubblico: non è richiesto alcun segreto.
CLAUDE_CODE_REDIRECT_URI Claude Code Sovrascrive l'URI di reindirizzamento. Valore predefinito: https://platform.claude.com/oauth/code/callback
CODEX_OAUTH_CLIENT_ID Codex / OpenAI Client pubblico.
GEMINI_OAUTH_CLIENT_ID Gemini (Google) Richiede il _SECRET corrispondente.
GEMINI_OAUTH_CLIENT_SECRET Gemini (Google)
KIMI_CODING_OAUTH_CLIENT_ID Kimi Coding (Moonshot) Client pubblico.
ANTIGRAVITY_OAUTH_CLIENT_ID Antigravity (Google) Richiede il _SECRET corrispondente.
ANTIGRAVITY_OAUTH_CLIENT_SECRET Antigravity (Google)
GITHUB_OAUTH_CLIENT_ID GitHub Copilot Client pubblico.
GHE_COPILOT_OAUTH_CLIENT_ID GHE Copilot Sovrascrittura facoltativa dell'ID client OAuth di GitHub Enterprise Copilot. Se non impostata, utilizza il valore pubblico predefinito di GITHUB_OAUTH_CLIENT_ID.
WINDSURF_API_KEY Windsurf / Devin (v3.8) Chiave API di riserva utilizzata da open-sse/executors/devin-cli.ts quando non sono disponibili credenziali specifiche per la connessione. Facoltativa.
CLI_DEVIN_BIN Devin CLI (v3.8) Percorso personalizzato del binario Devin CLI (devin). Risolto da open-sse/executors/devin-cli.ts.
GITLAB_DUO_OAUTH_CLIENT_ID GitLab Duo (v3.8) ID client OAuth per GitLab Duo. Registra un'app all'indirizzo https://gitlab.com/-/profile/applications con URI di reindirizzamento <NEXT_PUBLIC_BASE_URL>/callback e ambiti api, read_user, openid, profile, email. In alternativa, utilizza GITLAB_OAUTH_CLIENT_ID.
GITLAB_DUO_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Segreto del client OAuth per GitLab Duo. Facoltativo: il flusso PKCE non richiede un segreto. In alternativa, utilizza GITLAB_OAUTH_CLIENT_SECRET.
GITLAB_DUO_BASE_URL GitLab Duo (v3.8) Sovrascrive l'URL di base di GitLab (GitLab self-hosted). Il valore predefinito è https://gitlab.com. In alternativa, utilizza GITLAB_BASE_URL.
GITLAB_BASE_URL GitLab Duo (v3.8) Valore di riserva legacy per GITLAB_DUO_BASE_URL. Utilizzato quando la variante _DUO_ non è impostata.
GITLAB_OAUTH_CLIENT_ID GitLab Duo (v3.8) Valore di riserva legacy per GITLAB_DUO_OAUTH_CLIENT_ID, utilizzato da src/lib/oauth/constants/oauth.ts.
GITLAB_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Fallback legacy per GITLAB_DUO_OAUTH_CLIENT_SECRET utilizzato da src/lib/oauth/constants/oauth.ts.
QODER_OAUTH_CLIENT_SECRET Qoder
QODER_OAUTH_AUTHORIZE_URL Qoder Impostare per abilitare OAuth di Qoder.
QODER_OAUTH_TOKEN_URL Qoder
QODER_OAUTH_USERINFO_URL Qoder
QODER_OAUTH_CLIENT_ID Qoder
QODER_PERSONAL_ACCESS_TOKEN Qoder Fallback diretto alla chiave API (ignora OAuth).
QODER_CLI_WORKSPACE Qoder ID dell'area di lavoro per Qoder CLI.
OMNIROUTE_QODER_WORKSPACE Qoder Alias per QODER_CLI_WORKSPACE.
QODER_CLI_CONFIG_DIR Qoder Sovrascrive la directory di configurazione di Qoder CLI (sessione PAT isolata, evita di sovrascrivere un accesso dal browser).
BLACKBOX_WEB_VALIDATED_TOKEN Blackbox Web Token tk del frontend da inviare come validated a /api/chat. Obbligatorio quando Blackbox impone la corrispondenza dei token; in caso contrario, OmniRoute utilizza come fallback un UUID casuale. Vedere il problema #2252.
VISION_BRIDGE_BASE_URL Protezione Vision Bridge URL di base compatibile con OpenAI per le chiamate vision-bridge non Anthropic. Il valore predefinito è l'URL OpenAI legacy definito nell'ambiente oppure api.openai.com. Indirizzarlo al self-loop /v1 di OmniRoute o a qualsiasi endpoint compatibile con OpenAI (Gemini compatibile con OpenAI, OpenRouter). Problema #2232. Quando l'URL è il /v1 di OmniRoute, la sotto-richiesta di descrizione invia x-omniroute-admission-bypass: internal e si autentica con la credenziale self-loop risolta (sentinella sk_omniroute in modalità locale oppure OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350), affinché le distribuzioni con REQUIRE_API_KEY=true funzionino.
VISION_BRIDGE_API_KEY Protezione Vision Bridge Chiave API per l'URL precedente. Sovrascrive le variabili di ambiente OpenAI / Google specifiche del provider per le chiamate vision-bridge non Anthropic. I modelli Anthropic mantengono il proprio percorso dedicato per la chiave Anthropic. Problema #2232.

Warning

  1. Vai a Google Cloud Console → Credenziali
  2. Crea un ID client OAuth 2.0 (tipo: "Applicazione web")
  3. Aggiungi l'URL del server come URI di reindirizzamento autorizzato
  4. Sostituisci i valori delle credenziali in .env.

12. Override dello User-Agent dei provider

Sovrascrive l'header User-Agent inviato a ciascun provider upstream. Questo valore viene risolto dinamicamente in fase di esecuzione dalla classe base dell'executor:

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

Fonte: open-sse/executors/base.tsbuildHeaders()

Variabile Valore predefinito Quando aggiornare
CLAUDE_USER_AGENT claude-cli/2.1.258 (external, cli) Quando Anthropic rilascia una nuova versione della CLI
CLAUDE_DISABLE_TOOL_NAME_CLOAK false executors/base.ts + executors/cliproxyapi.ts Impostare su 1/true per inoltrare testualmente ad Anthropic i nomi degli strumenti di harness di terze parti su entrambi i percorsi diretti ad Anthropic (OAuth nativo e CLIProxyAPI). Per impostazione predefinita, l'executor assegna in modo deterministico alias ai nomi degli strumenti non appartenenti a Claude Code (utilizzando la mappatura canonica di Claude Code, quando disponibile, altrimenti PascalCase) e li ripristina nella risposta tramite _toolNameMap, in modo che gli harness con strumenti in snake_case non vengano rifiutati perché identificati come client di terze parti. Solo per il debug.
CODEX_USER_AGENT codex-cli/0.142.0 (Windows 10.0.26200; x64) Quando OpenAI aggiorna la CLI Codex
CODEX_CLIENT_VERSION 0.131.0 Sovrascrive la versione del client Codex indipendentemente dalla stringa UA completa
CLAUDE_CODE_CLIENT_VERSION 2.1.258 Sovrascrive la versione di Claude Code dichiarata indipendentemente da CLAUDE_USER_AGENT. Anthropic limita l'accesso ad alcuni modelli in base a questo valore (#12417).
GITHUB_COPILOT_CLI_VERSION 1.0.81-6 Sovrascrive la versione della CLI Copilot dichiarata indipendentemente da GITHUB_USER_AGENT
GITHUB_USER_AGENT GitHubCopilotChat/0.54.0 Quando GitHub Copilot Chat viene aggiornato
ANTIGRAVITY_USER_AGENT antigravity/2.0.1 darwin/arm64 Quando Antigravity IDE viene aggiornato
KIRO_USER_AGENT AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 Quando Kiro IDE viene aggiornato
KIRO_OAUTH_CLIENT_ID kiro-cli Sovrascrive il clientId (ID pubblico) del codice dispositivo social di Kiro
KIRO_VERIFY_FULL_CRC false Funzionalità facoltativa: convalida CRC completa per ogni frame nel flusso di eventi di Kiro (per il debug dei flussi danneggiati)
QODER_USER_AGENT Qoder-Cli Quando la CLI Qoder viene aggiornata
CURSOR_USER_AGENT Cursor/3.3 Quando Cursor viene aggiornato

Tip

Puoi aggiungere override dello User-Agent per qualsiasi provider utilizzando il modello {PROVIDER_ID}_USER_AGENT. L'executor costruisce dinamicamente il nome della variabile di ambiente.


13. Compatibilità dell'impronta digitale CLI

Quando è abilitata, OmniRoute riordina le intestazioni HTTP e i campi del corpo JSON per farli corrispondere esattamente alla firma degli strumenti CLI ufficiali. Ciò riduce il rischio che l'account venga contrassegnato, preservando al contempo l'IP del proxy.

Fonte: open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts

Per provider

Variabile Attivazione Effetto
CLI_COMPAT_CODEX =1 Imita la firma delle richieste di Codex CLI
CLI_COMPAT_CLAUDE =1 Imita la firma delle richieste di Claude Code
CLI_COMPAT_GITHUB =1 Imita la firma delle richieste di GitHub Copilot
CLI_COMPAT_ANTIGRAVITY =1 Imita la firma delle richieste di Antigravity
CLI_COMPAT_CURSOR =1 Imita la firma delle richieste di Cursor
CLI_COMPAT_KIMI_CODING =1 Imita la firma delle richieste di Kimi Coding
CLI_COMPAT_KILOCODE =1 Imita la firma delle richieste di Kilo Code
CLI_COMPAT_CLINE =1 Imita la firma delle richieste di Cline

Globale

Variabile Attivazione Effetto
CLI_COMPAT_ALL =1 Abilita contemporaneamente la compatibilità dell'impronta per tutti i provider.

Override dell'identità di Kimi Coding CLI

Variabile Valore predefinito File sorgente Descrizione
KIMI_CLI_VERSION 1.36.0 src/lib/oauth/providers/kimi-coding.ts Sostituisce la versione di Kimi CLI inviata durante le chiamate OAuth/API.
KIMI_CODING_DEVICE_ID (valore acquisito) src/lib/oauth/providers/kimi-coding.ts Sostituisce l'ID dispositivo Kimi acquisito usato nelle intestazioni del client.

Note

Questa funzionalità opera insieme agli override dello User-Agent (§12). Il sistema di impronte gestisce l'ordine delle intestazioni e dei campi del corpo, mentre gli override dello User-Agent gestiscono la specifica stringa UA. Entrambi possono essere abilitati in modo indipendente.


14. Provider con chiave API

Chiavi API per i provider che utilizzano l'autenticazione diretta. Configurazione consigliata: Dashboard → Provider → Aggiungi chiave API.

L'impostazione tramite variabili d'ambiente è un'alternativa per le distribuzioni Docker o headless.

Schema riconosciuto: {PROVIDER_ID}_API_KEY

Variabile Provider
DEEPSEEK_API_KEY DeepSeek
NVIDIA_API_KEY NVIDIA NIM
JINA_AI_API_KEY Jina AI (Foundation API + fallback Reader)
JINA_API_KEY Jina AI (alias di JINA_AI_API_KEY)
GEMINI_API_KEY Gemini (Google AI Studio) incorporamenti + fallback chat
GOOGLE_API_KEY Gemini (alias di GEMINI_API_KEY)

Note

Le voci statiche ${PROVIDER}_API_KEY per Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius e Qianfan sono state rimosse nella v3.8.0 perché il runtime non le legge più: questi provider si basano esclusivamente sulla Dashboard, su data/provider-credentials.json o sul database crittografato. Consulta la sezione Audit: variabili rimosse / non utilizzate in fondo a questo documento per il percorso di migrazione.

Tip

Le chiavi impostate tramite la Dashboard vengono archiviate in forma crittografata in SQLite e hanno la precedenza sulle variabili d'ambiente.

Jina: gli incorporamenti jina-ai/…, le operazioni di reranking, classificazione e segmentazione e jina-search non addebitano una chiave d'ambiente del cluster quando esiste una connessione jina-ai (o jina-reader condivisa) nella Dashboard: getProviderCredentials applica una strategia di riempimento prioritario. JINA_AI_API_KEY / JINA_API_KEY vengono usate solo quando non è disponibile alcuna chiave utilizzabile dalla Dashboard. I log delle chiamate attribuiscono il fallback dell'ambiente come connection_id=env:JINA_AI_API_KEY. La scheda Reader (jina-reader, r.jina.ai) non gestisce mai /v1/embeddings o /v1/rerank.

Gemini: gemini/gemini-embedding-2 (alias google/gemini-embedding-2) usa prima la connessione gemini della Dashboard. GEMINI_API_KEY / GOOGLE_API_KEY vengono usate solo quando non è disponibile alcuna chiave utilizzabile dalla Dashboard. I log delle chiamate attribuiscono il fallback dell'ambiente come connection_id=env:GEMINI_API_KEY. Il traffico multimodale nativo utilizza x-goog-api-key verso :embedContent / :batchEmbedContents: N elementi OpenAI input diventano N vettori.


15. Impostazioni dei timeout

Tutti i valori sono espressi in millisecondi. Risoluzione centralizzata in src/shared/utils/runtimeTimeouts.ts.

Gerarchia dei timeout

REQUEST_TIMEOUT_MS (override globale)
├─→ FETCH_TIMEOUT_MS (chiamate ai provider upstream, valore predefinito: 600000)
│   ├─→ FETCH_HEADERS_TIMEOUT_MS (eredita da FETCH_TIMEOUT_MS)
│   ├─→ FETCH_BODY_TIMEOUT_MS (eredita da FETCH_TIMEOUT_MS)
│   ├─→ TLS_CLIENT_TIMEOUT_MS (eredita da FETCH_TIMEOUT_MS)
│   │   └── TLS_FIRST_BYTE_WATCHDOG_MS (indipendente, valore predefinito: 10000)
│   ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (indipendente, valore predefinito: 15000)
│   ├── FETCH_CONNECT_TIMEOUT_MS (indipendente, valore predefinito: 30000)
│   └── FETCH_KEEPALIVE_TIMEOUT_MS (indipendente, valore predefinito: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (eredita da REQUEST_TIMEOUT_MS, valore predefinito: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (indipendente, valore predefinito: 1260000; 0 disabilita)
├─→ STREAM_READINESS_TIMEOUT_MS (eredita da REQUEST_TIMEOUT_MS, valore predefinito: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (limita le estensioni adattive del timeout di disponibilità, valore predefinito: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (eredita da REQUEST_TIMEOUT_MS, valore predefinito: 30000)
    ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (derivato, valore predefinito: 300000)
    ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (valore predefinito: 60000)
    ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (valore predefinito: 5000)
    └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (valore predefinito: 0 = disabilitato)
Variabile Valore predefinito Descrizione
REQUEST_TIMEOUT_MS (non impostato) Scorciatoia globale: sostituisce i valori predefiniti sia di FETCH_TIMEOUT_MS sia di STREAM_IDLE_TIMEOUT_MS.
FETCH_TIMEOUT_MS 600000 Timeout totale della richiesta HTTP per le chiamate al provider upstream.
STREAM_IDLE_TIMEOUT_MS 600000 Intervallo massimo di silenzio tra byte grezzi ricevuti dall'upstream prima dell'interruzione. I modelli con ragionamento esteso raramente restano in pausa per più di 90 s.
STREAM_ACTIVE_TIMEOUT_MS 1260000 Durata totale massima dello stream SSE attivo; non viene mai reimpostata alla ricezione di byte dall'upstream ed è indipendente da REQUEST_TIMEOUT_MS. Deriva dal valore timeoutMs per modello più elevato nel registro (1200000, Codex), con un margine aggiuntivo di 60000, così un modello autorizzato a utilizzare l'intero budget non viene mai interrotto a metà risposta. Impostare su 0 per disabilitarlo.
OMNIROUTE_SSE_COMMENTS (disabilitato) Indica se OmniRoute può emettere righe di commento SSE : (ad esempio l'heartbeat : keepalive e i trailer di metadati x-omniroute-*). Disabilitato per impostazione predefinita (#10524), poiché i client con compatibilità OpenAI rigorosa eseguono JSON.parse su ogni riga SSE e vanno in errore con i commenti :; gli heartbeat data: non sono interessati. Impostare on/true/1/yes per riabilitarlo. Utilizzato da open-sse/utils/sseHeartbeat.ts.
STREAM_READINESS_TIMEOUT_MS 80000 Tempo entro cui ricevere il primo evento SSE che non sia un ping. Eredita REQUEST_TIMEOUT_MS quando è impostato.
STREAM_READINESS_MAX_TIMEOUT_MS 180000 Finestra adattiva massima di attesa del primo evento per richieste in streaming di grandi dimensioni, con uso intensivo di strumenti o con un livello elevato di ragionamento.
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED true Interruttore di disattivazione per l'euristica /goal. Impostare false/0/off per disabilitare completamente il rilevamento: i timeout di readiness e il ripristino dello stream non vengono mai aumentati in base al corpo o agli header della richiesta, riducendo l'amplificazione dei timeout controllata dal client.
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS 600000 Finestra massima di attesa del primo evento per le esecuzioni dell'agente /goal rilevate o per le richieste forzate con x-omniroute-agent-goal.
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY true Abilita automaticamente il ripristino anticipato dello stream per le esecuzioni dell'agente /goal rilevate. Impostare false/0/off per disabilitare l'attivazione specifica per goal. Può soltanto AGGIUNGERE il ripristino rispetto all'impostazione predefinita dell'operatore: non sostituisce mai una disattivazione esplicita nelle impostazioni STREAM_RECOVERY_ENABLED/DB.
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS true Rimuove gli eventi SSE codex.* non standard (ad esempio codex.rate_limits) che causano un errore 502 in responses.stream() dell'SDK OpenAI. Attivo per impostazione predefinita (#11014). Impostare 0/false/no/off per inoltrarli.
OMNIROUTE_CODEX_APPSERVER_WS (non impostato) Trasporto app-server Codex attivabile esplicitamente. Endpoint WebSocket (ws:///wss://) di un sidecar locale codex app-server. Quando è impostato insieme a un token, le richieste Codex vengono instradate tramite JSON-RPC al sidecar anziché tramite l'API HTTP Responses. Può essere impostato anche per singola connessione tramite providerSpecificData.codexAppServerUrl. Utilizzato da open-sse/executors/codex/appServerConfig.ts.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN (non impostato) Token di funzionalità/bearer inline presentato all'app-server. Sostituzione per singola connessione: providerSpecificData.codexAppServerToken.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE (non impostato) Percorso di un file contenente il token di funzionalità dell'app-server (generato da codex app-server --ws-token-file). Utilizzato quando OMNIROUTE_CODEX_APPSERVER_WS_TOKEN non è impostato. Sostituzione per singola connessione: providerSpecificData.codexAppServerTokenFile.
OMNIROUTE_CODEX_APPSERVER_CWD /tmp Directory di lavoro in cui viene eseguito il turno dell'app-server. Sostituzione per singola connessione: providerSpecificData.codexAppServerCwd.
OMNIROUTE_CODEX_APPSERVER_APPROVAL (non impostato) Criterio di approvazione passato al turno dell'app-server (ad esempio never, on-request). Sostituzione per singola connessione: providerSpecificData.codexAppServerApprovalPolicy.
OMNIROUTE_CODEX_APPSERVER_SANDBOX (non impostato) Criterio sandbox passato al turno dell'app-server (ad esempio read-only, workspace-write, danger-full-access). Quando non è impostato, l'executor usa per impostazione predefinita workspace-write (con sicurezza rafforzata; in precedenza danger-full-access). Sostituzione per singola connessione: providerSpecificData.codexAppServerSandbox.
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE false Approva automaticamente le richieste di approvazione dell'app-server stesso (esecuzione di comandi/file/permessi sull'host). Disattivato per impostazione predefinita: le richieste vengono negate automaticamente; le chiamate agli strumenti dell'harness non sono interessate (passano attraverso il passthrough separato item/tool/call). Accetta true/1/yes. Sostituzione per singola connessione: providerSpecificData.codexAppServerAutoApprove.
FETCH_HEADERS_TIMEOUT_MS = FETCH_TIMEOUT_MS Tempo entro cui ricevere gli header della risposta.
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS 30000 (30s) Attesa massima per l'inizio della risposta (ms) per ogni tentativo diretto senza proxy. In caso di timeout, viene effettuato un nuovo tentativo una sola volta su un nuovo socket; impostare 0 per disabilitare il limite e mantenere il comportamento precedente.
FETCH_BODY_TIMEOUT_MS = FETCH_TIMEOUT_MS Tempo per ricevere il corpo completo della risposta.
FETCH_CONNECT_TIMEOUT_MS 30000 Timeout per stabilire la connessione TCP.
FETCH_KEEPALIVE_TIMEOUT_MS 4000 Timeout di inattività del socket keep-alive.
TLS_CLIENT_TIMEOUT_MS = FETCH_TIMEOUT_MS Timeout del proxy con fingerprint TLS (wreq-js).
TLS_FIRST_BYTE_WATCHDOG_MS 10000 Limita specificamente il tempo al primo byte del corpo sul trasporto con fingerprint TLS di wreq-js; TLS_CLIENT_TIMEOUT_MS da solo non può rilevare un corpo bloccato, poiché si risolve non appena arrivano gli header (#12656). Un timeout annulla il lettore wreq e passa al dispatcher diretto/proxy; 0 disabilita il watchdog.
RESPONSES_FIRST_BYTE_TIMEOUT_MS 15000 Solo per l'esecutore OpenCode e solo mentre il flag di funzionalità OPENCODE_RESPONSES_STALL_ROTATION è attivo (disattivato per impostazione predefinita): limita l'attesa del primo byte del corpo di una risposta Responses in streaming dopo i relativi header (#13484). Uno stream Responses si apre con response.created, quindi l'assenza di dati oltre questo intervallo indica un blocco: l'account viene temporaneamente sospeso e la richiesta passa una sola volta all'account successivo; un secondo blocco causa un errore immediato. 0 disabilita la protezione anche quando il flag è attivo.
API_BRIDGE_PROXY_TIMEOUT_MS 30000 Timeout del passaggio attraverso il proxy per le richieste bridge /v1.
FIRECRAWL_BASE_URL https://api.firecrawl.dev Indirizza l'esecutore di recupero web Firecrawl verso un'istanza self-hosted (chiave API facoltativa fuori dal cloud).
FIRECRAWL_TIMEOUT_MS 30000 Timeout per richiesta per l'esecutore di recupero web Firecrawl.
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS 300000 Timeout complessivo della richiesta al server per il bridge.
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS 60000 Tempo per inviare gli header della risposta tramite il bridge.
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS 5000 Timeout di inattività keep-alive del bridge.
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS 0 Timeout del socket non elaborato (0 = disabilitato).
SHUTDOWN_TIMEOUT_MS 30000 Periodo di tolleranza dopo SIGTERM/SIGINT prima dell'uscita forzata.
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS 120000 Valore di riserva utilizzato da src/shared/utils/fetchTimeout.ts quando FETCH_TIMEOUT_MS non è impostato.
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS 8000 Timeout (ms) per i preset validationRead e modelsProbe in src/shared/network/safeOutboundFetch.ts. Aumentarlo per gli endpoint lenti (Cerebras, Cloudflare AI, Groq) per evitare oscillazioni tra gli stati attivo/errore nella dashboard. Per valori non validi (<1000) o non numerici, viene usato 8000ms come valore di riserva.
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS 25000 Timeout di recupero specifico per il relay in open-sse/utils/proxyFetch.ts (#9158). Un relay bloccato deve generare un errore prima del timeout del client/agente (~30s), in modo che i chiamanti visualizzino un errore specifico del relay anziché un timeout generico dell'upstream. Limitato a 29000 affinché scatti sempre per primo.
OMNIROUTE_RETRY_BACKOFF_MS 10 Ritardo condiviso tra i tentativi per i percorsi diretto/relay/proxy con un solo nuovo tentativo in open-sse/utils/proxyFetch.ts (#9158). 0 = nuovo tentativo immediato.
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS 60000 Timeout nativo delle richieste wreq-js (claudeTlsClient.ts).
OMNIROUTE_CLAUDE_TLS_GRACE_MS 10000 Periodo di tolleranza della scadenza assoluta JS aggiunto al timeout nativo.
OMNIROUTE_PPLX_TLS_TIMEOUT_MS 30000 Timeout nativo delle richieste wreq-js (perplexityTlsClient.ts).
OMNIROUTE_PPLX_TLS_GRACE_MS 10000 Periodo di tolleranza della scadenza assoluta JS aggiunto al timeout nativo.
OMNIROUTE_PPLX_SEARCH_HINT 0 (disattivato) Aggiunge "Hai una ricerca web integrata. Rispondi direttamente alle domande utilizzando i risultati della ricerca." al messaggio di sistema del chiamante (perplexity-web/protocol.ts). Disattivato per impostazione predefinita: Perplexity esegue comunque le ricerche e la frase compare nelle risposte come meta-commento per i client di programmazione. Imposta 1/true/yes/on per ripristinarlo.
OMNIROUTE_GROK_TLS_TIMEOUT_MS 60000 Timeout nativo delle richieste wreq-js (grokTlsClient.ts).
OMNIROUTE_GROK_TLS_GRACE_MS 10000 Margine assoluto per la scadenza rigida JS, aggiunto al timeout nativo.
OMNIROUTE_NOTION_TLS_TIMEOUT_MS 30000 Timeout nativo delle richieste wreq-js (notionTlsClient.ts); notion-web lo aumenta a 180000 per ogni richiesta per le generazioni lunghe.
OMNIROUTE_NOTION_TLS_GRACE_MS 10000 Margine assoluto per la scadenza rigida JS, aggiunto al timeout nativo.
OMNIROUTE_BROWSER_POOL on Pool di browser Playwright condiviso per la chat con cookie web basata su browser (browserPool.ts); imposta off per disattivarlo.
OBSCURA_BIN auto-detect Percorso del binario obscura utilizzato come motore principale dal pool di browser e dall'esecutore Cloudflare Playground (open-sse/services/obscura.ts); se non è impostato, viene rilevato automaticamente dal PATH di sistema.
OBSCURA_CDP_ENDPOINT (non impostato) Indica un'istanza Obscura già in esecuzione (http://host:port) anziché avviarne una; il modulo non gestisce tale processo (open-sse/services/obscura.ts).
OBSCURA_PORT porta libera casuale Porta esplicita per il processo obscura serve avviato; se non è impostata, viene scelta automaticamente una porta libera (open-sse/services/obscura.ts).
WEB_COOKIE_USE_BROWSER 0 Instrada una richiesta di chat con cookie web attraverso il percorso basato su browser (browserBackedChat.ts); 1 per abilitarlo.
KIMI_WEB_BASE_URL https://www.kimi.ai URL di base per l'esecutore Kimi Web (Connect-RPC internazionale di kimi.ai) (kimi-web.ts); eseguire l'override solo per endpoint mirror/proxy.
KIMI_WEB_CHAT_URL <KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat Endpoint di chat completo per l'esecutore Kimi Web (kimi-web.ts).
OMNIROUTE_LOGIN_BROWSER_PATH (rilevato automaticamente) Percorso di un eseguibile Chrome/Edge di sistema per l'accesso interattivo tramite browser ad Adobe Firefly (adobeFireflyBrowserLogin.ts); sostituisce il rilevamento automatico specifico per sistema operativo.
OMNIROUTE_STANDALONE_DIR output standalone .build/ Override in fase di build per la directory di output standalone utilizzata dal passaggio di colocazione post-build (scripts/build/colocate-standalone.mjs); riguarda gli strumenti di build, non il runtime.

I tentativi sulle destinazioni combo ereditano il timeout risolto della richiesta upstream (FETCH_TIMEOUT_MS oppure REQUEST_TIMEOUT_MS quando fornisce il valore predefinito per il recupero). Imposta targetTimeoutMs in una combo, nei valori predefiniti della combo o nell'override del provider solo per rendere più rapido il fallback della combo; i valori superiori al timeout upstream corrente vengono limitati a quest'ultimo.

comboTimeoutMs è un budget temporale wall-clock separato per l'intera combo, applicato a tutte le destinazioni di failover. Lascialo non impostato o impostalo su 0 per mantenere un'iterazione illimitata (continua ad applicarsi il blocco anti-stallo di 10 minuti COMBO_LOOP_SAFETY_TIMEOUT_MS). Un valore positivo sostituisce tale meccanismo di sicurezza per la combo. Mantieni comboTimeoutMs maggiore di targetTimeoutMs, affinché il failover abbia ancora tempo dopo una prima destinazione lenta.

Soglie del circuit breaker

Configurazione del circuit breaker a livello di provider. I valori predefiniti riflettono i valori scalati utilizzati a partire dalla v3.6 per oltre 500 connessioni.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD 8 open-sse/config/constants.ts Soglia di errori consecutivi per i provider OAuth prima dell'apertura del circuit breaker.
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS 60000 open-sse/config/constants.ts Finestra di ripristino (ms) per il circuit breaker dei provider OAuth.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD 12 open-sse/config/constants.ts Soglia di errori consecutivi per i provider con chiave API.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS 30000 open-sse/config/constants.ts Finestra di ripristino (ms) per il circuit breaker dei provider con chiave API.
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD 2 open-sse/config/constants.ts Soglia di errori consecutivi per i provider locali (Ollama, LM Studio, ...).
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS 15000 open-sse/config/constants.ts Finestra di ripristino (ms) per il circuit breaker dei provider locali.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD 10 open-sse/config/constants.ts Circuit breaker a livello di provider: numero di errori nella finestra prima che l'intero provider OAuth entri in pausa.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS 900000 open-sse/config/constants.ts Circuit breaker a livello di provider: finestra mobile per il conteggio degli errori (ms) per i provider OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS 300000 open-sse/config/constants.ts Circuit breaker a livello di provider: pausa (ms) una volta raggiunta la soglia del provider OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD 5 open-sse/config/constants.ts Il provider OAuth entra nello stato DEGRADED dopo questo numero di errori.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER 8 open-sse/config/constants.ts Moltiplicatore massimo dell'incremento di resetTimeout per il provider OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT 2 open-sse/config/constants.ts Il provider OAuth incrementa il backoff dopo questo numero di cicli di apertura.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD 15 open-sse/config/constants.ts Circuit breaker a livello di provider: numero di errori nella finestra prima che l'intero provider con chiave API entri in pausa.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS 1800000 open-sse/config/constants.ts Circuit breaker a livello di provider: finestra mobile per il conteggio degli errori (ms) per i provider con chiave API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS 600000 open-sse/config/constants.ts Circuit breaker a livello di provider: pausa (ms) una volta raggiunta la soglia del provider con chiave API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD 7 open-sse/config/constants.ts Il provider con chiave API entra nello stato DEGRADED dopo questo numero di errori.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER 4 open-sse/config/constants.ts Moltiplicatore massimo dell'incremento di resetTimeout per il provider con chiave API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT 3 open-sse/config/constants.ts Il provider con chiave API incrementa il backoff dopo questo numero di cicli di apertura.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD 2 open-sse/config/constants.ts Circuit breaker a livello di provider: numero di errori prima che l'intero provider locale entri in pausa.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS 300000 open-sse/config/constants.ts Circuit breaker a livello di provider: finestra mobile per il conteggio degli errori (ms) per i provider locali.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS 60000 open-sse/config/constants.ts Circuit breaker a livello di provider: pausa (ms) una volta raggiunta la soglia del provider locale.
PIN_DROP_BACKOFF_LEVEL 2 open-sse/services/combo.ts Profondità di backoff alla quale il provider associato a un pin della cache di contesto viene considerato non disponibile in modo persistente e il pin viene rimosso per consentire il failover.
PIN_DROP_GRACE_MS 20000 open-sse/services/combo.ts Finestra anti-oscillazione (ms) che tollera brevi pause transitorie prima di rimuovere un pin della cache di contesto.

Scenari

Scenario Configurazione
Generazione di codice di lunga durata REQUEST_TIMEOUT_MS=900000 (15 min)
Limite della durata totale dello stream STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 min)
Errore rapido per l'API di produzione API_BRIDGE_PROXY_TIMEOUT_MS=10000
Modelli con ragionamento esteso STREAM_IDLE_TIMEOUT_MS=300000 (5 min tra i blocchi)

16. Registrazione dei log

Il sistema di registrazione scrive sia su stdout sia su file di log sottoposti a rotazione. Tutta la configurazione viene letta da src/lib/logEnv.ts.

Variabile Valore predefinito Descrizione
APP_LOG_LEVEL info Livello minimo di log: debug, info, warn, error.
APP_LOG_FORMAT text Formato di output: text (leggibile dall'utente) o json (strutturato).
APP_LOG_TO_FILE true Scrive i log su file oltre che su stdout.
APP_LOG_FILE_PATH logs/application/app.log Percorso del file di log (relativo alla radice del progetto o a DATA_DIR).
APP_LOG_MAX_FILE_SIZE 50M Dimensione massima del file prima della rotazione. Accetta: 50M, 1G, 512K o un numero di byte senza unità.
APP_LOG_RETENTION_DAYS 7 Giorni di conservazione dei file di log dell'applicazione sottoposti a rotazione.
APP_LOG_MAX_FILES 20 Numero massimo di backup dei file di log sottoposti a rotazione.
CALL_LOG_RETENTION_DAYS 7 Giorni di conservazione nel database delle voci di log delle richieste/chiamate.
CALL_LOG_MAX_ENTRIES 10000 Numero massimo di voci del log delle chiamate nel buffer in memoria.
CALL_LOGS_TABLE_MAX_ROWS 100000 Numero massimo di righe nella tabella SQLite call_logs prima della rimozione delle voci meno recenti.
ENABLE_REQUEST_LOGS (non impostato) Forza l'attivazione o la disattivazione della registrazione dettagliata delle richieste, sovrascrivendo l'impostazione del dashboard.
MAX_PENDING_REQUEST_AGE_MS 3600000 (1 ora) Età massima delle voci di log orfane relative a richieste attive prima della pulizia in memoria.
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS false Memorizza i blocchi dello stream negli artefatti della pipeline quando call_log_pipeline_enabled=true. Funzionalità facoltativa (true), disattivata per impostazione predefinita per risparmiare spazio su disco.
CALL_LOG_PIPELINE_MAX_SIZE_KB 512 Dimensione massima in KB dell'artefatto del log delle chiamate della pipeline quando call_log_pipeline_enabled=true.
PROXY_LOGS_TABLE_MAX_ROWS 100000 Numero massimo di righe nella tabella SQLite proxy_logs prima della rimozione delle voci meno recenti.
PROXY_LOG_INCLUDE_IPS false Include gli IP client/di uscita e i prefissi degli account nei log della console [ProxyEgress]. I record dei log proxy nel dashboard/database conservano tutti i dettagli.
APP_LOG_ROTATION_CHECK_INTERVAL_MS 60000 (1 min) Frequenza con cui src/lib/logRotation.ts ricontrolla la dimensione del file di log attivo.
CHAT_LOG_TEXT_LIMIT 65536 Lunghezza massima delle stringhe conservate negli artefatti dei log delle chat (valore predefinito: 64 KB).
CHAT_LOG_ARRAY_TAIL_ITEMS 128 Numero di elementi dell'array conservati dalla coda quando i payload dei log delle chat vengono troncati.
CHAT_LOG_MAX_DEPTH 6 Profondità massima di annidamento prima che i payload dei log delle chat vengano troncati.
CHAT_LOG_MAX_OBJECT_KEYS 80 Numero massimo di chiavi degli oggetti conservate nei payload dei log delle chat (0 = illimitato).
CHAT_LOG_MAX_BODY_KB 1024 Dimensione complessiva del corpo della richiesta/risposta (KB) oltre la quale viene sostituito da un semplice riepilogo anziché dalla copia completa. Aumentare questo valore se, nel dashboard, le conversazioni agentiche lunghe mostrano un segnaposto invece dei messaggi effettivi.
CHAT_DEBUG_FILE false Se true, serializeArtifactForStorage ignora il troncamento basato sulla dimensione. Solo per il debug.

17. Ottimizzazione della memoria

Variabile Valore predefinito Descrizione
OMNIROUTE_MEMORY_MB auto (bare metal); 1024 nell'immagine Docker Limite heap V8 consigliato per Docker/standalone (MB). Quando non è impostato, viene calibrato dinamicamente (~35% della RAM di sistema, limitato all'intervallo [512, 4096]); 512 è soltanto il valore minimo quando non è possibile leggere la memoria totale. In run-standalone.mjs (Docker CMD), un valore esplicito viene aggiunto come --max-old-space-size e prevale su un flag heap NODE_OPTIONS in conflitto (ultimo flag V8). omniroute serve continua a preferire un flag heap NODE_OPTIONS esistente (#5238). Non impostarli entrambi su numeri diversi: il processo registra un avviso che indica entrambi i valori e quello prevalente. L'immagine Docker ufficiale imposta sempre 1024, quindi la calibrazione non viene mai eseguita al suo interno. L'endpoint /v1/responses del coding agent richiede 819212288 più un margine per il cgroup: consultare la Guida Docker — RAM in fase di esecuzione.
PROMPT_CACHE_MAX_SIZE 50 Numero massimo di prompt di sistema memorizzati nella cache.
PROMPT_CACHE_MAX_BYTES 2097152 (2 MB) Dimensione totale massima della cache dei prompt.
PROMPT_CACHE_TTL_MS 300000 (5 min) TTL delle voci della cache dei prompt.
SEMANTIC_CACHE_MAX_SIZE 100 Numero massimo di risposte con temperature=0 memorizzate nella cache.
SEMANTIC_CACHE_MAX_BYTES 4194304 (4 MB) Dimensione totale massima della cache semantica.
SEMANTIC_CACHE_TTL_MS 1800000 (30 min) TTL delle voci della cache semantica.
OMNIROUTE_CORPUS_CACHE_SIZE 5 Radici del corpus locale che mantengono contemporaneamente un indice attivo in memoria (src/lib/localCorpus/configured.ts). LRU: al raggiungimento del limite, l'indice della radice usata meno di recente viene espulso e ricostruito alla query successiva. Limitato a un minimo di 1; un valore non numerico ripristina il valore predefinito.
STREAM_HISTORY_MAX 50 Numero massimo di eventi di streaming recenti nel buffer della vista in tempo reale della Dashboard.
CONTEXT_LENGTH_DEFAULT 128000 Lunghezza massima globale di fallback del contesto per i modelli senza configurazione esplicita.
USAGE_TOKEN_BUFFER 100 Margine aggiuntivo di token riservato durante il monitoraggio delle quote di utilizzo.

Compressione

Variabile Valore predefinito Descrizione
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS non impostato Considera attendibile il file .rtk/filters.json del progetto senza un hash .rtk/trust.json. Utilizzare solo in ambienti di sviluppo locale controllati.

Motore della memoria (piano 21)

Costo sul ciclo degli eventi di memoria, competenze e aggiornamento dei token (#10349)

OmniRoute è un singolo processo Node. L'estrazione/il recupero della memoria, l'inserimento delle competenze e l'aggiornamento dei token del provider vengono eseguiti sullo stesso ciclo degli eventi di GET /healthz e della dashboard. Non vengono eseguiti in un thread worker.

Attività Codice Impostazione predefinita Controllo dell'operatore
Estrazione / recupero della memoria src/lib/memory/ memoryEnabled nella dashboard (attivo per impostazione predefinita) Disattivare Impostazioni → Memoria. Non esiste una variabile di ambiente separata per la disattivazione d'emergenza, oltre alla disabilitazione della funzionalità nelle impostazioni.
Inserimento delle skill src/lib/skills/injection.ts skillsEnabled nella dashboard (attivo per impostazione predefinita) Disattivare Impostazioni → Memoria/Skill (skillsEnabled). I parametri della sandbox riportati di seguito limitano soltanto l'esecuzione dopo che l'inserimento è già stato attivato.
Aggiornamento dei token src/sse/services/tokenRefresh.ts Attivo per i provider OAuth/web connessi Disconnettere il provider oppure lasciare che i token rimangano validi; attualmente non esiste una variabile di ambiente TOKEN_REFRESH=0.

Se /healthz è lento su una macchina inattiva, disabilitare prima memoria e skill, quindi controllare il carico di catalogo/compressione (#10303, #9685). Queste funzionalità cedono l'esecuzione nei punti await, ma competono comunque per l'unico thread.

Parametri del livello di embedding, dell'archivio vettoriale e del reranking per il sottosistema di memoria persistente (src/lib/memory/).

Variabile Valore predefinito Descrizione
MEMORY_EMBEDDING_CACHE_TTL_MS 300000 (5 min) TTL della cache degli embedding in memoria (per firma di origine/modello/dimensione).
MEMORY_EMBEDDING_CACHE_MAX 1000 Numero massimo di voci LRU conservate nella cache degli embedding.
MEMORY_TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 ID del repository HF per la pipeline MiniLM locale opzionale @huggingface/transformers (~23 MB int8, ~400 MB di RAM).
MEMORY_STATIC_MODEL minishlab/potion-base-8M ID del repository HF per l'embedder statico potion/Model2Vec basato su tabella di ricerca. Viene scaricato in modo lazy nella directory della cache.
MEMORY_STATIC_CACHE_DIR <DATA_DIR>/embeddings Directory usata per memorizzare nella cache i file del modello statico potion. Se non impostata, il valore predefinito è una directory sotto DATA_DIR.
HF_HUB_ENDPOINT https://huggingface.co Sostituisce l'URL di base di Hugging Face Hub usato da staticPotion.ts (ad es. l'endpoint di un mirror per configurazioni air-gapped).
MEMORY_VEC_TOP_K 20 Valore top-K predefinito usato dalla ricerca vettoriale brute-force di sqlite-vec in src/lib/memory/vectorStore.ts.
MEMORY_RRF_K 60 Costante k di Reciprocal Rank Fusion per il recupero ibrido FTS5 + vettoriale (procedura sqlite-vec).
VECTOR_STORE_DISABLE_VEC false Punto di controllo per test/diagnostica in getVectorStore() (src/lib/memory/vectorStore.ts): quando è true, forza l'archivio vettoriale a null (simula un ambiente cloud/WASM senza sqlite-vec), degradando il recupero dalla memoria alla ricerca per parole chiave FTS5. Lasciare non impostato in produzione.
NOTION_API_KEY (non impostato) Chiave API per il backend Notion (usata dalla configurazione predefinita del backend noto genericBackend.ts).
NOTION_API_URL https://api.notion.com/v1 URL di base per l'API di Notion (può essere sostituito per alternative Notion self-hosted).
OBSIDIAN_API_KEY (non impostato) Chiave API per il backend Obsidian Vault (usata dalla configurazione predefinita del backend noto genericBackend.ts).
OBSIDIAN_API_URL http://localhost:27123 URL di base per l'API di Obsidian Vault (può essere sostituito per un vault remoto).
MEMORY_TYPED_DECAY_ENABLED false Interruttore principale per il decadimento della memoria tipizzata TV6. Attivazione facoltativa (disattivato per impostazione predefinita) — la scansione elimina le memorie decadute. Quando è disattivato, access_count/last_accessed_at sono pura telemetria e non viene mai eliminato nulla.
MEMORY_TYPED_DECAY_EPISODIC_DAYS 30 TTL (in giorni) dopo il quale una memoria episodic inutilizzata decade. 0 rende immune anche la memoria episodica. I tipi durevoli (factual/procedural/semantic) sono sempre immuni. Il conteggio del decadimento viene ricalcolato a partire da last_accessed_at.
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY 3 Una memoria inserita >= questo numero di volte diventa immune al decadimento indipendentemente dal tipo. 0 disabilita l'immunità basata sull'accesso.
MEMORY_TYPED_DECAY_SWEEP_INTERVAL 0 (disabilitato) Intervallo (in secondi) per la scansione periodica facoltativa del decadimento in src/lib/memory/typedDecay.ts. 0/non impostato = nessuna scansione periodica. Richiede una doppia attivazione facoltativa: è necessario anche MEMORY_TYPED_DECAY_ENABLED=true.
OMNIROUTE_STRICT_SYSTEM_PROVIDERS (non impostato) ID dei provider separati da virgole (senza distinzione tra maiuscole e minuscole) che accettano un messaggio system soltanto all'indice 0 (src/lib/memory/injection.ts). Per questi provider, l'inserimento della memoria a metà dell'array, compatibile con la cache, non è sicuro nelle conversazioni multi-turno; la memoria viene quindi unita/anteposta come messaggio di sistema iniziale. Il valore predefinito include soltanto xiaomi-mimo/mimo; estenderlo per endpoint compatibili con OpenAI e self-hosted (ad es. Qwen3.5+/3.6) il cui template di chat impone lo stesso vincolo di un unico messaggio di sistema iniziale.

Esempio Docker con poca RAM

128 è adatto soltanto alla dashboard. Gli agenti di programmazione con questo heap generano un FATAL ERROR durante richieste /v1/responses lunghe. Non usare questo esempio come gateway Claude/Codex/Grok.

OMNIROUTE_MEMORY_MB=128
PROMPT_CACHE_MAX_SIZE=20
PROMPT_CACHE_MAX_BYTES=524288        # 512 KB
SEMANTIC_CACHE_MAX_SIZE=25
SEMANTIC_CACHE_MAX_BYTES=1048576     # 1 MB
STREAM_HISTORY_MAX=10

18. Sincronizzazione dei prezzi

Sincronizzazione automatica dei dati sui prezzi dei modelli da fonti esterne.

Variabile Valore predefinito File sorgente Descrizione
PRICING_SYNC_ENABLED false src/lib/pricingSync.ts Sincronizzazione periodica dei prezzi opzionale.
PRICING_SYNC_INTERVAL 86400 (24h) src/lib/pricingSync.ts Intervallo di sincronizzazione in secondi.
PRICING_SYNC_SOURCES litellm src/lib/pricingSync.ts Fonti di dati separate da virgole.

Sincronizzazione ELO di Arena

Variabile Valore predefinito File sorgente Descrizione
ARENA_ELO_SYNC_ENABLED true src/shared/constants/featureFlagDefinitions.ts Sincronizzazione periodica del punteggio ELO della classifica di Arena AI, configurabile dai flag di funzionalità della Dashboard oppure disattivabile impostando false.
MODELS_CATALOG_PREFIX_MODE dual src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts Forma del prefisso utilizzata per gli ID dei modelli in GET /v1/models. dual espone sia il prefisso alias breve sia il prefisso canonico del provider per ciascun modello (compatibilità con le versioni precedenti — il catalogo risulta approssimativamente raddoppiato); alias restituisce un ID per modello; canonical restituisce solo il prefisso completo dell'ID del provider (i provider il cui alias corrisponde già all'ID canonico mantengono una sola voce). I client possono eseguire l'override per ogni richiesta con ?prefix=alias. Consultare API_REFERENCE.
ARENA_ELO_SYNC_INTERVAL 86400 (24h) src/lib/arenaEloSync.ts Intervallo di sincronizzazione in secondi.

Provider del playground PromptQL (non ufficiale/sperimentale)

Bridge di sessione GraphQL ottenuto tramite reverse engineering per prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Tutte le opzioni sono facoltative: i valori predefiniti puntano agli endpoint pubblici del playground; eseguirne l'override solo per una distribuzione PromptQL self-hosted o alternativa.

Variabile Valore predefinito File sorgente Descrizione
PROMPTQL_GRAPHQL_ENDPOINT https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql open-sse/executors/promptql.ts Endpoint GraphQL utilizzato per le operazioni di chat e sessione.
PROMPTQL_CREDITS_ENDPOINT https://data.pro.ql.app/v1/graphql open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts Endpoint GraphQL utilizzato per interrogare il saldo e l'utilizzo dei crediti.
PROMPTQL_TOKEN_REFRESH_URL https://auth.pro.ql.app/ddn/project/token open-sse/executors/promptql.ts Endpoint utilizzato per tentare l'aggiornamento del token.
PROMPTQL_POLL_TIMEOUT_MS 180000 open-sse/executors/promptql.ts Tempo massimo (ms) per eseguire il polling di thread_events prima del timeout.

Provider web HyperAgent (non ufficiale/sperimentale)

Bridge di sessione ottenuto tramite reverse engineering per hyperagent.com (src/shared/constants/providers/web-cookie.ts). Facoltativo — il valore predefinito punta all'endpoint pubblico di fatturazione/utilizzo; esegui l'override solo per un'installazione HyperAgent self-hosted/alternativa.

Variabile Valore predefinito File sorgente Descrizione
HYPERAGENT_USAGE_URL https://hyperagent.com/api/settings/billing/usage open-sse/services/usage/hyperagent.ts Endpoint utilizzato per recuperare i blocchi di crediti di fatturazione/utilizzo.

Quote di utilizzo di Kilo Code

Ricerca del saldo personale in USD e dell'utilizzo di Kilo Pass per il provider Kilo Code. Facoltativo — il valore predefinito punta all'API Kilo pubblica; esegui l'override solo per un relay/fixture di test. L'autenticazione utilizza il token di accesso OAuth esistente della connessione.

Variabile Valore predefinito File sorgente Descrizione
KILO_API_URL https://api.kilo.ai open-sse/services/usage/kilocode.ts URL di base utilizzato per recuperare il saldo personale di Kilo Code e l'utilizzo di Kilo Pass.

Provider web Adobe Firefly (non ufficiale/sperimentale)

Aggiornamento della sessione gestito tramite browser per il provider web Adobe Firefly (open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts, open-sse/services/adobeFireflyClient.ts). Facoltativo — tutti i valori predefiniti sono ottimizzati per una normale installazione desktop.

Rimosso nella #9255. Il precedente runtime Chrome collegato tramite CDP (adobeFireflyChromeRuntime.ts) è stato sostituito da un servizio di accesso tramite browser basato su Playwright e le relative opzioni non esistono più. Le variabili ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, oltre a ADOBE_FIREFLY_LOGIN_WAIT_MS e ADOBE_FIREFLY_FORTER_WAIT_MS, non vengono lette in alcun punto della codebase — impostarle non produce alcun effetto.

Variabile Valore predefinito File sorgente Descrizione
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Imposta su 1 per usare Chrome realmente headless (noto come non funzionante per la generazione; solo per il debug).
ADOBE_FIREFLY_BROWSER_REFRESH 1 open-sse/services/adobeFireflySession.ts Attiva/disattiva in modo esplicito il riscaldamento proattivo del browser. 0 disabilita il riscaldamento proattivo (il ripristino dall'errore 408 a metà batch continua ad applicarsi).
ADOBE_FIREFLY_SESSION_DISK 1 open-sse/services/adobeFireflySession.ts Imposta su 0 per disabilitare la persistenza su disco della sessione Adobe Firefly.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS (non impostato) open-sse/services/adobeFireflySession.ts Intervallo minimo (ms) imposto tra invii consecutivi, che sostituisce il valore predefinito integrato.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS (non impostato) open-sse/services/adobeFireflySession.ts Intervallo aggiuntivo (ms) inserito dopo un batch completato correttamente, che sostituisce il valore predefinito integrato.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS (non impostato) open-sse/services/adobeFireflyClient.ts Ritardo di base (ms) prima dell'invio di una richiesta di generazione, che sostituisce il valore predefinito integrato.

19. Sincronizzazione dei modelli (Sviluppo)

Variabile Valore predefinito File sorgente Descrizione
MODELS_DEV_SYNC_ENABLED (non impostato) src/lib/modelsDevSync.ts Override esplicito per la sincronizzazione dei prezzi di models.dev. Non impostato = rispetta Impostazioni > IA (modelsDevSyncEnabled). 0/false/off/no ha la precedenza sul DB e ignora sia la sincronizzazione periodica sia le scansioni SQL/JSON di getModelsDevPricing() (per il ripristino quando la dashboard è bloccata sullo stesso ciclo di eventi). 1/true/on/yes forza l'attivazione della sincronizzazione. Il salvataggio/la cancellazione dei prezzi continua a chiamare backupDbFile("pre-write"), che non esegue alcuna operazione durante il limite di 60 minuti o con DISABLE_SQLITE_AUTO_BACKUP.
MODELS_DEV_SYNC_INTERVAL 86400 (24h) src/lib/modelsDevSync.ts Intervallo di sincronizzazione del catalogo dei modelli in fase di sviluppo, espresso in secondi.
CONTEXT_WINDOW_RECONCILE_INTERVAL 86400 (24h) src/lib/contextWindowResolver.ts Intervallo (in secondi) per il riconciliatore autocorrettivo della finestra di contesto (5004): fissa le finestre dichiarate dal provider, ottenute dal rilevamento tramite /models, come override auto:discovery quando divergono dal catalogo. Impostare su 0 per disabilitarlo. Riutilizza i dati già sincronizzati (senza nuovi recuperi); non sovrascrive mai gli override manual.

20. Impostazioni specifiche del provider

Variabile Valore predefinito File sorgente Descrizione
OPENROUTER_CATALOG_TTL_MS 86400000 (24 h) src/lib/catalog/openrouterCatalog.ts TTL della cache del catalogo dei modelli OpenRouter.
MODEL_CATALOG_INCLUDE_NAMES true src/shared/constants/featureFlagDefinitions.ts Include i campi name facilmente leggibili nelle risposte di /v1/models. Disabilitare per i client che prevedono solo ID.
CATALOG_BUILD_TIMEOUT_MS 8000 (8 s) src/app/api/v1/models/catalogCache.ts Limite di attesa del percorso a freddo per una ricostruzione aggregata del catalogo tramite GET /v1/models (#12627). In caso di timeout, viene restituita l'ultima risposta 200 valida, se disponibile.
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS 2592000000 (30 giorni) src/lib/db/models/activeSyncedCatalog.ts Periodo dopo il quale l'elenco sincronizzato dei modelli di una connessione non è più considerato autorevole per l'instradamento e viene usato il registro come fallback (#12849). Le righe prive di timestamp sono considerate obsolete.
NANOBANANA_POLL_TIMEOUT_MS 120000 open-sse/handlers/imageGeneration.ts Attesa massima per i processi di generazione di immagini NanoBanana.
NANOBANANA_POLL_INTERVAL_MS 2500 open-sse/handlers/imageGeneration.ts Frequenza di polling dei processi NanoBanana.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyUpscale.ts Ritardo di base per il backoff esponenziale dei nuovi tentativi di invio per l'upscaling di Adobe Firefly.
AWS_REGION (non impostato) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Regione utilizzata per costruire gli endpoint AWS Bedrock (Kiro, audio).
AWS_DEFAULT_REGION (non impostato) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Valore di fallback quando AWS_REGION non è impostata.
CLOUDFLARE_ACCOUNT_ID (non impostato) open-sse/executors/cloudflare-ai.ts ID account per Cloudflare Workers AI.
CLOUDFLARE_PLAYGROUND_CHROME_PATH (non impostato) open-sse/executors/cloudflare-playground.ts Percorso completo del binario desktop di Chrome per l'esecutore Cloudflare AI Playground, utilizzato quando il controllo dell'impronta digitale headless blocca la versione di Chromium inclusa con Playwright.
CLOUDFLARE_API_BASE https://api.cloudflare.com/client/v4 src/app/api/settings/proxy/cloudflare-deploy/route.ts Sostituisce la base dell'API REST di Cloudflare utilizzata dal sistema di distribuzione del relay Workers del pool di proxy (#4640 / 9router#1360).
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx Nome predefinito del progetto worker suggerito nella finestra modale "Distribuisci relay" del pool di proxy.
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Impostare su false per nascondere l'opzione relay di Cloudflare Workers dalla scheda Pool di proxy.
CLOUDFLARED_BIN rilevamento automatico src/lib/cloudflaredTunnel.ts Percorso personalizzato del binario cloudflared.
CLOUDFLARED_PROTOCOL http2 src/lib/cloudflaredTunnel.ts Protocollo di trasporto del tunnel: http2 (predefinito), quic o auto.
CLOUDFLARED_CONFIG (non impostato) src/lib/cloudflaredTunnel.ts Percorso di un file config.yml di cloudflared gestito localmente (con tunnel:, credentials-file:, ingress:). Quando è impostato, OmniRoute esegue tunnel --config <path> run (tunnel denominato) anziché un tunnel rapido temporaneo.
CLOUDFLARED_HOSTNAME (dall'ingress della configurazione) src/lib/cloudflaredTunnel.ts Sostituzione del nome host pubblico del tunnel denominato (ad es. ai.example.com), riportato come publicUrl/apiUrl. Quando non è impostato, viene letto dal primo nome host ingress della configurazione.
DENO_DEPLOY_API_BASE https://api.deno.com/v2 src/app/api/settings/proxy/deno-deploy/route.ts Sovrascrive l'URL di base dell'API REST di Deno Deploy utilizzata dal deployer del relay del pool di proxy (#4643 / 9router#1437).
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT omniroute-deno-relay src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx Nome predefinito dell'app Deno Deploy suggerito nella finestra modale "Deploy Relay" del pool di proxy.
NEXT_PUBLIC_DENO_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Impostare su false per nascondere l'opzione relay Deno Deploy dalla scheda Pool di proxy.
SEARCH_CACHE_TTL_MS 300000 (5 min) open-sse/services/searchCache.ts TTL per la memorizzazione nella cache delle risposte delle API di ricerca (Perplexity, Brave, ecc.).
ENABLE_CC_COMPATIBLE_PROVIDER false src/shared/utils/featureFlags.ts Mostra l'interfaccia sperimentale del provider compatibile con CC per i relay riservati a Claude Code.
NINEROUTER_HOST 127.0.0.1 open-sse/executors/ninerouter.ts Sovrascrive l'host su cui è in ascolto l'istanza 9router integrata.
NINEROUTER_PORT 20130 open-sse/executors/ninerouter.ts Sovrascrive la porta su cui è in ascolto l'istanza 9router integrata.
EMBED_WS_PROXY_HOST 127.0.0.1 src/lib/services/embedWsProxy.ts Host di associazione per il proxy WebSocket del servizio integrato (per impostazione predefinita, solo loopback).
EMBED_WS_PROXY_PORT 20131 src/lib/services/embedWsProxy.ts Porta del server proxy WebSocket del servizio integrato.
CLIPROXYAPI_HOST 127.0.0.1 open-sse/executors/cliproxyapi.ts Host del bridge CLIProxyAPI (integrazione legacy).
CLIPROXYAPI_PORT 5544 open-sse/executors/cliproxyapi.ts Porta del bridge CLIProxyAPI.
CLIPROXYAPI_API_KEY (vuoto) open-sse/handlers/chatCore/cliproxyapiCredentials.ts Chiave di fallback del piano dati quando l'impostazione cliproxyapi_api_key è assente.
CLIPROXYAPI_MANAGEMENT_KEY (vuoto) src/lib/services/cliproxyAccountHealth.ts Chiave di gestione per le letture dello stato degli account da un'istanza CLIProxyAPI gestita esternamente.
CLIPROXYAPI_CONFIG_DIR ~/.cli-proxy-api src/lib/versionManager/processManager.ts Directory di configurazione di CLIProxyAPI.
CLIPROXY_BIND_HOST 127.0.0.1 docker-compose.yml Interfaccia host su cui docker-compose pubblica il sidecar cliproxyapi (#12578). Il relativo volume dati contiene le credenziali OAuth/API del provider e l'immagine bloccata non dispone di un override tramite variabile d'ambiente per le api-keys del piano dati (solo un file config.yaml montato), pertanto 0.0.0.0 espone all'intera LAN un servizio contenente credenziali.
MUX_SERVICE_PORT 8322 src/lib/services/bootstrap.ts Sovrascrive la porta su cui è in ascolto il demone integrato di orchestrazione degli agenti Mux (coder/mux) (sempre 127.0.0.1).
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Host di associazione/connessione del servizio integrato Dario (per impostazione predefinita, solo loopback).
DARIO_PORT 3456 open-sse/executors/dario.ts Porta del servizio integrato Dario.
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Host di associazione/connessione del servizio integrato Dario (per impostazione predefinita, solo loopback).
DARIO_PORT 3456 open-sse/executors/dario.ts Porta del servizio integrato Dario.
LOCAL_HOSTNAMES (vuoto) open-sse/config/providerRegistry.ts Nomi host aggiuntivi separati da virgole trattati come "locali" (nomi di servizi Docker, ecc.).

ENABLE_CC_COMPATIBLE_PROVIDER è destinato esclusivamente a relay di terze parti che accettano client Claude Code. OmniRoute riscrive le richieste affinché tali relay le accettino. Se vuoi utilizzare solo Claude Code CLI o non sai con certezza cosa siano questi relay, mantieni questa opzione disabilitata e aggiungi invece un normale provider compatibile con Anthropic.


21. Integrità dei proxy

Variabile Valore predefinito File sorgente Descrizione
PROXY_FAST_FAIL_TIMEOUT_MS 2000 src/lib/proxyHealth.ts Timeout del controllo di integrità fast-fail.
PROXY_LATENCY_WINDOW_HOURS 3 src/lib/db/proxies.ts Intervallo temporale (in ore) per calcolare la latenza media dei proxy candidati nella strategia del pool ottimizzata per la latenza.
PROXY_HEALTH_CACHE_TTL_MS 30000 src/lib/proxyHealth.ts TTL della cache dei risultati del controllo di integrità.
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS 2000 src/lib/proxyHealth.ts TTL della cache per i test di integrità dei proxy non riusciti. Mantenerlo inferiore a PROXY_HEALTH_CACHE_TTL_MS affinché, in caso di timeout transitori dei proxy con elevata concorrenza, i tentativi vengano ripetuti rapidamente senza disabilitare il fast-fail per i proxy effettivamente non funzionanti.
PROXY_HEALTH_ENABLED true src/lib/proxyHealth/scheduler.ts Impostare su false per disabilitare lo scheduler di integrità dei proxy in background, che verifica periodicamente i proxy registrati.
PROXY_HEALTH_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Intervallo in ms tra le scansioni dello scheduler di integrità in background (minimo 60000).
PROXY_HEALTH_TEST_URL https://httpbin.org/ip src/lib/proxyHealth/probeTarget.ts Destinazione del test di raggiungibilità utilizzata dallo scheduler e dall'endpoint /api/settings/proxies/auto-test. Impostarla su un URL interno/self-hosted per evitare l'uso del valore predefinito pubblico.
PROXY_HEALTH_TEST_CONCURRENCY 10 src/lib/proxyHealth/probeTarget.ts Numero di test avviati contemporaneamente per ogni batch, condiviso dallo scheduler e dall'endpoint /api/settings/proxies/auto-test. Il valore minimo è 1 e quello massimo è 50.
PROXY_HEALTH_TEST_STAGGER_MS 100 src/lib/proxyHealth/probeTarget.ts Ritardo in ms tra l'avvio di due test all'interno di un batch. Senza questo ritardo, l'intero batch viene avviato nello stesso momento e un IP di uscita condiviso può attivare il limite di frequenza della destinazione. Impostare su 0 per disabilitare l'intervallo; il valore massimo è 5000.
PROXY_HEALTH_USE_PROVIDER_TARGET true src/lib/proxyHealth/providerProbeTarget.ts Impostare su "false" per non eseguire più test sull'host reale del provider assegnato a un proxy (GET /models, senza chiave API) e utilizzare sempre PROXY_HEALTH_TEST_URL.
PROXY_HEALTH_AUTO_DEACTIVATE false src/lib/proxyHealth/statusPolicy.ts Quando è false (valore predefinito), i test automatici di raggiungibilità (lo scheduler e il pulsante "Test All" di /api/settings/proxies/auto-test) sono in sola lettura e non modificano mai lo stato di un proxy: solo l'operatore può impostarlo come attivo/inattivo, evitando così che un test instabile possa rendere inutilizzabile un proxy assegnato (#6246). Impostare su true per ripristinare il comportamento precedente di test e aggiornamento dello stato.
PROXY_POOL_EGRESS_OBSERVATION false src/shared/utils/featureFlags.ts Flag di funzionalità con attivazione esplicita (vedere FEATURE_FLAGS.md; un override del DB della dashboard ha la precedenza). true (oppure 1, yes) mostra nella dashboard, sotto un pool di proxy, l'osservazione in sola lettura del traffico in uscita del pool (IP di uscita distinti, connessioni e numero massimo di connessioni osservate dietro un singolo IP nelle ultime 24 ore, in base al log dei proxy). Non viene mai utilizzata per il routing.
PROXY_AUTO_REMOVE false src/lib/proxyHealth/scheduler.ts Impostare su true per consentire allo scheduler di rimuovere automaticamente i proxy dopo ripetuti errori consecutivi.
PROXY_AUTO_REMOVE_AFTER 3 src/lib/proxyHealth/scheduler.ts Numero di errori consecutivi dopo il quale lo scheduler rimuove automaticamente un proxy (quando PROXY_AUTO_REMOVE=true).
PROXY_AUTO_DISABLE false src/lib/proxyHealth/scheduler.ts Impostare su true per consentire allo scheduler di disabilitare temporaneamente (stato dead, senza mai eliminarlo) un proxy dopo ripetuti errori consecutivi, invece di rimuoverlo. Alternativa non distruttiva a PROXY_AUTO_REMOVE: il proxy viene escluso immediatamente dalla risoluzione del pool/della rotazione (il filtro dello stato attivo utilizzato dalla risoluzione del pool per ambito lo esclude già) e viene riattivato automaticamente non appena ricomincia a superare i controlli. Condivide la soglia PROXY_AUTO_REMOVE_AFTER. Se entrambi i flag sono true, PROXY_AUTO_REMOVE ha la precedenza.
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK false src/shared/constants/featureFlagDefinitions.ts Consente ai flussi OAuth e di convalida del provider di ignorare un proxy fissato e connettersi direttamente quando i controlli preliminari di raggiungibilità del proxy non riescono. L'ordine di precedenza effettivo è: override del database dei Feature Flag > variabile di ambiente > valore predefinito.
RATE_LIMIT_MAX_WAIT_MS 30000 (30 s) open-sse/services/rateLimitManager.ts Tempo massimo di attesa in caso di risposta 429 prima di considerare la richiesta non riuscita.
RATE_LIMIT_EXECUTION_MAX_WAIT_MS 600000 (10 min) open-sse/services/rateLimitManager.ts Limite massimo del tempo durante il quale una richiesta ammessa può rimanere in esecuzione prima che scada la relativa prenotazione del limite di frequenza, separato dal budget di attesa in coda affinché l'avvio lento del recupero dei dati sui gateway non incrementali non causi un timeout (#12027).
RATE_LIMIT_MAX_QUEUE_DEPTH 0 (disabilitato) open-sse/services/rateLimitManager.ts Limite di ammissione alla coda: rifiuta con un errore 429 queue_full quando questo numero di richieste è già in coda. 0 = senza limiti (valore predefinito).
RATE_LIMIT_AUTO_ENABLE (non impostato) open-sse/services/rateLimitManager.ts Forza l'attivazione o la disattivazione della protezione automatica del limite di frequenza, indipendentemente dall'impostazione persistente della Dashboard. Accetta true/1/on per forzare l'attivazione e false/0/off per forzare la disattivazione.
PROVIDER_COOLDOWN_ENABLED (non impostato → disattivato) open-sse/services/providerCooldownTracker.ts Abilita facoltativamente il monitoraggio globale, tra richieste diverse, del periodo di attesa per provider/connessioni. Disattivato per impostazione predefinita (si sovrappone a Connection Cooldown / Provider Circuit Breaker). Accetta true/1/on per l'attivazione.
PROVIDER_COOLDOWN_MIN_MS 5000 open-sse/services/providerCooldownTracker.ts Periodo di attesa minimo (ms) prima di riprovare un provider/una connessione non riusciti. Aumenta esponenzialmente in base al numero di errori consecutivi. Utilizzato solo quando PROVIDER_COOLDOWN_ENABLED è attivo.
PROVIDER_COOLDOWN_MAX_MS 300000 (5 min) open-sse/services/providerCooldownTracker.ts Limite massimo del tempo di attesa (ms) prima che venga eseguito un nuovo tentativo con un provider/una connessione non riusciti. Utilizzato solo quando PROVIDER_COOLDOWN_ENABLED è attivo.
STREAM_RECOVERY_ENABLED (non impostato → disattivato) src/lib/resilience/settings.ts (valore iniziale) → open-sse/services/streamRecovery.ts (logica) Cosa fa: recupero trasparente degli stream upstream troncati (porting di free-claude-code). Mantiene in sospeso la finestra SSE iniziale fino a STREAM_RECOVERY.HOLDBACK_MS (750 ms), in modo che un'interruzione pre-commit — che si verifica prima che qualsiasi byte raggiunga il client — venga riaperta e ritentata senza essere visibile. Quando abilitarlo: con upstream instabili che spesso troncano lo stream a 0 byte all'avvio; lasciarlo DISATTIVATO se non è accettabile aggiungere fino a 750 ms al tempo per il primo token di ogni stream. Accetta true/1/on. Imposta il valore iniziale dell'impostazione persistente Resilience; una volta configurata, prevale l'impostazione della Dashboard.
STREAM_RECOVERY_MIDSTREAM_ENABLED (non impostato → disattivato) src/lib/resilience/settings.ts (valore iniziale) → open-sse/services/streamRecovery.ts (logica) Cosa fa: continuazione a metà stream (Fase 4.4) — dopo un troncamento post-commit (i byte hanno già raggiunto il client), invia una nuova richiesta usando il testo parziale come precompilazione dell'assistente e ricompone il suffisso mancante. Solo per stream di testo normale compatibili con OpenAI; non si attiva mai mentre è in corso una chiamata a uno strumento. Quando abilitarlo: per generazioni lunghe che vengono interrotte a metà risposta, se si accetta che la parte finale recuperata arrivi in un unico blocco anziché token per token. Indipendente da STREAM_RECOVERY_ENABLED (profilo di rischio diverso). Accetta true/1/on.
STREAM_THROUGHPUT_WATCHDOG_ENABLED (non impostato → disattivato) src/lib/resilience/settings.tsopen-sse/services/throughputWatchdog.ts Watchdog opzionale dell'output utile per gli stream attivi. Rileva gli stream che continuano a inviare blocchi ma restano al di sotto della velocità di output dell'assistente configurata; heartbeat, eventi di utilizzo, delta vuoti e fasi di utilizzo degli strumenti/ragionamento non vengono scambiati per avanzamento. Separato dai timeout di inattività e dalle scadenze rigide.
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS 30000 src/lib/resilience/settings/normalize.ts Periodo di tolleranza prima della valutazione del throughput, limitato a 0600000 ms.
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS 30000 src/lib/resilience/settings/normalize.ts Finestra mobile dell'output utile, limitata a 1000600000 ms; prima dell'interruzione è richiesta una finestra completa.
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND 4 src/lib/resilience/settings/normalize.ts Velocità minima in byte UTF-8 dell'output dell'assistente (stima conservativa dei token), limitata a 11000000.
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES 1 src/lib/resilience/settings/normalize.ts Campione minimo non nullo di output utile considerato misurabile, limitato a 11000000 byte.
HEALTHCHECK_STAGGER_MS 3000 src/lib/tokenHealthCheck.ts Intervallo di scaglionamento (ms) tra i controlli di integrità dei token dei provider all'avvio.
HEALTHCHECK_JITTER_MIN_MS 500 src/lib/tokenHealthCheck.ts Jitter casuale minimo (ms) aggiunto a HEALTHCHECK_STAGGER_MS tra i controlli di integrità dei token dei provider, per evitare picchi (Problema #1220).
HEALTHCHECK_JITTER_MAX_MS 5000 src/lib/tokenHealthCheck.ts Jitter casuale massimo (ms) aggiunto a HEALTHCHECK_STAGGER_MS tra i controlli di integrità dei token dei provider, per evitare picchi (Problema #1220).
HEALTHCHECK_BATCH_SIZE 20 src/lib/tokenHealthCheck.ts Dimensione del batch di controlli simultanei per la scansione di verifica dello stato dei token all'avvio; valori più elevati controllano più connessioni in parallelo, mentre valori più bassi riducono il carico di picco (Issue #7875, regressione di #7719).
REQUEST_RETRY 2 src/sse/services/cooldownAwareRetry.ts Numero di tentativi automatici in caso di risposte di cooldown specifiche del modello prima di restituire un errore al client.
MAX_RETRY_INTERVAL_SEC 30 src/sse/services/cooldownAwareRetry.ts Intervallo massimo di backoff (in secondi) tra i tentativi durante il cooldown. Limitato a questo valore indipendentemente dal valore upstream di Retry-After.
HEADROOM_URL http://localhost:8787 src/lib/headroom/detect.ts URL del proxy di risparmio token Headroom. Il ciclo di vita della dashboard (api/headroom/*) avvia per impostazione predefinita una CLI headroom-ai locale sull'interfaccia di loopback; eseguire l'override solo per puntare a un proxy sidecar Docker esterno.

Costanti di ottimizzazione del ripristino dello stream

Il comportamento di attesa del ripristino è regolato tramite costanti codificate direttamente in open-sse/config/constants.ts (STREAM_RECOVERY), riportate qui come riferimento — per modificarle è necessario intervenire sul codice, non su una variabile d'ambiente:

  • STREAM_RECOVERY.HOLDBACK_MS = 750 — durata per cui viene trattenuta la finestra SSE iniziale, affinché un'interruzione anticipata possa essere ritentata prima che qualsiasi byte venga inviato al client.
  • STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536 — limite massimo assoluto della finestra trattenuta; viene eseguito il commit (svuotamento + inoltro diretto) non appena si accumula questo numero di byte, indipendentemente dal timer.
  • STREAM_RECOVERY.EARLY_RETRY_MAX = 4 — numero massimo di riaperture trasparenti dello stream upstream finché il buffer di attesa non è ancora stato sottoposto a commit.

Limite di frequenza per provider con finestra scorrevole (nessuna variabile d'ambiente): il meccanismo di fallback per il limite di frequenza per provider, derivato da FCC, è presente nel codice (open-sse/services/providerDefaultRateLimit.ts, collegato tramite open-sse/services/rateLimitManager.ts), ma viene distribuito con una mappa predefinita vuota e attualmente non dispone di una variabile d'ambiente per l'operatore — viene abilitato soltanto tramite un hook di test / una modifica al codice. Intenzionalmente non è elencato nella tabella precedente. Il limitatore del relay per (token, IP) che dispone invece di un parametro configurabile è RELAY_IP_PER_MINUTE (§3 Rete e porte).


22. Debug

Caution

Queste variabili producono un output dettagliato e potrebbero esporre dati sensibili. Non abilitarle mai in produzione.

Variabile Valore predefinito File sorgente Descrizione
CURSOR_DEBUG (non impostata) open-sse/executors/cursor.ts Impostare su 1 per abilitare i log dettagliati dell'esecutore Cursor (chunk SSE decodificati, ecc.).
CURSOR_STREAM_DEBUG (non impostata) open-sse/executors/cursor.ts Alias retrocompatibile di CURSOR_DEBUG.
CURSOR_DUMP_FILE (non impostata) open-sse/executors/cursor.ts Percorso file facoltativo in cui vengono salvati i chunk Cursor grezzi decodificati quando CURSOR_DEBUG=1.
CURSOR_STREAM_TIMEOUT_MS 300000 open-sse/executors/cursor.ts Timeout di inattività dello stream (ms) per l'esecutore Cursor.
CURSOR_KV_GRACE_MS 2000 open-sse/executors/cursor.ts Finestra di tolleranza (ms) dopo un terminatore non definitivo composer kv_after_text quando rimangono byte nel buffer: concede a una chiamata allo strumento exec_mcp in coda il tempo necessario per completare il proprio frame.
CURSOR_TOOL_DIRECTIVE abilitata (!== "0") open-sse/executors/cursor.ts Direttiva di conferma dello strumento che fa sì che composer-2.5 esegua le chiamate agli strumenti in modo affidabile. Impostare su 0 per disabilitarla.
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND (non impostata) open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts Testo del prompt di sistema definito dall'operatore e aggiunto al messaggio di sistema DOPO la traduzione (iniezione post-traduzione), raggiungendo codex/Responses e i percorsi /v1/messages. Utilizzato anche come prefisso della direttiva rimosso dai blocchi di preambolo di sistema ripetuti nell'output. Lasciare non impostata per disabilitare.
CURSOR_IMAGE_FETCH_TIMEOUT_MS 15000 open-sse/utils/cursorImages.ts Timeout di recupero per immagine (ms) per l'input visivo remoto image_url.
CURSOR_STATE_DB_PATH (rilevato) open-sse/utils/cursorVersionDetector.ts Sostituisce il percorso di ricerca del DB di stato dell'IDE Cursor utilizzato per rilevare la versione dell'IDE.
CURSOR_AGENT_CLI_VERSION (rileva / fissa) open-sse/utils/cursorAgentCliVersion.ts ID della build della CLI dell'agente (YYYY.MM.DD-<hash>) per x-cursor-client-version: cli-… in Agent Run.
CURSOR_AGENT_BIN (non impostata) open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Percorso del binario Cursor Agent utilizzato per la generazione di immagini. Se non impostata, il gestore utilizza providerSpecificData.agentBin e quindi PATH.
CURSOR_IMG_TIMEOUT_MS 210000 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Tempo massimo effettivo per immagine (ms) per i processi di generazione di immagini di Cursor Agent.
CURSOR_IMG_MAX_CONCURRENT 2 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Limite di concorrenza della postazione condivisa per i processi di generazione di immagini di Cursor.
CURSOR_IMG_MODEL richiesta / auto open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Sostituisce --model della CLI Cursor per i processi di generazione di immagini.
UC_IMAGE_POLL_INTERVAL_MS 2000 open-sse/handlers/imageGeneration/providers/ucImage.ts Frequenza di polling dei risultati della generazione di immagini UC (uncensored.com) (ms).
UC_IMAGE_POLL_TIMEOUT_MS 60000 open-sse/handlers/imageGeneration/providers/ucImage.ts Tempo massimo effettivo per il polling dei risultati della generazione di immagini UC (ms).
UC_VIDEO_POLL_INTERVAL_MS 3000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Frequenza di polling dei risultati della generazione di video UC (uncensored.com) (ms).
UC_VIDEO_POLL_TIMEOUT_MS 300000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Tempo massimo effettivo per il polling dei risultati della generazione di video UC (ms).
CURSOR_DATA_DIR (rilevata) open-sse/utils/cursorAgentCliVersion.ts Sostituisce la directory dei dati della CLI Cursor Agent (…/versions/<id>); la stessa variabile utilizzata dall'agente ufficiale.
CURSOR_TOKEN (non impostata) scripts/ad-hoc/cursor-tap.cjs Token bearer diretto di Cursor utilizzato dagli strumenti di sviluppo.
OMNIROUTE_LOG_REQUEST_SHAPE disabilitata (attivabile tramite "1") src/app/api/v1/chat/completions/route.ts Registra gli indicatori relativi al tipo e alla lunghezza del contenuto per i payload di chat di grandi dimensioni quando è impostata su "1". Disattivata per impostazione predefinita per ridurre il rumore nei log.
DEBUG_RESPONSES_SSE_TO_JSON (non impostata) open-sse/handlers/responseTranslator.ts Impostare su true per registrare i dettagli della traduzione SSE→JSON dell'API Responses.
DEBUG_CLAUDE_NONSTREAM (non impostata) open-sse/handlers/responseTranslator.ts Impostare su true per mostrare i chunk textContent vuoti nel percorso di traduzione delle risposte Claude (solo per il debug).
NEXT_PUBLIC_OMNIROUTE_E2E_MODE (non impostata) Infrastruttura di test E2E Impostare su true per abilitare la modalità di test E2E (autenticazione meno restrittiva, hook di test).

23. Integrazione con GitHub

Consente agli utenti di segnalare problemi direttamente dalla Dashboard.

Variabile Valore predefinito File sorgente Descrizione
GITHUB_ISSUES_REPO (non impostato) src/app/api/v1/issues/report/route.ts Repository nel formato owner/repo.
GITHUB_ISSUES_TOKEN (non impostato) src/app/api/v1/issues/report/route.ts Token di accesso personale GitHub con ambito issues:write.
GITHUB_TOKEN (non impostato) valutazione dei problemi / strumenti di supporto dell'agente cloud Token di accesso GitHub generico utilizzato come fallback per GITHUB_ISSUES_TOKEN e dagli strumenti di supporto dell'agente cloud in src/lib/cloudAgent/*.

Scenari di deployment

Per indicazioni SRE sul backend relay (comportamento ts/bifrost/auto, posizionamento di 9router rispetto a CLIProxyAPI e strategia di fallback per throughput elevato), consulta Strategia del backend relay.

Sviluppo locale minimo

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

Produzione con Docker

JWT_SECRET=<generato>
API_KEY_SECRET=<generato>
INITIAL_PASSWORD=<generata>
STORAGE_ENCRYPTION_KEY=<generata>
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

Ambiente isolato / CI

JWT_SECRET=test-jwt-secret-for-ci
API_KEY_SECRET=test-api-key-secret-for-ci
INITIAL_PASSWORD=testpass
NODE_ENV=production
OMNIROUTE_DISABLE_BACKGROUND_SERVICES=true
APP_LOG_TO_FILE=false

VPS con reverse proxy (nginx + Cloudflare)

JWT_SECRET=<generato>
API_KEY_SECRET=<generato>
STORAGE_ENCRYPTION_KEY=<generata>
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. Sandbox delle Skill (v3.8.0+)

Limiti e parametri di sicurezza applicati quando il framework delle Skill (src/lib/skills/) esegue automazioni definite dall'utente in un ambiente sandbox.

Variabile Valore predefinito File sorgente Descrizione
SKILLS_SANDBOX_TIMEOUT_MS 10000 (10 s) src/lib/skills/builtins.ts Timeout in tempo reale per ogni esecuzione del codice di una skill nella sandbox. Limite assoluto: qualsiasi esecuzione più lunga viene terminata.
SKILLS_EXECUTION_TIMEOUT_MS (utilizza SKILLS_SANDBOX_TIMEOUT_MS come fallback) src/lib/skills/ Timeout per l'orchestrazione di alto livello delle skill. Impostalo su un valore superiore a SKILLS_SANDBOX_TIMEOUT_MS per consentire flussi di lavoro in più passaggi.
SKILLS_MAX_FILE_BYTES 1048576 (1 MB) src/lib/skills/builtins.ts Numero massimo di byte che una skill può leggere da un singolo file nella sandbox.
SKILLS_MAX_HTTP_RESPONSE_BYTES 256000 (250 KB) src/lib/skills/builtins.ts Numero massimo di byte acquisiti da una singola risposta HTTP all'interno di una skill.
SKILLS_MAX_SANDBOX_OUTPUT_CHARS 100000 src/lib/skills/builtins.ts Limite assoluto per il numero di caratteri stdout/stderr restituiti da un'esecuzione nella sandbox.
SKILLS_SANDBOX_NETWORK_ENABLED false src/lib/skills/builtins.ts Imposta su 1/true per consentire le connessioni di rete in uscita dall'interno della sandbox. Per sicurezza, il valore predefinito è isolato.
SKILLS_ALLOWED_SANDBOX_IMAGES (vuoto) src/lib/skills/builtins.ts Elenco di immagini container consentite per l'esecuzione nella sandbox, separate da virgole. Se vuoto, è consentita solo l'immagine predefinita integrata.
SKILLS_SANDBOX_DOCKER_IMAGE (valore predefinito integrato) src/lib/skills/ Immagine container utilizzata quando viene avviata una sandbox basata su Docker. Sovrascrivi il valore per fissare un'immagine di base personalizzata e protetta.
SKILLS_SANDBOX_RUNTIME auto src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts Runtime container per l'esecuzione delle skill nella sandbox: auto | docker | apple | wsl | orbstack | podman. auto seleziona il miglior runtime installato in base al sistema operativo host (Apple Container/OrbStack su macOS, WSL Container su Windows, Podman su Linux), usando Docker come fallback.

Caution

L'abilitazione di SKILLS_SANDBOX_NETWORK_ENABLED=true apre un percorso di uscita per codice di skill arbitrario. Negli ambienti condivisi, associala a OUTBOUND_SSRF_GUARD_ENABLED=true e a una policy rigorosa per CORS_ORIGIN/proxy.


25. Quote dei provider, tunnel, backup e runtime vario

Endpoint delle quote dei provider, tunnel di rete (Tailscale, Ngrok, proxy di debug MITM), pool di uscita 1Proxy, backup del database e piccole sostituzioni specifiche per funzionalità a cui fanno riferimento il livello executor o gli script.

Variabile Valore predefinito File sorgente Descrizione
REDIS_URL redis://localhost:6379 src/shared/utils/rateLimiter.ts Stringa di connessione Redis per il backend del limitatore di frequenza.
ALIBABA_CODING_PLAN_HOST (host di produzione) open-sse/services/bailianQuotaFetcher.ts Sostituisce l'host utilizzato per recuperare le quote del piano di coding Alibaba Bailian.
ALIBABA_CODING_PLAN_QUOTA_URL derivato dall'host open-sse/services/bailianQuotaFetcher.ts Sostituzione dell'URL completo delle quote per Alibaba Bailian.
QWEN_CLOUD_COOKIE (non impostato) open-sse/services/qwenTokenPlanQuotaFetcher.ts Cookie di sessione della console per il gateway delle quote del Token Plan personale di Qwen Cloud / Model Studio (la chiave API di inferenza non può leggerle). Copiare l'intera intestazione di richiesta Cookie — contiene login_qwencloud_ticket — da qualsiasi chiamata api.json a cs-data.qwencloud.com in home.qwencloud.com Fatturazione Abbonamento (F12 Rete). Dato sensibile e limitato alla sessione; preferire il campo qwenCloudCookie della Dashboard per singola connessione.
QWEN_CLOUD_SEC_TOKEN (non impostato) open-sse/services/qwenTokenPlanQuotaFetcher.ts Sostituzione manuale di sec_token per il gateway della console del Token Plan. Dato sensibile; quando non è impostato, il fetcher lo ricava dall'HTML della dashboard utilizzando il cookie.
QWEN_TOKEN_PLAN_HOST https://cs-data.qwencloud.com open-sse/services/qwenTokenPlanQuotaFetcher.ts Sostituzione dell'host del gateway per il fetcher delle quote del Token Plan personale (ad es. bailian-singapore-cs.alibabacloud.com per la console di Model Studio).
QWEN_TOKEN_PLAN_DASHBOARD_URL https://home.qwencloud.com/ open-sse/services/qwenTokenPlanQuotaFetcher.ts URL della dashboard utilizzato per ricavare sec_token dall'HTML della sessione autenticata.
ALIBABA_FREE_TIER_VISION_FE_PATH /costing-balance/free-quota-image-video open-sse/services/alibabaFreeTierQuotaFetcher.ts Sostituzione del percorso front-end della console per recuperare la quota gratuita per contenuti visivi/multimediali di Alibaba Model Studio.
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH /costing-balance/free-quota-multimodal open-sse/services/alibabaFreeTierQuotaFetcher.ts Override del percorso front-end della console per recuperare la quota multimodale del piano gratuito di Alibaba Model Studio.
ALIBABA_FREE_TIER_AUDIO_FE_PATH /costing-balance/free-quota-audio open-sse/services/alibabaFreeTierQuotaFetcher.ts Override del percorso front-end della console per recuperare la quota audio del piano gratuito di Alibaba Model Studio.
ALIBABA_FREE_TIER_ALLOWLIST_PATH (non impostato) open-sse/services/alibabaFreeTierAllowlist.ts Percorso facoltativo a un file JSON locale che sostituisce l'allowlist integrata dei modelli di testo del piano gratuito di Alibaba. In assenza, usa $DATA_DIR/alibaba-free-tier-allowlist.json, quindi config/alibaba-free-tier-allowlist.json.
CONTEXT_RESERVE_TOKENS 1024 open-sse/services/contextManager.ts Token riservati all'output del completamento durante il calcolo dei budget del prompt.
CONTEXT_KEEP_LATEST_IMAGES 2 open-sse/services/contextManager.ts Numero di immagini inline più recenti da conservare durante la rimozione di quelle meno recenti per rispettare la finestra di contesto (#8560).
MODEL_ALIAS_COMPAT_ENABLED abilitato open-sse/services/model.ts Attiva o disattiva il livello di compatibilità legacy degli alias dei modelli utilizzato dai client meno recenti.
OMNIROUTE_EMERGENCY_FALLBACK abilitato open-sse/services/emergencyFallback.ts Impostare su false (o 0) per disabilitare il fallback di emergenza per esaurimento del budget, che reindirizza le richieste non riuscite al modello gratuito nvidia/openai/gpt-oss-120b. L'ordine di precedenza effettivo è: override del DB Feature Flags > variabile di ambiente > valore predefinito; se non disponibile, il servizio usa direttamente il valore grezzo della variabile di ambiente.
COMMAND_CODE_CALLBACK_PORT (non impostato) src/app/api/providers/command-code/auth/shared.ts Porta locale utilizzata per i callback in stile OAuth dall'helper CLI di Command Code.
COMMAND_CODE_VERSION 0.33.2 open-sse/executors/commandCode.ts Valore inviato come header x-command-code-version al servizio upstream di Command Code. Eseguire l'override per aggiornare la versione della CLI.
COMMANDCODE_API_URL https://api.commandcode.ai open-sse/services/usage/command-code.ts URL di base del servizio upstream di utilizzo/quota di Command Code usato dalla telemetria del recupero delle quote per smartphone. Eseguire l'override per un'API Command Code self-hosted o alternativa.
MITM_LOCAL_PORT 443 src/mitm/server.cjs Porta di binding locale per il proxy di debug MITM.
MITM_DISABLE_TLS_VERIFY 0 src/mitm/server.cjs Impostare su 1 per disabilitare la verifica TLS upstream (solo per lo sviluppo).
MITM_IDLE_TIMEOUT_MS 60000 src/mitm/socketTimeouts.ts, src/mitm/server.cjs Timeout di inattività del socket (ms) per le connessioni inoltrate tramite proxy; i socket che rimangono inattivi oltre questo limite vengono chiusi per evitare la perdita di tunnel semiaperti.
MITM_VERBOSE 1 src/mitm/server.cjs, src/mitm/_internal/bypass.cjs Livello di dettaglio dei log relativi alle decisioni di instradamento: 0 li disattiva, mentre valori più elevati registrano più decisioni di bypass/instradamento.
MITM_ROOT_CA_ENABLED false src/mitm/manager.ts Impostare su true per aderire al modello con CA radice e certificati foglia per host (#6684). Le nuove installazioni lo adottano automaticamente; le installazioni con un certificato foglia legacy attendibile preesistente mantengono il certificato legacy con SAN fisso, salvo adesione esplicita.
MITM_CERT_MODE legacy src/mitm/manager.ts, src/mitm/server.cjs Impostata DAL gestore MITM per il processo proxy avviato (root-ca | legacy): riflette la decisione relativa alla migrazione dei certificati e non è destinata a essere impostata manualmente.
OMNIROUTE_NO_SUDO 0 src/mitm/systemCommands.ts Impostare su 1 (valore truthy) per rimuovere il prefisso sudo dai comandi MITM per considerare attendibili i certificati, per distribuzioni senza root o con namespace utente nelle quali l'operatore considera attendibile la CA manualmente (ad es. tramite il meccanismo dei certificati CA aggiuntivi di Node).
SKIP_ANTIGRAVITY_DNS (non impostata) src/mitm/dns/provision.ts Impostare su true per ignorare completamente il provisioning delle voci DNS in /etc/hosts per i nomi host del proxy Antigravity, per i container in cui sudo/root non è disponibile.
OMNIROUTE_SKIP_DNS_WRITE (non impostata) src/mitm/dns/dnsConfig.ts Impostare su 1 per evitare la scrittura nel file hosts durante l'aggiunta o la rimozione delle voci DNS, per ambienti di test con sandbox o di sola lettura.
OMNIROUTE_SKIP_SYSTEM_TRUST 0 src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts Protezione riservata a test/CI: impostare su 1 per rendere l'installazione/disinstallazione dell'attendibilità dei certificati un'operazione senza effetti, affinché la suite non modifichi mai l'archivio di attendibilità del sistema operativo. Viene impostata automaticamente dalla configurazione dei test e dai workflow CI.
CHANGELOG_BASE_REF (automatico) scripts/check/check-changelog-integrity.mjs Riferimento di base esplicito per il controllo anti-cancellazione del CHANGELOG (per impostazione predefinita, il branch di base della PR nella CI oppure il valore release/v* più alto).
FREE_PROXY_AUTO_SYNC_ENABLED false src/lib/freeProxyProviders/scheduler.ts Impostare su true per abilitare lo scheduler di sincronizzazione automatica in background del pool di proxy gratuiti. Funzionalità facoltativa, disabilitata per impostazione predefinita.
FREE_PROXY_AUTO_SYNC_INTERVAL_MS 1800000 src/lib/freeProxyProviders/scheduler.ts Intervallo di sincronizzazione automatica in millisecondi (valore predefinito: 30 min).
FREE_PROXY_1PROXY_ENABLED true src/lib/freeProxyProviders/oneproxy.ts Abilita la sorgente di proxy gratuiti 1proxy. Impostare su false per disabilitarla.
FREE_PROXY_1PROXY_API_URL (vedere oneproxy.ts) src/lib/freeProxyProviders/oneproxy.ts Override dell'URL dell'API di 1proxy.
FREE_PROXY_1PROXY_MAX 500 src/lib/freeProxyProviders/oneproxy.ts Numero massimo di proxy recuperati da 1proxy per ogni sincronizzazione.
FREE_PROXY_1PROXY_MIN_QUALITY 50 src/lib/freeProxyProviders/oneproxy.ts Soglia minima del punteggio di qualità per le importazioni da 1proxy.
FREE_PROXY_PROXIFLY_ENABLED true src/lib/freeProxyProviders/proxifly.ts Abilita la sorgente di proxy gratuiti Proxifly. Impostare su false per disabilitarla.
FREE_PROXY_PROXIFLY_QUANTITY 100 src/lib/freeProxyProviders/proxifly.ts Numero di proxy da recuperare per ogni sincronizzazione con Proxifly.
FREE_PROXY_PROXIFLY_ANONYMITY elite src/lib/freeProxyProviders/proxifly.ts Filtro del livello di anonimato per Proxifly (elite, anonymous, transparent).
FREE_PROXY_IPLOCATE_ENABLED false src/lib/freeProxyProviders/iplocate.ts Abilita la sorgente proxy gratuita IPLocate. Solo su esplicita attivazione.
FREE_PROXY_IPLOCATE_BASE_URL https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols src/lib/freeProxyProviders/iplocate.ts Sovrascrive l'URL di base dell'elenco proxy IPLocate.
FREE_PROXY_WEBSHARE_ENABLED true src/lib/freeProxyProviders/webshare.ts Abilita la sorgente del pool di proxy Webshare. Impostare su false per disabilitarla; richiede inoltre che FREE_PROXY_WEBSHARE_API_KEY sia impostata.
FREE_PROXY_WEBSHARE_API_KEY (nessuno) src/lib/freeProxyProviders/webshare.ts Token API dell'account Webshare (Authorization: Token <key>). Obbligatorio: senza di esso il provider rimane disabilitato.
FREE_PROXY_WEBSHARE_API_URL https://proxy.webshare.io/api/v2/proxy/list/ src/lib/freeProxyProviders/webshare.ts Sovrascrive l'URL dell'API dell'elenco proxy Webshare.
FREE_PROXY_WEBSHARE_MAX 500 src/lib/freeProxyProviders/webshare.ts Numero massimo di proxy importati per ogni sincronizzazione con Webshare.
NEXT_PUBLIC_VERCEL_RELAY_ENABLED true src/app/(dashboard)/…/ProxyPoolTab.tsx Mostra/nasconde il pulsante Distribuisci Vercel Relay nella scheda Pool di proxy.
VERCEL_API_BASE https://api.vercel.com src/app/api/settings/proxy/vercel-deploy/route.ts Sovrascrive l'URL di base dell'API Vercel (per i test).
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/…/VercelRelayModal.tsx Nome predefinito del progetto, precompilato nella finestra modale di distribuzione di Vercel Relay.
TAILSCALE_BIN (rilevamento automatico) src/lib/tailscaleTunnel.ts Percorso esplicito del file binario tailscale.
TAILSCALED_BIN (rilevamento automatico) src/lib/tailscaleTunnel.ts Percorso esplicito del file binario del daemon tailscaled.
TAILSCALE_AUTHKEY (non impostata) src/lib/tailscaleTunnel.ts Chiave di autenticazione Tailscale precondivisa per l'esecuzione non interattiva/headless di tailscale up (passata tramite --auth-key=). Quando non è impostata, l'accesso usa come fallback l'URL di autenticazione interattiva nel browser.
NGROK_AUTHTOKEN (non impostata) src/lib/ngrokTunnel.ts Autentica i tunnel ngrok in uscita.
DB_BACKUP_MAX_FILES 20 src/lib/db/backup.ts Numero massimo di file di backup SQLite conservati dalla pulizia dei backup manuali/pianificati. Le istantanee di migrazione sono indirizzate in base al contenuto e riutilizzate per uno stato identico del DB; non vengono eliminate durante la finestra di migrazione simultanea. Sostituisce il valore salvato in Impostazioni → Conservazione dei backup del database.
DB_BACKUP_RETENTION_DAYS 0 src/lib/db/backup.ts Età massima (in giorni) dei file conservati dalla pulizia dei backup manuali/pianificati. 0 disabilita l'eliminazione basata sull'età. Le istantanee di migrazione non vengono eliminate durante la finestra di migrazione simultanea. Sostituisce il valore salvato in Impostazioni → Conservazione dei backup del database.
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS 30000 src/lib/jobs/backupScheduleJob.ts Intervallo di esecuzione (ms) del processo lato server che esegue backup-schedule.json. Deve rimanere ben al di sotto della granularità di 1 minuto di cron; i valori inferiori a 5000 o non interpretabili usano 30000 come fallback.
CONTAINER_HOST docker scripts/check-permissions.sh Indicazione del runtime del container per il controllo delle autorizzazioni dell'entrypoint. Impostare su podman per qualsiasi topologia Podman. Poiché il container non può determinare se il motore è locale o raggiunto tramite Podman Machine, l'avviso rimane neutrale rispetto alla topologia e rimanda a contrib/podman/README.md.
QUOTA_STORE_DRIVER sqlite src/lib/quota/storeFactory.ts Backend dell'archivio del consumo delle quote condivise: sqlite (predefinito) o redis.
QUOTA_STORE_REDIS_URL (non impostata) src/lib/quota/storeFactory.ts Stringa di connessione Redis utilizzata quando QUOTA_STORE_DRIVER=redis (ad es. redis://localhost:6379).
QUOTA_SATURATION_THRESHOLD 0.5 src/lib/quota/enforce.ts Rapporto di saturazione del pool (0..1); al raggiungimento o al superamento di tale valore, il pool entra in modalità rigorosa (nessun prestito).
QUOTA_SOFT_DEPRIORITIZE_FACTOR 0.7 open-sse/services/combo.ts Moltiplicatore del punteggio (0..1) applicato a una destinazione quando la politica di quota flessibile ne riduce la priorità.
STATUS_SOFT_DEPRIORITIZE_FACTOR 0.5 open-sse/services/combo/autoStrategy.ts Moltiplicatore del punteggio (0..1) applicato a un provider esaurito (credits_exhausted/rate_limited) nel calcolo del punteggio della combinazione automatica quando il limite preventivo della quota è DISATTIVATO (#4540).
QUOTA_CONSUMPTION_RETENTION_DAYS 14 src/lib/db/quotaConsumption.ts Periodo di conservazione (giorni) dei bucket quota_consumption prima della garbage collection (gcQuotaConsumption).
QUOTA_PREFLIGHT_CUTOFF_ENABLED false src/lib/resilience/settings.ts Funzionalità opzionale (DISATTIVATA per impostazione predefinita): abilita il limite rigido preventivo della quota per l'instradamento automatico, che scarta i candidati con quota ridotta prima del calcolo del punteggio.
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL false open-sse/services/autoCombo/virtualFactory.ts Funzionalità opzionale (DISATTIVATA per impostazione predefinita): quando un filtro auto/<category>:<tier> non trova candidati connessi, ripristina il comportamento precedente che prevedeva il ripiego sull'intero pool (non filtrato), anziché restituire un pool vuoto. Con l'impostazione predefinita DISATTIVATA, :free indica "solo il livello gratuito".
OMNIROUTE_CHAOS_MAX_PANEL 5 open-sse/services/autoCombo/virtualFactory.ts Limite delle dimensioni del pannello (vincolato tra 1 e 10) per la variante di trasmissione auto/*:chaos: una richiesta viene inoltrata a un massimo di questo numero di modelli appartenenti a provider diversi.
OMNIROUTE_CHAOS_MIN_PANEL (valore predefinito del motore) open-sse/services/autoCombo/virtualFactory.ts Configurazione delle dimensioni minime del pannello inoltrata al gestore della trasmissione chaos; se non impostata, mantiene il valore predefinito del motore.
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS (valore predefinito del motore) open-sse/services/autoCombo/virtualFactory.ts Timeout rigido (ms) per l'intero fan-out del pannello chaos; se non impostato, mantiene il valore predefinito del motore.
GROK_AUTH_PATH ~/.grok/auth.json open-sse/services/grokQuotaFetcher.ts Percorso del file auth.json della CLI Grok utilizzato per recuperare la quota settimanale di grok-web; può essere sovrascritto per i test o per un'installazione non standard della CLI.
AGENTBRIDGE_UPSTREAM_CA_CERT (non impostato) src/mitm/manager.ts Certificato CA aggiuntivo (PEM) considerato attendibile per le connessioni TLS upstream di AgentBridge.
INSPECTOR_BUFFER_SIZE 1000 src/mitm/inspector/buffer.ts Numero massimo di richieste acquisite conservate nel buffer circolare di Traffic Inspector.
INSPECTOR_MAX_BODY_KB 1024 src/mitm/inspector/buffer.ts Dimensione massima (KB) del corpo della richiesta/risposta acquisita prima del troncamento.
INSPECTOR_HTTP_PROXY_PORT 8080 src/mitm/inspector/httpProxyServer.ts Porta locale per il proxy HTTP di Traffic Inspector.
INSPECTOR_HTTP_PROXY_AUTOSTART false src/mitm/inspector/httpProxyServer.ts Avvia automaticamente il proxy HTTP dell'Inspector all'avvio.
INSPECTOR_TLS_INTERCEPT false src/lib/inspector/captureState.ts Abilita l'intercettazione TLS (MITM) per il traffico HTTPS acquisito.
INSPECTOR_LLM_HOSTS_EXTRA (non impostato) src/lib/inspector/captureState.ts Nomi host aggiuntivi (separati da virgole) trattati come endpoint LLM per l'acquisizione.
INSPECTOR_MASK_SECRETS true src/mitm/inspector/buffer.ts Maschera i dati segreti (header di autenticazione / chiavi API) nel traffico acquisito.
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES 30 src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts Minuti prima che il sistema di protezione del proxy di sistema ripristini automaticamente le impostazioni proxy del sistema operativo.
INSPECTOR_INTERNAL_INGEST_TOKEN (automatico) src/app/api/tools/traffic-inspector/internal/ingest/route.ts Token che autentica l'inserimento interno delle acquisizioni nell'Inspector.
PLAYGROUND_COMPARE_MAX_COLUMNS 4 src/app/(dashboard)/dashboard/playground/ Numero massimo di colonne affiancate nella modalità di confronto del Playground.
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL (non impostato) src/app/(dashboard)/dashboard/playground/ Modello predefinito per l'azione "migliora prompt" del Playground (se non impostato, usa il modello attivo).
BIFROST_ENABLED 1 src/app/api/v1/relay/chat/completions/bifrost/route.ts Interruttore generale di arresto per il proxy sidecar Bifrost. Quando è impostato su 0, la route restituisce 503 con l'header X-Bifrost-Killswitch e l'operatore viene reindirizzato al percorso TS. Consente di disabilitare il sidecar senza eseguire nuovamente il deployment (incidente del router di livello 1, rotazione delle chiavi).
BIFROST_BASE_URL (non impostato) src/app/api/v1/relay/chat/completions/bifrost/route.ts Quando è impostato, la route del proxy sidecar Bifrost inoltra il traffico /v1/chat/completions a questo gateway Go anziché al gestore relay TS. Non impostato → 503 con fallback. La barra finale viene rimossa.
BIFROST_PORT 8080 src/lib/services/bootstrap.ts Porta alla quale si associa il servizio integrato Bifrost supervisionato (127.0.0.1:<port>) quando OmniRoute gestisce il ciclo di vita del sidecar Bifrost. Il valore predefinito è 8080.
BIFROST_API_KEY (non impostato) src/app/api/v1/relay/chat/completions/bifrost/route.ts Chiave API per il gateway Bifrost (inviata come Authorization: Bearer ...). Se non è impostata, la route si aspetta che la richiesta contenga una chiave API OmniRoute valida; questa chiave serve esclusivamente per l'autenticazione lato gateway.
BIFROST_STREAMING_ENABLED true src/app/api/v1/relay/chat/completions/bifrost/route.ts Quando è true, la route del sidecar Bifrost restituisce le risposte in streaming tramite SSE attraverso il gateway anziché tramite l'esecutore di streaming TS. Impostare su 0 per forzare risposte JSON non in streaming attraverso il gateway.
BIFROST_TIMEOUT_MS 30000 src/app/api/v1/relay/chat/completions/bifrost/route.ts Timeout per richiesta durante il proxy verso il gateway Bifrost (ms). In caso di timeout, la route restituisce il percorso relay TS tramite l'header X-Bifrost-Fallback.
OMNIROUTE_BIFROST_KEY (non impostato) src/app/api/v1/relay/chat/completions/bifrost/route.ts Alias di BIFROST_API_KEY (utilizzato dagli script che leggono le variabili di ambiente tramite OMNIROUTE_*). BIFROST_API_KEY ha la precedenza quando sono impostati entrambi.
OMNIROUTE_RELAY_BACKEND ts / auto src/app/api/v1/relay/chat/completions/routingBackend.ts Backend relay per /api/v1/relay/chat/completions: ts | bifrost | auto. ts = relay TypeScript (predefinito quando Bifrost non è configurato); auto seleziona Bifrost quando BIFROST_BASE_URL è impostato e BIFROST_ENABLED0, con fallback automatico su TS se il sidecar non è raggiungibile; bifrost forza Bifrost (modalità rigorosa, nessun fallback). Autenticazione, limite di frequenza, protezione dall'iniezione e lista consentita vengono sempre eseguiti prima nella route Next. Le risposte includono X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason.
RELAY_ROUTING_BACKEND (non impostato) src/app/api/v1/relay/chat/completions/routingBackend.ts Alias accettato per OMNIROUTE_RELAY_BACKEND (stessi valori ts | bifrost | auto). OMNIROUTE_RELAY_BACKEND ha la precedenza quando sono impostati entrambi.
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS 5000 src/app/api/v1/relay/chat/completions/bifrostCooldown.ts Periodo di attesa (ms) dopo il fallimento di un passaggio attraverso il sidecar Bifrost in modalità auto, prima che il relay ritenti il sidecar; durante il periodo di attesa, instrada direttamente verso il percorso TS, quindi riprova. 0 disabilita questa funzione. Si applica solo quando OMNIROUTE_RELAY_BACKEND=auto.
OMNIROUTE_TLS_CERT (non impostato) bin/cli/commands/serve.mjs Percorso di un certificato TLS PEM per eseguire omniroute serve tramite HTTPS (equivalente a --tls-cert). Deve essere abbinato a OMNIROUTE_TLS_KEY; il server autonomo termina quindi TLS sullo stesso listener (wss:// continua a funzionare senza modifiche). Non impostato → HTTP semplice. Se viene fornito solo il certificato o la chiave, oppure un percorso illeggibile, viene registrato un avviso e viene mantenuto HTTP.
OMNIROUTE_TLS_KEY (non impostato) bin/cli/commands/serve.mjs Percorso della chiave privata TLS PEM per HTTPS di omniroute serve (equivalente a --tls-key). Deve essere abbinata a OMNIROUTE_TLS_CERT. Vedere OMNIROUTE_TLS_CERT.
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED 0 src/lib/security/localEndpoints.ts Interruttore principale per le route /api/local/*. Quando non impostato o pari a 0, tutte le route /api/local/* restituiscono 503 in produzione. Deve essere 1 nelle distribuzioni non loopback per abilitare il programma di avvio di Redis e analoghi servizi locali avviabili con un clic. Protezione ridondante con la classificazione delle route tramite isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES in src/server/authz/routeGuard.ts).
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN (non impostato) src/lib/security/localEndpoints.ts Token Bearer per i client di /api/local/* che non si trovano su loopback (ad esempio, l'app desktop). Quando è impostato, le richieste provenienti da IP non loopback devono includere Authorization: Bearer <token>. Obbligatorio quando OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 nelle distribuzioni non loopback.
OMNIROUTE_REDIS_CONTAINER_NAME omniroute-redis bin/cli/commands/redis.mjs Nome del container per il programma di avvio di Redis con un clic (omniroute redis up). Utilizzato sia dalla CLI sia dall'interfaccia grafica RedisLauncherPanel.
OMNIROUTE_REDIS_HOST_PORT 6379 bin/cli/commands/redis.mjs Porta host per il programma di avvio di Redis con un clic. Modificarla se l'host usa già la porta 6379. La porta interna del container rimane 6379.
OMNIROUTE_REDIS_BIND_HOST 127.0.0.1 bin/cli/commands/redis.mjs Interfaccia host su cui pubblica il programma di avvio di Redis con un clic. Il programma avvia Redis SENZA password, quindi l'associazione a 0.0.0.0 rende disponibile a ogni host della LAN un'istanza Redis non autenticata: ampliare l'accesso solo se si imposta autonomamente anche una password sull'istanza.
REDIS_BIND_HOST 127.0.0.1 docker-compose.yml Interfaccia host su cui docker-compose pubblica il sidecar Redis (#9286). Il Redis di compose viene eseguito senza requirepass; i container dell'app vi accedono tramite la rete di compose (redis:6379): la porta pubblicata esiste solo per gli strumenti lato host. 0.0.0.0 espone un'istanza Redis non autenticata all'intera LAN.
REDIS_PORT 6379 docker-compose.yml Porta host per il sidecar Redis di compose.
APP_BIND_HOST 127.0.0.1 docker-compose.yml, docker-compose.prod.yml Interfaccia host sulla quale docker-compose pubblica le porte dashboard/API/live-WS dell'app (#12568). Poiché REQUIRE_API_KEY=false è il valore predefinito fornito in .env.example, 0.0.0.0 espone il proxy LLM anonimo /v1 all'intera LAN/WAN: ampliare l'accesso solo dopo aver impostato REQUIRE_API_KEY=true oppure se un reverse proxy a monte applica la propria autenticazione.
QDRANT_BIND_HOST 127.0.0.1 docker-compose.yml Interfaccia host sulla quale docker-compose pubblica il sidecar di memoria Qdrant (#12578). Si applicano le stesse considerazioni sull'esposizione alla LAN di REDIS_BIND_HOST.
BIFROST_BIND_HOST 127.0.0.1 docker-compose.yml Interfaccia host sulla quale docker-compose pubblica il sidecar del router Bifrost (#12578). Si applicano le stesse considerazioni sull'esposizione alla LAN di REDIS_BIND_HOST.
REDIS_KEY_PREFIX omniroute: src/shared/utils/rateLimiter.ts Prefisso dello spazio dei nomi applicato a ogni chiave Redis di OmniRoute (limitatore di frequenza, cache di autenticazione, archivio delle quote, interruttore automatico di warm-up). Evita collisioni tra le chiavi quando l'istanza Redis è condivisa con altre app (#11042).
OMNIROUTE_INTERNAL_SERVICE_TOKEN (non impostato — meccanismo disabilitato) src/lib/api/internalServiceAuth.ts Segreto condiviso per i passaggi REST interni che preservano l'identità (#9260): i componenti OmniRoute che chiamano altre route OmniRoute locali lo inviano come x-omniroute-internal-service-token, in modo da preservare l'identità del chiamante originale. Confrontato tramite timingSafeEqual.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE (non impostato) src/lib/api/internalServiceAuth.ts Variante su file segreto del token di servizio interno: percorso di un file il cui contenuto, privato degli spazi iniziali e finali, costituisce il token. Viene consultato solo quando la variabile inline non è impostata.
OPENROUTER_PROVIDER_STATS_ENABLED true src/lib/catalog/openrouterProviderStats.ts Arricchisce l'elenco dei provider nella dashboard con le statistiche settimanali di classificazione di OpenRouter (#9324). Attivo per impostazione predefinita; impostare false per ignorare completamente il recupero in background (non bloccante e mai fatale).
OPENROUTER_PROVIDER_STATS_TTL_MS 86400000 (24h) src/lib/catalog/openrouterProviderStats.ts TTL della cache per l'istantanea delle statistiche dei provider OpenRouter, in millisecondi.
OMNIROUTE_REDIS_IMAGE redis:7-alpine bin/cli/commands/redis.mjs Immagine Redis utilizzata dal programma di avvio Redis con un clic. Sostituire con redis:8-alpine o con un mirror di registro privato, secondo necessità.
QDRANT_HOST qdrant (profilo cluster opzionale) Nome host del sidecar Qdrant quando --profile memory è attivo. Il valore predefinito punta al nome del servizio qdrant nella rete; modificarlo per una distribuzione esterna. Viene utilizzato solo quando qdrantEnabled è true nel codice (src/lib/memory/vectorStore.ts:108).
QDRANT_PORT 6333 (profilo cluster opzionale) Porta REST del sidecar Qdrant.
QDRANT_GRPC_PORT 6334 (profilo cluster opzionale) Porta gRPC del sidecar Qdrant. Utilizzata dalle librerie client che preferiscono gRPC a REST per le operazioni di streaming.
QDRANT_API_KEY (non impostata) (profilo cluster opzionale) Chiave API opzionale per Qdrant Cloud o per un'istanza on-premise autenticata. Se vuota → non viene inviata alcuna intestazione api-key.
QDRANT_COLLECTION omniroute-memory (profilo cluster opzionale) Nome della raccolta per gli embedding della memoria delle conversazioni di OmniRoute. Viene creata alla prima esecuzione con le dimensioni specificate da QDRANT_VECTOR_SIZE.
QDRANT_EMBEDDING_MODEL text-embedding-3-small (profilo cluster opzionale) Nome del modello di embedding predefinito registrato nei metadati della raccolta Qdrant. Gli embedding effettivi vengono generati dal provider indicato dal campo embeddingModel nelle impostazioni di OmniRoute.
QDRANT_VECTOR_SIZE 1536 (profilo cluster opzionale) Dimensione del vettore di embedding. Deve corrispondere al modello utilizzato per generare gli embedding (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768).
QDRANT_HNSW_EF_CONSTRUCT 128 (profilo cluster opzionale) Accuratezza dell'indice HNSW durante la costruzione. Un valore più alto comporta una costruzione più lenta e una ricerca più veloce.
OMNIROUTE_ROTATION_ENABLED true open-sse/services/rotationConfig.ts Interruttore principale per la rotazione degli account configurabile dall'operatore. Quando è false, nessuna delle classi OMNIROUTE_ROTATE_* riportate di seguito attiva il fallback dell'account (lo stato di disattivazione generale blocca anche le classi 429/500/502 abilitate per impostazione predefinita). Consente a un front-end di supervisione (ad es. l'app desktop VibeProxy) di replicare le proprie regole di rotazione nel motore di fallback degli account del backend.
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS 0 open-sse/services/rotationConfig.ts Periodo di attesa (in secondi) applicato a un account soggetto a limite di frequenza quando il servizio upstream non fornisce alcuna indicazione esplicita per il ripristino. 0 = utilizza il periodo di attesa predefinito del motore anziché una sostituzione fissa.
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET true open-sse/services/rotationConfig.ts Replica della preferenza del front-end «non contrassegnare come soggetto a limite di frequenza senza un tempo di ripristino».
OMNIROUTE_ROTATE_ON_429 true open-sse/services/rotationConfig.ts Abilita il fallback per stato per gli errori 429. Quando è impostato su false (e OMNIROUTE_ROTATION_ENABLED=true), un errore 429 non attiva più la rotazione dell'account e viene invece restituito al client.
OMNIROUTE_ROTATE_429_THRESHOLD 1 open-sse/services/rotationConfig.ts Numero di errori 429 entro OMNIROUTE_ROTATE_429_WINDOW_SECONDS necessario prima che l'account venga ruotato. 1 (valore predefinito) attiva immediatamente la rotazione, mantenendo il comportamento storico.
OMNIROUTE_ROTATE_429_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Finestra temporale mobile (in secondi) durante la quale gli errori 429 vengono conteggiati ai fini di OMNIROUTE_ROTATE_429_THRESHOLD.
OMNIROUTE_ROTATE_ON_500 true open-sse/services/rotationConfig.ts Abilita il fallback per stato per gli errori del server 5xx (escluso 502, che dispone di una classe propria). Quando è impostato su false, questi errori non attivano più la rotazione dell'account.
OMNIROUTE_ROTATE_500_THRESHOLD 1 open-sse/services/rotationConfig.ts Numero di errori 5xx entro OMNIROUTE_ROTATE_500_WINDOW_SECONDS necessario prima che l'account venga ruotato. 1 (valore predefinito) attiva immediatamente la rotazione.
OMNIROUTE_ROTATE_500_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Finestra temporale mobile (in secondi) durante la quale gli errori 5xx vengono conteggiati ai fini di OMNIROUTE_ROTATE_500_THRESHOLD.
OMNIROUTE_ROTATE_ON_502 true open-sse/services/rotationConfig.ts Abilita il fallback per stato per gli errori 502 (gateway non valido). Quando è impostato su false, gli errori 502 non attivano più la rotazione dell'account.
OMNIROUTE_ROTATE_502_THRESHOLD 1 open-sse/services/rotationConfig.ts Numero di errori 502 entro OMNIROUTE_ROTATE_502_WINDOW_SECONDS necessario prima che l'account venga ruotato. 1 (valore predefinito) attiva immediatamente la rotazione.
OMNIROUTE_ROTATE_502_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Finestra temporale mobile (in secondi) durante la quale gli errori 502 vengono conteggiati ai fini di OMNIROUTE_ROTATE_502_THRESHOLD.
OMNIROUTE_ROTATE_ON_400 false open-sse/services/rotationConfig.ts Funzionalità facoltativa (disattivata per impostazione predefinita): quando è impostato su true, anche un semplice errore 400 (richiesta non valida) attiva la rotazione dell'account. Questa opzione ha unicamente carattere additivo: non impedisce mai il comportamento esistente del motore, per cui un errore 400 contenente testo relativo al limite di frequenza o alla quota attiva comunque il fallback, indipendentemente da questo flag.
OMNIROUTE_ROTATE_400_THRESHOLD 1 open-sse/services/rotationConfig.ts Numero di errori 400 entro OMNIROUTE_ROTATE_400_WINDOW_SECONDS richiesto prima che l'account venga ruotato (consultato solo quando OMNIROUTE_ROTATE_ON_400=true).
OMNIROUTE_ROTATE_400_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Finestra mobile (in secondi) durante la quale gli errori 400 vengono conteggiati ai fini di OMNIROUTE_ROTATE_400_THRESHOLD.

Pianificatore di warmup di Claude

Warmup basato su cron per le connessioni OAuth Anthropic abilitate, affinché la finestra del limite di frequenza di 5 ore venga aperta da una semplice richiesta pianificata anziché dalla prima richiesta effettiva (#8848). Il pianificatore è disattivato a meno che OMNIROUTE_WARMUP_ENABLED non abbia un valore truthy e la connessione non sia contrassegnata in settings.claudeWarmup.connections; un elenco di connessioni vuoto significa che non viene eseguito alcun warmup, anche con la variabile d'ambiente attiva.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_WARMUP_ENABLED (non impostata → disattivato) src/lib/warmupScheduler.ts Interruttore principale del pianificatore di warmup. Accetta 1/true/yes/on (senza distinzione tra maiuscole e minuscole, ignorando gli spazi iniziali e finali). Qualsiasi altro valore, o la mancata impostazione, lascia il pianificatore disattivato.
OMNIROUTE_WARMUP_CRON 0 7 * * * src/lib/warmupScheduler.ts Espressione cron a cinque campi per l'esecuzione del warmup, valutata in America/Los_Angeles (il fuso orario di reimpostazione di Anthropic) indipendentemente dall'orologio dell'host.
OMNIROUTE_WARMUP_CONCURRENCY 3 src/lib/warmupScheduler.ts Numero di connessioni sottoposte a warmup in parallelo per ogni esecuzione. Limitato all'intervallo 1-10; un valore non numerico utilizza come fallback 3.
OMNIROUTE_WARMUP_MODEL claude-3-5-haiku-20241022 src/lib/warmupScheduler.ts Modello utilizzato per la richiesta di warmup. Modificarlo solo se il valore predefinito non è disponibile nel proprio piano; scegliere il modello più economico che consenta comunque di aprire la finestra.

Sessioni VNC per l'accesso tramite browser e alias della directory dei dati

Chromium+VNC containerizzato utilizzato per l'acquisizione interattiva delle credenziali di accesso tramite browser (/api/vnc-session), oltre a un alias legacy DATA_DIR. Tutto è facoltativo: i valori predefiniti di VNC fanno riferimento all'immagine inclusa omniroute-vnc-chromium:local e vengono sovrascritti solo per un'immagine container personalizzata, porte personalizzate o modifiche alla gestione del ciclo di vita.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Tag dell'immagine Docker per il container di accesso Chromium+VNC. Compilare docker/vnc-browser/chromium oppure impostare questa variabile su un'immagine personalizzata.
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Binario del runtime per container utilizzato per avviare il container VNC (ad es. impostare su podman).
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Porta VNC/noVNC esposta all'interno del container.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Porta del Chrome DevTools Protocol all'interno del container.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Percorso della directory del profilo Chromium all'interno del container.
OMNIROUTE_VNC_PROFILE_DIR $HOME/.omniroute/browser-login-profiles src/lib/vncSession/manifest.ts Directory dell'host contenente i profili persistenti di accesso tramite browser.
OMNIROUTE_VNC_IDLE_MS 600000 (10 min) src/lib/vncSession/manifest.ts Timeout di inattività (ms) dopo il quale una sessione VNC inattiva viene terminata.
OMNIROUTE_VNC_MAX_MS 1800000 (30 min) src/lib/vncSession/manifest.ts Limite massimo assoluto (ms) per la durata di una singola sessione VNC.
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Numero massimo di sessioni VNC simultanee.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Timeout (ms) per l'attesa che il browser nel container sia pronto per CDP.
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Timeout (ms) per il recupero della sessione e dei cookie acquisiti al termine dell'accesso.
OMNIROUTE_VNC_CHROMIUM_ARGS --remote-debugging-port=9222 --no-first-run --no-default-browser-check src/lib/vncSession/manifest.ts Flag aggiuntivi della riga di comando passati a Chromium nel container.
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Rete Docker dedicata a cui si connette il container di accesso VNC (#12571), anziché il bridge predefinito, in modo che i container adiacenti non possano raggiungere la relativa porta bridge CDP.
VIBEPROXY_DATA_DIR (non impostato) open-sse/services/notionThreadSessions.ts Alias legacy per DATA_DIR, verificato solo quando sia DATA_DIR sia OMNIROUTE_DATA_DIR non sono impostate. Individua la cache delle sessioni dei thread web di Notion (<dir>/notion-web-thread-sessions.json).

26. Harness di test ed E2E

Utilizzato da scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs, scripts/dev/run-ecosystem-tests.mjs e scripts/build/uninstall.mjs. Lasciare tutti i valori seguenti non impostati nelle distribuzioni di produzione.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_E2E_BOOTSTRAP_MODE auth scripts/dev/run-next-playwright.mjs Modalità di bootstrap E2E (auth, fresh, reuse) per il runner Playwright.
OMNIROUTE_E2E_PASSWORD ripiega su INITIAL_PASSWORD scripts/dev/run-next-playwright.mjs Password di amministrazione inserita nell'ambiente Playwright.
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Disabilita il polling dell'healthcheck locale durante le esecuzioni di Playwright.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Disabilita il ciclo di healthcheck dei token OAuth durante i test.
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS (non impostato) src/lib/tokenHealthCheck.ts Provider separati da virgole esclusi dalla scansione proattiva di aggiornamento dei token (ad es. codex,openai). Alternativa mirata alla disabilitazione completa dell'healthcheck: i provider con TTL breve continuano ad aggiornarsi, mentre quelli a cascata restano solo reattivi.
OMNIROUTE_HIDE_HEALTHCHECK_LOGS true scripts/dev/run-next-playwright.mjs Silenzia i messaggi dell'healthcheck nello stdout di Playwright.
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD 0 scripts/dev/run-next-playwright.mjs Salta la build di produzione di Next.js prima dell'avvio di Playwright (ottimizzazione per la CI).
OMNIROUTE_SKIP_UNINSTALL_HOOK 0 scripts/build/uninstall.mjs Salta l'hook di disinstallazione di OmniRoute (utilizzato dalla CI per mantenere intatto node_modules).
ECOSYSTEM_SERVER_WAIT_MS 180000 scripts/dev/run-ecosystem-tests.mjs Tempo di attesa (ms) affinché il server diventi operativo prima di eseguire i test dell'ecosistema/del protocollo.
ELECTRON_SMOKE_URL http://127.0.0.1:20128/login scripts/dev/smoke-electron-packaged.mjs URL che l'harness di smoke test di Electron si aspetta venga servito dall'app pacchettizzata.
ELECTRON_SMOKE_TIMEOUT_MS 45000 scripts/dev/smoke-electron-packaged.mjs Timeout totale (ms) prima che l'harness di smoke test interrompa il tentativo.
ELECTRON_SMOKE_SETTLE_MS 2000 scripts/dev/smoke-electron-packaged.mjs Finestra di stabilizzazione (ms) dopo il caricamento della pagina.
ELECTRON_SMOKE_APP_EXECUTABLE (automatico) scripts/dev/smoke-electron-packaged.mjs Percorso esplicito dell'eseguibile Electron pacchettizzato.
ELECTRON_SMOKE_DATA_DIR (tmpdir) scripts/dev/smoke-electron-packaged.mjs Directory dei dati per l'esecuzione dello smoke test di Electron.
ELECTRON_SMOKE_KEEP_DATA 0 scripts/dev/smoke-electron-packaged.mjs Impostare su 1 per conservare la directory dei dati dello smoke test dopo l'esecuzione.
ELECTRON_SMOKE_STREAM_LOGS 0 scripts/dev/smoke-electron-packaged.mjs Impostare su 1 per trasmettere i log di Electron a stdout durante l'esecuzione.
ELECTRON_SMOKE_COLD_RESTART 0 scripts/dev/smoke-electron-packaged.mjs #7592: riavviare usando la stessa directory dei dati e verificare che al secondo avvio venga selezionato il driver SQLite nativo.
CLI_DEVIN_BIN (ricerca nel PATH) open-sse/executors/devin-cli.ts Sovrascrive il percorso del file binario della CLI Devin.

Pipeline di traduzione della documentazione

Utilizzata da scripts/i18n/run-translation.mjs (il comando npm run i18n:run). Tutte e cinque le variabili non sono impostate per impostazione predefinita: impostarle in .env solo sulle macchine che devono poter eseguire il traduttore della documentazione.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_TRANSLATION_API_URL (non impostato) scripts/i18n/run-translation.mjs URL di base compatibile con OpenAI per il backend di traduzione.
OMNIROUTE_TRANSLATION_API_KEY (non impostato) scripts/i18n/run-translation.mjs Token Bearer per il backend di traduzione (non viene mai registrato nei log).
OMNIROUTE_TRANSLATION_MODEL (non impostato) scripts/i18n/run-translation.mjs ID del modello, ad es. gpt-4o-mini o cx/gpt-5.4-mini.
OMNIROUTE_TRANSLATION_TIMEOUT_MS 60000 scripts/i18n/run-translation.mjs Timeout per richiesta in millisecondi.
OMNIROUTE_TRANSLATION_CONCURRENCY 4 scripts/i18n/run-translation.mjs Richieste di traduzione parallele durante l'elaborazione di più file/impostazioni locali.

27. Feed Radar (Self-Hosting)

Componente aggiuntivo facoltativo controllato dal flag di funzionalità RADAR_ENABLED (disattivato per impostazione predefinita — un flag di funzionalità attivabile tramite Impostazioni/DB, non una variabile d'ambiente; vedere docs/frameworks/RADAR.md). Le prime quattro variabili riportate di seguito sono sostituzioni facoltative per un feed self-hosted o derivato e per i flussi delle chiavi sostenitore. La quinta, RADAR_ADMIN_URL, è un collegamento separato, senza valore predefinito, al pannello operativo privato del proprietario. Vedere docs/frameworks/RADAR.md per la documentazione completa del modulo e la relativa sequenza end-to-end di attivazione e configurazione guidata.

Il lettore generico degli annunci Home/Changelog non è configurato tramite una variabile d'ambiente e non dipende dal flag di funzionalità RADAR_ENABLED. Legge esclusivamente tramite GET l'URL pubblico news.json del repository dichiarato in src/shared/utils/releaseNotes.ts; gli ID degli elementi ignorati rimangono nell'archiviazione locale del browser.

Variabile Valore predefinito File sorgente Descrizione
RADAR_FEED_URL https://radar.omniroute.online src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts URL di base condiviso dai feed, firmati separatamente, del catalogo, dei referral, delle offerte per i sostenitori e di Intel. Sostituirlo per utilizzare un servizio self-hosted o derivato.
RADAR_FEED_PUBKEY (chiave predefinita fissata) src/lib/radar/pinnedKeys.ts Chiave pubblica Ed25519 (SPKI DER in base64 o PEM) utilizzata per verificare le firme dei feed provenienti da un feed personalizzato.
RADAR_CONTRIBUTOR_CLAIM_URL https://radar.omniroute.online/auth/github src/lib/radar/links.ts URL aperto dal pulsante "Sono un collaboratore" della dashboard (flusso di richiesta della chiave sostenitore tramite GitHub OAuth).
RADAR_SUPPORTER_PLANS_URL https://radar.omniroute.online/planos src/lib/radar/links.ts URL aperto dal pulsante "Sostieni il progetto" della dashboard (pagina di pagamento/piani).
RADAR_ADMIN_URL (non impostato) src/lib/radar/links.ts Collegamento al pannello operativo privato riservato al proprietario. È richiesto HTTPS, tranne nel caso di un inoltro SSH loopback HTTP; i valori non impostati o non validi non creano alcuna voce di navigazione.

Verifica: variabili rimosse / inutilizzate

Le seguenti variabili erano presenti nelle versioni precedenti di .env.example, ma non hanno riferimenti in fase di esecuzione nella base di codice attuale. Sono state rimosse:

Variabile Motivo
STORAGE_DRIVER=sqlite Non viene mai letta da alcun file sorgente. SQLite è l'unico driver supportato, quindi non è necessaria alcuna selezione.
INSTANCE_NAME=omniroute Presente nella vecchia documentazione e nei vecchi template env, ma non utilizzata in fase di esecuzione. Potrebbe tornare in una futura funzionalità multi-istanza.
SQLITE_MAX_SIZE_MB=2048 Non è referenziata nel codice sorgente. Le dimensioni del database non sono limitate artificialmente.
SQLITE_CLEAN_LEGACY_FILES=true Non è referenziata nel codice sorgente. La pulizia dei file legacy è stata probabilmente rimossa.
CLI_ROO_BIN Non è registrata in src/shared/services/cliRuntime.ts.
CLI_KIMI_CODING_BIN Non è registrata in src/shared/services/cliRuntime.ts (Kimi Coding utilizza OAuth, non un binario CLI).
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET Non sono referenziate in alcun punto del codice sorgente.
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 Rimosse nella v3.8.0. Il runtime non legge più queste variabili env: le credenziali provengono dalla Dashboard, da data/provider-credentials.json o dal DB crittografato.
CURSOR_PROTOBUF_DEBUG Rimossa nella v3.8.0. L'esecutore Cursor utilizza CURSOR_DEBUG / CURSOR_STREAM_DEBUG (vedere §22).
CLI_COMPAT_KIRO Rimossa nella v3.8.0. Kiro è presente in CLI_COMPAT_OMITTED_PROVIDER_IDS, quindi la relativa opzione non ha alcun effetto.
QIANFAN_API_KEY Rimossa insieme ad altri stub inutilizzati delle chiavi API dei provider nella v3.8.0.

Correzioni dei valori predefiniti

Variabile Vecchio valore di .env.example Valore predefinito effettivo nel codice Correzione
APP_LOG_RETENTION_DAYS 90 7 Rimosso il valore fuorviante; 7 documentato come predefinito
CALL_LOG_RETENTION_DAYS 90 7 Rimosso il valore fuorviante; 7 documentato come predefinito

Rigenerazione della configurazione OpenCode (strumentazione ad hoc)

Utilizzate da scripts/ad-hoc/regen-opencode-config.ts per rigenerare un file opencode.json con valori limit.context e limit.output accurati, recuperati dall'istanza OmniRoute in esecuzione. Nessuna di queste variabili è necessaria per il normale funzionamento: lo script è esclusivamente uno strumento per sviluppatori.

Variabile Predefinito File sorgente Descrizione
OMNIROUTE_URL http://localhost:20128 scripts/ad-hoc/regen-opencode-config.ts URL di base dell'istanza OmniRoute da interrogare per /v1/models.
OMNIROUTE_KEY (non impostata) scripts/ad-hoc/regen-opencode-config.ts Chiave API per l'autenticazione all'endpoint OmniRoute /v1/models. Se non impostata, utilizza OPENCODE_API_KEY.
OPENCODE_API_KEY (non impostata) scripts/ad-hoc/regen-opencode-config.ts Chiave API in stile OpenCode (sk-...) scritta nel file opencode.json rigenerato. Se non impostata, utilizza OMNIROUTE_KEY.

Harness di valutazione offline della compressione (strumenti ad hoc)

Utilizzato da scripts/compression-eval/index.ts, la CLI per la valutazione offline della compressione. Non è necessario per il normale funzionamento — è destinato esclusivamente agli sviluppatori.

Variabile Predefinito File sorgente Descrizione
OMNIROUTE_EVAL_CREDENTIALS {} (vuoto) scripts/compression-eval/index.ts Credenziali JSON fornite dall'operatore per il provider utilizzato dalla CLI di valutazione offline della compressione (analizzate con JSON.parse). Lasciare non impostata per un'esecuzione di prova.

Sessioni browser VNC

Utilizzate da src/lib/vncSession/manifest.ts per configurare sessioni Chromium headless basate su Docker per i provider di automazione del browser. Sono tutte facoltative — i valori predefiniti sono riportati di seguito.

Variabile Predefinito File sorgente Descrizione
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Percorso del binario Docker utilizzato per avviare i container VNC.
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Immagine Docker per il container VNC Chromium.
OMNIROUTE_VNC_CHROMIUM_ARGS (flag integrate) src/lib/vncSession/manifest.ts Argomenti CLI aggiuntivi di Chromium passati al browser all'interno del container.
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Porta VNC all'interno del container.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Porta del Chrome DevTools Protocol all'interno del container.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Directory del profilo all'interno del container.
OMNIROUTE_VNC_PROFILE_DIR (non impostata) src/lib/vncSession/manifest.ts Directory sull'host per i profili persistenti del browser.
OMNIROUTE_VNC_IDLE_MS 600000 src/lib/vncSession/manifest.ts Timeout di inattività (ms) prima che una sessione VNC venga recuperata.
OMNIROUTE_VNC_MAX_MS 1800000 src/lib/vncSession/manifest.ts Durata massima della sessione (ms).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Numero massimo di sessioni VNC simultanee.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Timeout per la disponibilità del browser (ms).
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Timeout per il recupero/la pulizia (ms).
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Rete Docker dedicata a cui si connette il container (#12571), separata dal bridge predefinito.
VIBEPROXY_DATA_DIR (non impostata) open-sse/services/notionThreadSessions.ts Directory per la persistenza delle sessioni dei thread Notion.

Autenticazione dei servizi interni

Variabile Predefinito Descrizione
OMNIROUTE_INTERNAL_SERVICE_TOKEN Token inline per l'autenticazione da servizio a servizio del piano di gestione.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE Percorso di un file contenente il token del servizio interno (opzione preferita nei container; sovrascrive la variabile inline).

Statistiche del provider OpenRouter

Variabile Predefinito Descrizione
OPENROUTER_PROVIDER_STATS_ENABLED true Impostare su false per evitare il recupero delle statistiche per provider di OpenRouter per l'arricchimento del catalogo.
OPENROUTER_PROVIDER_STATS_TTL_MS 3600000 TTL della cache (ms) per le statistiche recuperate dei provider OpenRouter.

Binding Redis incorporato

Variabile Valore predefinito Descrizione
REDIS_BIND_HOST 127.0.0.1 Indirizzo di associazione per il servizio Redis integrato.
REDIS_PORT 6379 Porta per il servizio Redis integrato.
OMNIROUTE_REDIS_BIND_HOST Override specifico di OmniRoute per l'indirizzo di associazione del servizio Redis integrato.

24. Aggiunte della release v3.8.50

Queste impostazioni sono state introdotte dopo la precedente istantanea del contratto dell'ambiente.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS 2000 src/shared/middleware/chatBodyAdmission.ts Tempo massimo di attesa per uno slot di ammissione della chat ad alto carico prima di restituire un errore 503 ripetibile; una breve attesa limitata serializza i picchi degli agenti invece di restituire immediatamente un errore 503. 0 ripristina il rifiuto immediato.
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES 4194304 (4 MB) src/shared/middleware/chatBodyAdmission.ts Budget di byte in coda per l'attesa di ammissione: limita il totale dei byte dei body memorizzati nel buffer e sospesi a livello di processo, in modo che l'attesa non possa amplificare l'utilizzo dell'heap (#4380). Le attese che superano il budget ricevono immediatamente un errore 503 ripetibile.
OMNIROUTE_CHAT_VIRTUAL_TTL_MS 60000 (60 s) src/shared/middleware/chatBodyAdmission.ts Opzione deprecata e priva di effetto a partire da #10110: le corsie di ammissione per sessione sono state rimosse a favore di un unico budget a livello di processo. Accettata per compatibilità della configurazione; ignorata.
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS 64 src/shared/middleware/chatBodyAdmission.ts Opzione deprecata e priva di effetto a partire da #10110: le corsie di ammissione per sessione sono state rimosse a favore di un unico budget a livello di processo. Accettata per compatibilità della configurazione; ignorata.
OMNIROUTE_CHAT_VIRTUAL_LANES 0 (disattivato) open-sse/services/admission/runtime.ts Corsie virtuali adattive di ammissione a runtime (#9654): interruttore principale per il gate adattivo per tenant (sistema 2). Distinto dalle variabili deprecate delle corsie per connessione riportate sopra (TTL_MS / MAX_SESSIONS, prive di effetto a partire da #10110). Flag di funzionalità con lo stesso nome nella dashboard; la variabile di ambiente ha la precedenza sull'override della dashboard; richiede il riavvio.
OMNIROUTE_RUNNOW_TIMEOUT_MS 30000 src/app/api/jobs/[id]/run-now/route.ts Limita il tempo durante il quale una chiamata run-now attende un job in esecuzione prima di avviare l'esecuzione in coda.
ADOBE_FIREFLY_BROWSER_REFRESH abilitato open-sse/services/adobeFireflySession.ts Mantiene aggiornati lo stato IMS e lo stato di rischio del browser tramite sessioni Chrome CDP con ambito account; impostare 0 per disabilitare.
ADOBE_FIREFLY_SESSION_DISK abilitato open-sse/services/adobeFireflySession.ts Salva in modo persistente le sessioni Adobe riparate in DATA_DIR; impostare 0 per mantenere lo stato solo in memoria.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Intervallo minimo tra gli invii di generazione ad Adobe Firefly.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Periodo di pausa aggiuntivo dopo ogni terzo invio riuscito ad Adobe.
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Modalità realmente headless destinata esclusivamente al debug; Adobe colligo normalmente rifiuta la sessione di rischio risultante.
CHROME_PATH rilevamento automatico open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts Eseguibile assoluto opzionale di Chrome utilizzato dagli esecutori basati su browser quando il rilevamento automatico della piattaforma non è sufficiente.
TELEGRAM_BOT_TOKEN (non impostato) src/lib/telegram/config.ts Token di BotFather che abilita il webhook in ingresso e firma initData della Mini App.
TELEGRAM_WEBHOOK_SECRET (non impostato) src/lib/telegram/config.ts Segreto condiviso registrato tramite setWebhook e verificato rispetto all'header X-Telegram-Bot-Api-Secret-Token a ogni consegna del webhook. Obbligatorio per il percorso del webhook; se non impostato, le consegne del webhook vengono rifiutate con 503.
TELEGRAM_DEFAULT_MODEL auto/chat src/lib/telegram/chatProxy.ts Modello utilizzato per le risposte della chat di Telegram.
TELEGRAM_BOT_API_BASE https://api.telegram.org src/lib/telegram/config.ts Override dell'URL di base della Bot API per proxy o server Bot API self-hosted.
TELEGRAM_WEBHOOK_TIMEOUT_MS 60000 src/lib/telegram/config.ts Timeout in millisecondi per le chiamate in uscita alla Bot API.
OMNIROUTE_OPTIONAL_PACK_TAR 1 (abilitato) scripts/build/optionalPackStaging.mjs Impostare 0 per evitare la generazione degli archivi tar .tar.gz durante la preparazione dei pacchetti ML/browser opzionali per l'albero standalone di Electron (le directory dei pacchetti e optional-packs.index.json vengono comunque prodotti). Utilizzato dal workflow di release desktop per ridurre le dimensioni degli artefatti caricati.

ChatGPT Web (Codex)

Impostazioni predefinite globali per il browser headless e il tunnel degli strumenti in uscita. I valori di connessione impostati nella dashboard hanno la precedenza.

Variabile Valore predefinito File sorgente Descrizione
CHATGPT_WEB_CODEX_CHROME_PATH (rilevamento automatico) open-sse/executors/chatgpt-web-codex.ts Percorso esplicito di Chrome/Chromium per l'esecuzione con npm, systemd e PM2.
CHROME_PATH (rilevamento automatico) open-sse/executors/chatgpt-web-codex.ts Fallback condiviso per un percorso esplicito di Chrome/Chromium.
CHATGPT_WEB_CODEX_CDP_URL (non impostato) open-sse/executors/chatgpt-web-codex.ts Endpoint CDP interno; Docker utilizza il sidecar sulla porta 9223.
CDP_PROXY_TOKEN (non impostato) docker/chatgpt-web-codex-browser/cdp-proxy.mjs Se impostato, ogni richiesta al sidecar proxy CDP deve includere questo valore nell'header X-Omni-Cdp-Token (#13679). Se non è impostato, il proxy inoltra le richieste senza autenticazione: in tal caso, la protezione è garantita esclusivamente dall'isolamento della rete Compose chatgpt-web-codex-net. Generare con openssl rand -hex 32.
CHATGPT_WEB_CODEX_TUNNEL_ID (non impostato) open-sse/executors/chatgpt-web-codex.ts ID tunnel OpenAI globale per i cicli locali degli strumenti Codex.
CHATGPT_WEB_CODEX_RUNTIME_KEY (non impostato) open-sse/executors/chatgpt-web-codex.ts Runtime key globale del tunnel; non inserirla mai nei log.
CHATGPT_WEB_CODEX_CONNECTOR_NAME OmniRoute Codex v2 open-sse/executors/chatgpt-web-codex.ts Nome esatto del nuovo connettore personalizzato ChatGPT creato per il bridge MCP.
CODEX_CHATGPT_WEB_HOME <DATA_DIR>/chatgpt-web-codex open-sse/vendor/codex-chatgpt-web/config.ts Directory dedicata per lo stato del browser, del broker e del tunnel.
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS 0 open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts Se impostato su 1, acquisisce immagini diagnostiche del browser a ogni checkpoint.
CODEX_CHATGPT_WEB_LAUNCHER (non impostato) open-sse/vendor/codex-chatgpt-web/config.ts Percorso assoluto facoltativo a un file binario del launcher persistente.
CODEX_CHATGPT_WEB_BUN (rilevamento automatico) open-sse/vendor/codex-chatgpt-web/config.ts Percorso assoluto facoltativo al file binario del runtime Bun.
CODEX_WEB_GPT_BUN (non impostato) open-sse/vendor/codex-chatgpt-web/config.ts Fallback legacy per CODEX_CHATGPT_WEB_BUN; le nuove configurazioni utilizzano il nome canonico.

Bridge OmniConductor

Consumer SSE persistente che replica i task dell'hub OmniConductor nel TaskManager A2A locale (src/lib/conductor/). Funzionalità opzionale: il bridge si avvia solo quando CONDUCTOR_HUB_URL è impostata. Solo lato server: il token dell'hub non deve mai raggiungere il browser.

Variabile Valore predefinito File sorgente Descrizione
CONDUCTOR_HUB_URL (vuoto) src/lib/conductor/boot.ts URL di base dell'hub OmniConductor (ad es. http://127.0.0.1:7910). Non impostata = bridge disabilitato.
CONDUCTOR_HUB_TOKEN (vuoto) src/lib/conductor/boot.ts Credenziale dell'hub per il feed SSE: creare nell'hub un peer di tipo spokesperson (POST /v1/peers, amministratore).
CONDUCTOR_ORCHESTRATOR_TOKEN (vuoto) src/lib/conductor/hubProxy.ts Credenziale per la delega dei task in ingresso da A2A all'hub (POST /v1/tasks); se non impostata, utilizza CONDUCTOR_HUB_TOKEN.
CONDUCTOR_SPOKESPERSON_URL http://127.0.0.1:7920 src/lib/conductor/faroProxy.ts URL di base del servizio spokesperson (Faro) dietro il proxy della chat della dashboard (/api/conductor/ask).

Pianificazione consapevole delle quote

Utilizzata da open-sse/services/combo.ts e src/lib/quota/quotaScheduler.ts per i controlli del budget dei token prima della richiesta. Funzionalità opzionale: quando non è impostata, il comportamento di instradamento predefinito rimane invariato.

Variabile Valore predefinito File sorgente Descrizione
OMNIROUTE_QUOTA_AWARE_ROUTING 0 open-sse/services/combo.ts Quando è impostata su 1, ignora le connessioni il cui budget di token per finestra (rateLimitOverrides.tpm, tabella provider_quota_state) non è sufficiente a coprire il costo stimato della richiesta prima dell'invio. Adotta un comportamento fail-open quando non è configurato alcun budget.