Zum Inhalt springen
OmniRoute source

Environment Variables Reference (Deutsch)


Diese müssen vor dem ersten Start festgelegt werden. Ohne sie verweigert die Anwendung entweder den Start oder wird mit unsicheren Standardwerten ausgeführt.

Variable Erforderlich Standardwert Quelldatei Beschreibung
JWT_SECRET Ja (keiner) src/lib/auth Signiert/verifiziert alle Dashboard-Sitzungscookies (JWT). Mit openssl rand -base64 48 generieren.
API_KEY_SECRET Ja (keiner) src/lib/db/apiKeys.ts AES-Verschlüsselungsschlüssel für ruhende API-Schlüsselwerte in SQLite. Mit openssl rand -hex 32 generieren.
INITIAL_PASSWORD Ja CHANGEME Bootstrap-Skript Legt das anfängliche Passwort für das Admin-Dashboard fest (entspricht dem Standardwert in .env.example — absichtlich offensichtlich unsicher gehalten, um eine Änderung zu erzwingen). Vor der ersten Verwendung ändern. Nach der Anmeldung über Dashboard → Einstellungen → Sicherheit ändern.
OMNIROUTE_WS_BRIDGE_SECRET Ja (Produktion) (nicht gesetzt) src/app/api/internal/codex-responses-ws/route.ts Gemeinsames Geheimnis für die interne WebSocket-Bridge für Codex Responses. Authentifiziert Bridge-Anfragen zwischen dem Electron-/Browser-WS-Relay und OmniRoute. ⚠️ In der Produktion ERFORDERLICH — wenn es nicht gesetzt ist, werden alle WS-Bridge-Anfragen abgelehnt. Mit openssl rand -base64 32 generieren.
OMNIROUTE_SW_BUILD_ID Nein (Git-SHA) next.config.mjs, scripts/build/assembleStandalone.mjs Explizite ID zur Cache-Invalidierung des Service Workers für die PWA-Shell (#11779); steht in der Auflösungskette an erster Stelle.
SOURCE_VERSION Nein (nicht gesetzt) next.config.mjs, scripts/build/assembleStandalone.mjs Zweiter Wert in der Kette — wird von PaaS-Build-Systemen (z. B. im Heroku-Stil) auf den bereitgestellten Commit gesetzt.
NEXT_PUBLIC_SW_BUILD_ID Nein (abgeleitet) src/shared/components/PwaRegister.tsx Öffentlicher Wert zur Build-Zeit, den der Client zur Registrierung von /sw.js?v=… verwendet; wird aus den beiden obigen Werten und anschließend aus der Git-SHA abgeleitet.
OMNIROUTE_PEER_STAMP_TOKEN Nein (automatisch) (pro Start automatisch) src/server/authz/policies/management.ts Prozessspezifisches Geheimnis, das belegt, dass der vertrauenswürdige Peer-IP-Stempel vom eigenen HTTP-Server von OmniRoute (scripts/dev/peer-stamp.mjs) stammt. Die Authz-Middleware vertraut der Lokalität einer Anfrage (Loopback-/LAN-Beschränkung von LOCAL_ONLY-Routen) nur, wenn der Stempel dieses Token enthält. Wird bei jedem Start automatisch generiert — nicht setzen; nur bei Mehrprozesskonfigurationen fest vorgeben, die denselben Stempel verwenden müssen.
Terminal-Fenster
# Alle vier Geheimnisse auf einmal generieren:
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] Übertrage niemals .env-Dateien mit echten Geheimnissen in die Versionsverwaltung. .gitignore schließt .env bereits aus, überprüfe dies jedoch vor dem Pushen.


OmniRoute verwendet SQLite (über better-sqlite3) für die gesamte Persistenz. Diese Variablen steuern Speicherort, Verschlüsselung und Lebenszyklus der Daten.

Variable Standardwert Quelldatei Beschreibung
DATA_DIR ~/.omniroute/ src/lib/db/core.ts Stammverzeichnis für die SQLite-Datenbank, Sicherungen und Datendateien. Kann für Docker-Volumes oder benutzerdefinierte Pfade überschrieben werden.
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR (nicht gesetzt) src/lib/dataPaths.ts Ausweichoption für die DATA_DIR-Schutzprüfung bei Tests/Auswertungen (#10428). Tests und Node-Auswertungs-/Ausgabeprüfungen (-e/--eval/-p/--print, einschließlich der Formen --eval=/--print=) ohne DATA_DIR werden in ein temporäres Wegwerfverzeichnis umgeleitet, damit sie nicht die echte Datenbank des Betreibers öffnen können; auf 1 setzen, um wieder ausdrücklich das echte Verzeichnis zu verwenden.
OMNIROUTE_BUILD_SHA (nicht gesetzt) src/lib/monitoring/buildSha.ts Git-SHA des laufenden Artefakts. Wird durch npm run build:release eingetragen; kann in Containern injiziert werden, die ohne die Sentinel-Datei dist/BUILD_SHA ausgeliefert werden. Wird unter /api/monitoring/health als system.buildSha ausgegeben.
OMNIROUTE_RELEASE_REF origin/main scripts/build/buildProvenance.ts Referenz, anhand derer die Provenienzprüfung für gepackte Artefakte die Build-SHA überprüft (#10427).
OMNIROUTE_ALLOW_CANARY_BUILD (nicht gesetzt) scripts/build/buildProvenance.ts Auf 1 setzen, um das Packen eines Builds zuzulassen, dessen SHA nicht zum Release-Zweig gehört. Statt die Prüfung fehlschlagen zu lassen, wird er als absichtlicher Canary-Build erfasst (#10427).
OMNIROUTE_SMOKE_API_KEY (nicht gesetzt) scripts/ops/deploy-canary.mjs API-Schlüssel für die Smoke-Prüfung der Canary-Bereitstellung, der bei /v1/chat/completions als Authorization: Bearer gesendet wird. Wird nur vom Bereitstellungsskript verwendet (#10429), niemals vom Server. Steht nicht im Zusammenhang mit den OMNIROUTE_SMOKE_*-Variablen des optionalen CLI-Smoke-Testsystems (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS in tests/integration/upstream-cli-smoke.int.test.ts) — siehe CLI-Integrationen → Echte Smoke-Testreihe.
OMNIROUTE_BUILDING (nicht gesetzt) src/lib/buildPhase.ts Signal für die Build-Phase (#10060): Wird von scripts/build/build-next-isolated.mjs auf 1 gesetzt und von jedem gestarteten Build-Worker geerbt, sodass die Datenbankschicht einen wirkungslosen Stub zurückgibt, anstatt das native Add-on better-sqlite3 zu laden, das den Worker beim Beenden abbricht. Wird niemals für den laufenden Server gesetzt.
OMNIROUTE_SKIP_NATIVE_DEP_CHECK 0 scripts/check/check-native-deps.mjs Auf 1 setzen, um die optionale Prebuild-Prüfung nativer Abhängigkeiten für exotische, mitgelieferte Verzeichnisbäume zu überspringen. Dadurch kann eine fehlende Abhängigkeit nicht gebaut werden; nur verwenden, wenn native Abhängigkeiten außerhalb des regulären Prozesses bereitgestellt werden.
OMNIROUTE_DATA_DIR (nicht gesetzt) open-sse/executors/promptql/threadSticky.ts Fallback-Alias für DATA_DIR, der nur geprüft wird, wenn DATA_DIR nicht gesetzt ist. Wird verwendet, um den persistenten Thread-Sticky-Sitzungscache des PromptQL-Executors (<dir>/promptql-thread-sessions.json) zu finden; wenn keine der beiden Variablen gesetzt ist, verbleibt der Cache ausschließlich im Arbeitsspeicher und wird nicht über Neustarts hinweg persistiert.
OMNIROUTE_PLUGINS_DIR (nicht gesetzt) src/lib/plugins/scanner.ts Verzeichnis, das der Laufzeit-Plugin-Scanner liest und in dem der Plugin-Manager Installationen vornimmt; überschreibt den vom Home-Verzeichnis abgeleiteten Standardwert (#11827). In Docker/K8s sollte es auf den per Bind-Mount eingebundenen Plugin-Verzeichnisbaum verweisen, statt HOME zu verschieben, nur um den Scanpfad zu ändern (HOME steuert auch jedes andere auf das Home-Verzeichnis bezogene Verhalten). Nicht gesetzt = ~/.omniroute/plugins oder /tmp/.omniroute/plugins, wenn der Prozess überhaupt kein Home-Verzeichnis exportiert — wodurch die bisherige unbemerkte Nichterkennung vermieden wird. Das aufgelöste Verzeichnis wird beim Start einmalig als scanner.dir_resolved zusammen mit der maßgeblichen Eingabe protokolliert. Nur serverseitig: Plugins für CLI-Befehle verwenden weiterhin ihr eigenes OMNIROUTE_PLUGIN_PATH (Abschnitt 9).
STORAGE_ENCRYPTION_KEY (leer = deaktiviert) src/lib/db/encryption.ts AES-Schlüssel für die vollständige Verschlüsselung der SQLite-Datenbank im Ruhezustand. Mit openssl rand -hex 32 generieren.
STORAGE_ENCRYPTION_KEY_VERSION v1 scripts/build/bootstrap-env.mjs, electron/main.js Versionsbezeichnung für den Verschlüsselungsschlüssel. Bei einer Schlüsselrotation erhöhen, um die Entschlüsselung alter Sicherungen zu unterstützen.
DISABLE_SQLITE_AUTO_BACKUP false src/lib/db/backup.ts Bei true werden routinemäßige bzw. vor Schreibvorgängen erstellte Sicherungen der SQLite-Datei übersprungen (Speichern/Löschen von models.dev-Preisen, Schreiben von Einstellungen). Manuelle Sicherungen und Sicherungen vor Wiederherstellungen werden weiterhin ausgeführt. Dies deaktiviert nicht den obligatorischen dauerhaften Sicherheitssnapshot des Migrations-Runners oder den Schutz vor Massenmigrationen für eine vorhandene persistente Datenbank. Nicht manuelle Sicherungen werden auf höchstens einmal pro 60 Minuten begrenzt. Unter Einstellungen → Speicher im Dashboard kann die routinemäßige automatische Sicherung unabhängig davon deaktiviert werden.
OMNIROUTE_CRYPT_KEY (nicht gesetzt) src/lib/db/encryption.ts Veralteter Alias für STORAGE_ENCRYPTION_KEY. Wird als Ausweichoption akzeptiert, wenn die primäre Variable nicht vorhanden ist.
OMNIROUTE_API_KEY_BASE64 (nicht gesetzt) src/lib/db/encryption.ts Veralteter Alias (Base64-kodierte Form), der als Ausweichoption akzeptiert wird. Wird vor der Verwendung automatisch dekodiert.
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS (nicht gesetzt) src/lib/db/core.ts Überschreibt das Intervall (ms) der regelmäßigen SQLite-Integritätsprüfung. Wenn nicht gesetzt, werden die Standardwerte aus NODE_ENV abgeleitet.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS (entfernt) src/lib/db/walMaintenance.ts Entfernt. Ein regelmäßiges wal_checkpoint(TRUNCATE) im laufenden Betrieb kann die gemeinsam genutzte wal-index-Zuordnung ungültig machen und den Prozess mit SIGBUS (#13973) zum Absturz bringen; daher existiert der Scheduler nicht mehr. Die Variable ist wirkungslos: Ein positiver Wert protokolliert einmalig eine Veraltungswarnung, während 0 oder ein nicht gesetzter Wert keine Meldung erzeugt. Das WAL wird durch PASSIVE-Checkpoints (siehe unten) verwaltet und durch den Checkpoint beim Herunterfahren gekürzt.
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS 300000 (5 Min.) src/lib/db/walMaintenance.ts Überschreibt das Intervall (ms) für häufige wal_checkpoint(PASSIVE)-Aufrufe. Hält ausstehende WAL-Frames klein, sodass Checkpoints schnell bleiben und die Größe der WAL-Datei zwischen den Kürzungen beim Herunterfahren begrenzt bleibt. 0 deaktiviert dies.
OMNIROUTE_WAL_GUARD_MAX_MB 256 src/lib/db/walMaintenance.ts Wenn die WAL-Datei bei einem PASSIVE-Durchlauf diese Größe überschreitet, wird wal_checkpoint(RESTART) ausgeführt, sodass das WAL von vorn beginnt, ohne den zugeordneten wal-index neu zu schreiben. Checkpoints im Kürzungsmodus während des laufenden Betriebs wurden entfernt (siehe Zeile OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS).
OMNIROUTE_PRESSURE_SELF_RESTART false open-sse/utils/resourcePressure.ts Auf 1/true/yes/on setzen, damit der Prozess beendet wird, nachdem eine kritische Ressourcenbelastung für die Dauer von OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS angehalten hat. Dadurch kann ein Supervisor (systemd Restart=always, Docker-Neustartrichtlinie) einen sauberen Prozess neu starten, anstatt unbegrenzt 503-Antworten auszuliefern.
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS 120000 (2 Min.) open-sse/utils/resourcePressure.ts Gibt an, wie lange eine kritische Belastung anhalten muss, bevor die Beendigung zum Selbstneustart ausgelöst wird.
OMNIROUTE_SQLJS_WASM_PATH (automatische Erkennung) src/lib/db/adapters/sqljsAdapter.ts Expliziter Pfad (absolut oder relativ zum aktuellen Arbeitsverzeichnis) zu sql-wasm.wasm, wenn der WASM-Ausweichadapter von sql.js verwendet wird. Wenn nicht gesetzt, erfolgt die automatische Erkennung anhand von Paketabhängigkeiten und möglichen Verzeichnisstrukturen.
OMNIROUTE_BATCH_RETENTION_DAYS 30 src/lib/db/cleanup.ts Anzahl der Tage, für die Checkpoints, referenzierte Eingabe-/Ausgabe-/Fehlerdateien und der Datensatz eines abgeschlossenen (erfolgreich/fehlgeschlagen/abgebrochen/abgelaufen) Batch-API-Auftrags durch den automatischen Bereinigungsdurchlauf vor dem Löschen aufbewahrt werden. Wird erst wirksam, wenn BATCH_AND_FILE_AUTO_CLEANUP_ENABLED aktiviert ist, und entspricht dem Aufbewahrungszeitraum von OpenAI für Ausgaben der Batch API. Hat keine Auswirkungen auf die vom Betreiber ausgelöste Route DELETE /api/v1/batches/delete-completed, die absichtlich weiterhin bedingungslos arbeitet (ohne Altersfilter).
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED false src/lib/db/cleanup.ts Bei true darf der automatische Bereinigungsdurchlauf abgeschlossene Batch-API-Aufträge (und deren Checkpoints) nach Ablauf von OMNIROUTE_BATCH_RETENTION_DAYS löschen und den BLOB-Inhalt hochgeladener Dateien nach deren jeweiligem expires_at leeren. Standardmäßig deaktiviert: Jede vorhandene Installation behält diese Daten genau wie zuvor, bis ein Betreiber die Funktion aktiviert. Auch ein im Dashboard bearbeitbares Funktions-Flag – siehe docs/reference/FEATURE_FLAGS.md → Laufzeit.
OMNIROUTE_SKIP_DB_HEALTHCHECK 0 src/lib/db/core.ts, src/lib/db/healthCheck.ts Auf 1 setzen, um die DB-Zustandsprüfung beim Start vollständig zu überspringen. Nützlich für kurzlebige Aufgaben und Integrationstests.
OMNIROUTE_FORCE_DB_HEALTHCHECK 0 src/lib/db/core.ts Auf 1 setzen, um die Schleife für die DB-Zustandsprüfung zu erzwingen, selbst wenn sie normalerweise übersprungen würde (z. B. bei kurzlebigen Aufgaben).
OMNIROUTE_SKIP_POSTINSTALL 0 scripts/postinstall.mjs Auf 1 setzen, um das Aufwärmen der nativen Laufzeit während npm install zu überspringen. Nützlich bei CI-/Headless-Installationen, bei denen sqlite bereits gebaut wurde.
OMNIROUTE_MIGRATIONS_DIR (automatisch erkannt) src/lib/db/migrationRunner.ts Das vom Migrations-Runner gescannte Verzeichnis überschreiben. Nützlich, wenn gebündelte Migrationen in benutzerdefinierten Builds ausgeliefert werden.
OMNIROUTE_EXTRA_MIGRATIONS_DIRS (nicht gesetzt) src/lib/db/migrationRunner/extraDirs.ts Zusätzliche Migrationsverzeichnisse als namespace=dir-Einträge, getrennt durch das plattformspezifische Pfadtrennzeichen (z. B. ee=/opt/app/enterprise/db/migrations). Dort gefundene Dateien werden als <namespace>-<number> erfasst, sodass eine Distribution mit eigenen Migrationen niemals mit den numerischen Slots des Upstream-Projekts kollidiert. Ein fehlerhafter Eintrag, ein ungültiger Namespace oder ein fehlendes Verzeichnis führt beim Start zu einem Fehler, statt das Schema stillschweigend zu überspringen.
OMNIROUTE_MAX_PENDING_MIGRATIONS 50 src/lib/db/migrationRunner.ts Sicherheitsschwellenwert für massenhaft ausstehende Migrationen (#3416). Der Start wird abgebrochen, wenn bei einer vorhandenen DB mehr Migrationen als dieser Wert ausstehen (schützt vor einer gelöschten Tracking-Tabelle). Zum Wiederherstellen einer älteren Sicherung erhöhen; auf 0 setzen, um die Prüfung zu deaktivieren.
OMNIROUTE_INSTALL_UPGRADE_WORKDIR (<repo>/.install-upgrade) scripts/check/check-install-upgrade.mjs Arbeitsverzeichnis für das Release-Gate check:install-upgrade. Es benötigt ungefähr 12 GB (zwei Installationsverzeichnisbäume mit je ~3 GB plus Tarball) und darf daher nicht auf einem kleinen tmpfs ausgeführt werden — auf dem selbst gehosteten Runner ist /tmp ein RAM-basiertes tmpfs mit 12 GB, das durch das Gate vollständig belegt wurde, wodurch das Paket abgeschnitten wurde.
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS (Standardwert im Code) src/lib/spend/batchWriter.ts Leerungsintervall (ms) für den gebündelten Ausgaben-/Kostenschreiber. Niedrigere Werte reduzieren die Zusammenfassung von Schreibvorgängen; höhere Werte verringern DB-Konflikte.
OMNIROUTE_SPEND_MAX_BUFFER_SIZE (Standardwert im Code) src/lib/spend/batchWriter.ts Maximale Anzahl gepufferter Ausgabeneinträge vor einer erzwungenen Leerung. Bei Bereitstellungen mit hoher QPS erhöhen; verringern, wenn ein begrenzter Speicherverbrauch wichtiger ist.
OMNIROUTE_PROXY_FETCH_DEBUG (nicht gesetzt) open-sse/utils/proxyFetch.ts Auf "true" setzen, um [ProxyFetch]-Debug-Protokolle im Vercel-Relay-Pfad auszugeben. Standardmäßig deaktiviert, um die Offenlegung von Routing-Hinweisen zu vermeiden.
PROXY_LOG_INCLUDE_IPS false src/lib/proxyLogger.ts Auf "true" oder "1" setzen, um Client-/Egress-IP-Adressen und das Kontopräfix in die ausführliche [ProxyEgress]-Prozessprotokollzeile aufzunehmen. Standardmäßig DEAKTIVIERT, damit das Prozessprotokoll keine IP-Adressen oder das Kontopräfix offenlegt.
OMNIROUTE_DEBUG (nicht gesetzt) bin/cli/commands/quota.mjs Auf 1 setzen, um über die CLI-Kontingentbefehle für jede Anfrage Zeitdiagnosen ([omniroute] GET <path> completed in Nms) auf stderr auszugeben.
OMNIROUTE_HEALTHCHECK_PATH (automatisch) scripts/dev/healthcheck.mjs Expliziter Pfad, der von der Container-Zustandsprüfung abgefragt wird. Ist die Variable nicht gesetzt, leitet die Prüfung ihn aus OMNIROUTE_BASE_PATH ab; durch das Setzen wird wieder der umfassende Überwachungsendpunkt verwendet.
OMNIROUTE_DEBUG_COMPLETION (nicht gesetzt) bin/cli/commands/completion.mjs Auf einen beliebigen nicht leeren Wert setzen, um [omniroute completion]-Diagnosen für die Cache-Pfade der CLI-Shell-Vervollständigung (Lesen/Aktualisieren/Schreiben) auszugeben. Standardmäßig deaktiviert — Fehler dieser Caches werden stillschweigend ignoriert, damit ein fehlender/beschädigter Cache niemals die Tab-Vervollständigung beeinträchtigt.
BATCH_RETRY_DURATION_MS 86400000 (24h) open-sse/services/batchProcessor.ts Maximales Wiederholungszeitfenster für einzelne Batch-Elemente (ms). Elemente, die diese Dauer überschreiten, werden als fehlgeschlagen markiert.
BATCH_BACKOFF_BASE_MS 5000 open-sse/services/batchProcessor.ts Basisverzögerung (ms) für exponentielles Backoff bei Wiederholungsversuchen für Batch-Elemente.
BATCH_BACKOFF_MAX_MS 3600000 (1 Std.) open-sse/services/batchProcessor.ts Obergrenze (ms) für exponentielles Backoff zwischen Wiederholungsversuchen für Batch-Elemente.
BATCH_MAX_CONCURRENT 1 open-sse/services/batchProcessor.ts Maximale Anzahl gleichzeitig verarbeiteter Batches. Erhöhen Sie den Wert, um den Durchsatz zu steigern; halten Sie ihn niedrig, um eine Häufung von Ratenbegrenzungen zu vermeiden.

[!IMPORTANT] Vor der Änderung einer bestehenden persistenten Datenbank veröffentlicht der Migrations-Runner einen vollständigen, inhaltsadressierten Snapshot unter DATA_DIR/db_backups/. Für die Veröffentlichung ist ein Dateisystem erforderlich, das nicht überschreibende Hardlinks innerhalb desselben Dateisystems sowie eine dauerhafte Dateisynchronisierung unterstützt. POSIX-Hosts erfordern außerdem eine Verzeichnissynchronisierung; unter Windows kann Node Verzeichnis-Handles ablehnen, daher schreibt OmniRoute die veröffentlichte Datei auf den Datenträger und behandelt die Synchronisierung des Verzeichniseintrags nach dem Best-Effort-Prinzip. Wenn das eingebundene DATA_DIR diese Garantien nicht bieten kann, wird der Startvorgang vor der Anwendung einer Migration sicher abgebrochen. Verschieben Sie DATA_DIR auf ein Volume, das diese Operationen unterstützt; verwenden Sie nicht DISABLE_SQLITE_AUTO_BACKUP, um die Migrationssicherheit zu umgehen.

Szenario Konfiguration
Lokale Entwicklung Behalten Sie alle Standardwerte bei. Die DB befindet sich unter ~/.omniroute/omniroute.db.
Docker DATA_DIR=/data + binden Sie unter /data ein Volume ein.
Im Ruhezustand verschlüsselt Legen Sie STORAGE_ENCRYPTION_KEY fest + sichern Sie den Schlüssel! Sein Verlust = Datenverlust.
CI/Tests DATA_DIR=/tmp/omniroute-test — flüchtig, keine Verschlüsselung erforderlich.

Variable Standardwert Quelldatei Beschreibung
PORT 20128 src/lib/runtime/ports.ts Primärer Port sowohl für die Dashboard-Benutzeroberfläche als auch für API-Endpunkte (Einzelportmodus).
OMNIROUTE_BASE_PATH (leer = Stammverzeichnis) next.config.mjs, scripts/docker/ensure-docker-base-path.mjs URL-Unterpfad zur Bereitstellung von OmniRoute hinter einem Reverse-Proxy (legt den Next.js-basePath fest; Authentifizierungsweiterleitungen berücksichtigen den basePath). Beispiel: /omniroute. In Docker wird der Wert während docker build fest integriert (ARG OMNIROUTE_BASE_PATH); vorgefertigte Stammverzeichnis-Images können beim Containerstart einmalig einen anderen Laufzeitwert anwenden, bevor Next.js startet. Setzen Sie NEXT_PUBLIC_BASE_URL auf den öffentlichen Ursprung einschließlich desselben Unterpfads.
NEXT_PUBLIC_OMNIROUTE_BASE_PATH (leer = Stammverzeichnis) src/shared/hooks/useDisplayBaseUrl.ts Im Browser sichtbares Abbild von OMNIROUTE_BASE_PATH, das zur Build-Zeit eingebettet wird, damit die Endpunktanzeige des Dashboards https://host/omniroute/v1 statt https://host/v1 anzeigt. Fällt auf OMNIROUTE_BASE_PATH zurück, wenn die Variable nicht gesetzt ist. Nach einer Änderung ist ein erneuter Build erforderlich (der Next-basePath wird zur Build-Zeit festgelegt).
DASHBOARD_ALLOW_EMBED (nicht gesetzt = nie einbettbar) next.config.mjs, scripts/build/dashboardEmbed.mjs Opt-in-Einbettung der HTML-Seiten per iframe. Wenn nicht gesetzt, liefert jede Route frame-ancestors 'none' + X-Frame-Options: DENY. Auf vscode setzen, um die Seiten (Dashboard, Anmeldung, Dokumentation, Landingpage) mit frame-ancestors 'self' vscode-webview: und ohne X-Frame-Options bereitzustellen, sodass der VS Code Simple Browser sie darstellen kann (OmniCopilots Modus dashboardOpen: "editor"). Die API-Oberfläche (/api, /v1, /v1beta, /a2a, /healthz, Aliasse auf Stammebene) behält in beiden Fällen die strikten Header bei. Nur vscode wird erkannt – 1/true aktivieren die Funktion nicht. Build-Zeit: Nach einer Änderung ist ein erneuter Build erforderlich (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode für Images; das Setzen bei einer vorgefertigten Installation hat keine Auswirkung).
API_PORT (nicht gesetzt) src/lib/runtime/ports.ts Wenn gesetzt, wird die /v1/*-Proxy-API über diesen separaten Port bereitgestellt.
API_HOST 0.0.0.0 src/lib/runtime/ports.ts Bind-Adresse für den API-Port.
DASHBOARD_PORT (nicht gesetzt) src/lib/runtime/ports.ts Wenn gesetzt, wird die Dashboard-Benutzeroberfläche über diesen separaten Port bereitgestellt.
OMNI_MAX_CONCURRENT_CONNECTIONS 0 (deaktiviert) src/sse/utils/backpressure.ts Begrenzt die Anzahl gleichzeitig laufender Chat-Verbindungen; Anfragen über dem Grenzwert erhalten 503 mit Retry-After. Eine positive Ganzzahl aktiviert die Schutzfunktion; nicht gesetzt/0 deaktiviert sie.
OMNIROUTE_INSTANCE_ID (nicht gesetzt) src/shared/resilience/peerRouting.ts Stabile, eindeutige ID für dieses Gateway beim Verketten von OmniRoute-Instanzen. Ermöglicht eingehende Prüfungen auf Peer-Schleifen. Zulässige Zeichen: Buchstaben, Ziffern, ., _, : und -; maximal 64 Zeichen.
OMNIROUTE_PEER_URLS (nicht gesetzt) src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts Kommagetrennte OmniRoute-Basis-URLs, die X-OmniRoute-Peer-Trace empfangen dürfen. Nur ausdrücklich in der Positivliste enthaltene Upstream-URLs erhalten Peer-Metadaten; alle anderen Anbieter bleiben unverändert.
OMNIROUTE_PEER_MAX_HOPS 4 src/shared/resilience/peerRouting.ts Maximale Anzahl zuvor besuchter OmniRoute-Instanzen, die bei einer verketteten Anfrage akzeptiert werden (1-32). Wiederholte Instanzen oder ein ausgeschöpftes Budget führen zu HTTP 508 Loop Detected.
PROD_DASHBOARD_PORT 20130 docker-compose.prod.yml Auf dem Host veröffentlichter Port für das Dashboard im Docker-Produktionsmodus.
PROD_API_PORT 20131 docker-compose.prod.yml Auf dem Host veröffentlichter Port für die API im Docker-Produktionsmodus.
OMNIROUTE_PORT (nicht gesetzt) src/lib/runtime/ports.ts Hat bei der Ausführung innerhalb von Electron oder anderen Wrappern Vorrang vor PORT.
LIVE_WS_PORT 20129 src/server/ws/liveServer.ts Port für den Echtzeit-WebSocket-Server zur Live-Überwachung.
LIVE_WS_HOST 127.0.0.1 src/server/ws/liveServer.ts Bind-Adresse für den Live-WebSocket-Server. Auf 0.0.0.0 setzen, um ihn im LAN bereitzustellen (zusätzlich LIVE_WS_ALLOWED_ORIGINS konfigurieren).
LIVE_WS_ALLOWED_ORIGINS (nicht gesetzt) src/server/ws/liveServer.ts Kommagetrennte zusätzliche Ursprünge, die einen Live-WebSocket öffnen dürfen. Loopback-Dashboard-Ursprünge sind standardmäßig bereits zulässig.
LIVE_WS_ALLOWED_HOSTS (nicht gesetzt) src/server/ws/liveServerAllowList.ts Kommagetrennte zusätzliche Hostnamen, die für Live-WebSocket-Ursprünge zulässig sind. Im Gegensatz zu LIVE_WS_ALLOWED_ORIGINS (vollständige Ursprungs-URLs) wird nur der Host-Teil abgeglichen — nützlich für LAN-/Tailscale-Konfigurationen.
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL (nicht gesetzt) src/hooks/useLiveDashboard.ts Öffentliche URL für den WebSocket des Live-Dashboards (browserseitig). Festlegen, wenn dem WS-Server ein Reverse-Proxy oder Cloudflare Tunnel vorgeschaltet ist (z. B. wss://ws.my-ai.com/live-ws); der Browser stellt dann dorthin statt zu ws://hostname:20132 eine Verbindung her. Der Pfadanteil wird außerdem als WebSocket-Upgrade-Pfad verwendet (Standard: /live-ws).
OMNIROUTE_ENABLE_LIVE_WS true src/server/ws/liveServer.ts und scripts/start-ws-server.mjs Auf 0 oder false setzen, um den Echtzeit-WebSocket-Server zu deaktivieren (standardmäßig aktiviert und an Loopback gebunden). CI-/Harness-Umschalter, der das eigenständige Live-WebSocket-Hilfsskript deaktiviert.
RELAY_IP_PER_MINUTE 30 src/app/api/v1/relay/chat/completions/route.ts Relay-Ratenbegrenzung pro (Token, IP) in Anfragen/Minute. Im Arbeitsspeicher und pro Instanz. 0 oder ein negativer Wert deaktiviert die IP-dimensionsbezogene Begrenzung (das tokenbezogene DB-Limit gilt weiterhin).
NODE_ENV production Next.js-Kern Steuert die Ausführlichkeit der Protokollierung, das Caching, die Offenlegung von Fehlerdetails und Next.js-Optimierungen.
OMNIROUTE_USE_TURBOPACK 1 (Turbopack — Standardwert im Code) package.json / Next.js 16 Turbopack ist der Standard-Bundler für npm run dev und npm run build (2–3× schnellere Builds, durch Benchmarks bestätigt). Auf 0 setzen, um unter Windows, bei Inkompatibilitäten mit nativen Bindings bzw. der Bundler-Kompatibilität oder auf Rechnern mit begrenztem RAM auf webpack zurückzugreifen — Turbopack-Produktions-Builds dieser Next.js-Versionsreihe (16.2.x) erreichen bei großen Modulgraphen bekanntermaßen deutlich höhere Speicherspitzen als webpack (die Turbopack-Speicherfreigabekorrektur von Next 16.3 ist noch nicht stabil); der webpack-Fallback erreicht wesentlich niedrigere Spitzenwerte. Siehe #6409.
OMNIROUTE_SKIP_DB_HEALTHCHECK (nicht gesetzt) src/lib/db/core.ts / src/lib/db/healthCheck.ts Auf 1 setzen, um die SQLite-Integritätsprüfung beim Start zu überspringen. Nützlich für einen schnelleren Start bei großen Datenbanken.
NOTIFY_SOCKET (nicht gesetzt) systemd (sd_notify-Protokoll) Wird von systemd gesetzt, wenn der Prozess unter einer Service-Unit mit sd_notify-Integration ausgeführt wird; OmniRoute liest die Variable (siehe OMNIROUTE_DISABLE_SD_NOTIFY), um READY-/WATCHDOG-Benachrichtigungen zu senden. Darf niemals vom Benutzer gesetzt werden.
OMNIROUTE_DISABLE_SD_NOTIFY (nicht gesetzt) scripts/dev/systemd-notify.mjs Auf 1 setzen, um systemd sd_notify (Type=notify / WatchdogSec=) selbst bei Ausführung unter einer systemd-Unit zu deaktivieren. Außerhalb von systemd führt der Benachrichtiger unabhängig davon keine Aktion aus.
CREDENTIAL_HEALTH_CHECK_INTERVAL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts Intervall (ms) für den Hintergrund-Scheduler zur Zustandsprüfung von Anmeldedaten. Minimum: 10000 (10 s).
CREDENTIAL_HEALTH_CACHE_TTL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts TTL (ms) für den zwischengespeicherten Zustand der Anmeldedaten.
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK false src/lib/credentialHealth/scheduler.ts Auf 1 oder true setzen, um die regelmäßige Prüfung von Anbieter-Verbindungen im Hintergrund zu deaktivieren. Suchanbieter (SEARCH_VALIDATOR_CONFIGS in src/lib/providers/validation/searchProviders.ts, z. B. tavily-search) sind von diesem Durchlauf stets ausgeschlossen — ihre „Validierung“ ist eine echte, kostenpflichtige Upstream-Abfrage, weshalb ihre Funktionsfähigkeit nie zeitgesteuert geprüft wird (#9970).
HOST 0.0.0.0 scripts/dev/run-next.mjs Bind-Adresse für den Next.js-Entwicklungs-/Startserver. Überschreibt den Standardwert 0.0.0.0, wenn gesetzt.
HOSTNAME 127.0.0.1 scripts/dev/run-next-playwright.mjs Bind-Adresse, die vom Playwright-Runner beim Start von Next.js verwendet wird. Standardmäßig 127.0.0.1 für hermetische Tests. Nicht für omniroute serve verwenden — stattdessen OMNIROUTE_SERVER_HOST verwenden (POSIX-Shells setzen HOSTNAME automatisch auf den Rechnernamen; .env kann diesen Wert nicht überschreiben).
OMNIROUTE_SERVER_HOST 0.0.0.0 bin/cli/commands/serve.mjs Bind-Adresse für omniroute serve. Vermeidet einen Konflikt mit der POSIX-Shell-Variable HOSTNAME (wird von bash/zsh immer auf den Rechnernamen gesetzt). Fällt auf 0.0.0.0 zurück, wenn nicht gesetzt. (#6194)
┌────────────────────────── Einzelner Port (Standard) ────────────────────────┐
│ PORT=20128 │
│ → Dashboard: http://localhost:20128 │
│ → API: http://localhost:20128/v1/chat/completions │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────── Getrennte Ports ────────────────────────────────┐
│ 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 │
│ Anwendungsfall: API im LAN bereitstellen und Dashboard auf localhost │
│ beschränken. │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────── Docker-Produktion ─────────────────────────────────┐
│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │
│ → Ordnet in docker-compose.prod.yml Container-Ports den Host-Ports zu. │
└─────────────────────────────────────────────────────────────────────────────┘

Variable Standardwert Quelldatei Beschreibung
MACHINE_ID_SALT endpoint-proxy-salt src/lib/auth Salt, das mit Hardware-IDs kombiniert wird, um einen Maschinen-Fingerabdruck zu erstellen. Für jede Bereitstellung ändern, um eine Isolierung zu gewährleisten.
OMNIROUTE_CLI_SALT (nicht gesetzt = zufälliges Salt pro Installation, gespeichert unter <DATA_DIR>/cli-token-salt.json) src/lib/machineToken.ts HMAC-Salt zur Ableitung des lokalen CLI-Authentifizierungstokens. Das Festlegen dieses Werts rotiert alle CLI-Tokens auf der Maschine und hat immer Vorrang vor dem gespeicherten Salt. Siehe docs/security/CLI_TOKEN.md.
AUTH_COOKIE_SECURE false src/lib/auth Setzt das Secure-Flag für Sitzungscookies. Muss true sein, wenn der Betrieb hinter HTTPS erfolgt.
REQUIRE_API_KEY false API-Middleware Wenn true, müssen alle /v1/*-Proxy-Anfragen einen gültigen API-Schlüssel enthalten. Dieses Flag schützt GET /v1/models nicht; dieser Endpunkt folgt stattdessen der Dashboard-Anmeldekonfiguration (requireAuthForModels) – daher bedeutet eine 401 von /v1/models NICHT, dass Inferenz geschützt ist. Siehe docs/security/INFERENCE_AUTH_POSTURE.md (#13695).
ALLOW_API_KEY_REVEAL false src/shared/constants/featureFlagDefinitions.ts Ermöglicht die Anzeige vollständiger API-Schlüsselwerte in der Dashboard-Benutzeroberfläche. Über die Dashboard-Feature-Flags konfigurierbar; stellt auf gemeinsam genutzten Instanzen ein Sicherheitsrisiko dar.
NO_LOG_API_KEY_IDS (leer) src/lib/compliance/index.ts Durch Kommas getrennte API-Schlüssel-IDs, für die die Anfrageprotokollierung umgangen wird (DSGVO-Konformität).
DEFAULT_RATE_LIMIT_PER_DAY (nicht gesetzt = unbegrenzt) src/shared/utils/apiKeyPolicy.ts Ersatzweises tägliches Anfragebudget für API-Schlüssel, deren Spalte rate_limits null ist. Nicht gesetzt oder leer: keine implizite Begrenzung (#2289, #11017). 0 bedeutet ebenfalls unbegrenzt. Eine positive Ganzzahl N aktiviert N/Tag, 5N/Woche und 20N/Monat. Fehlerhafte, nicht leere Werte greifen auf die bisherigen Zeitfenster von 1000/Tag, 5000/Woche und 20000/Monat zurück.
MAX_BODY_SIZE_BYTES 10485760 (10 MB) src/shared/middleware/bodySizeGuard.ts Maximal zulässige Größe des Anfragekörpers. Nutzdaten, die diesen Grenzwert überschreiten, werden abgelehnt.
OMNIROUTE_CHAT_LARGE_BODY_BYTES 262144 (256 KB) src/shared/middleware/chatBodyAdmission.ts Tatsächliche Anfragekörper ab diesem Schwellenwert beanspruchen vor dem JSON-Parsing die atomare, prozesslokale Zulassungs-Lease für ressourcenintensive Anfragen (BYTE-Pfad, einschließlich POST /v1/responses). Derselbe Healthy-Headroom-Ausweg aus #10437 wie bei strukturell umfangreichen Anfragen; weiterhin durch OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110 begrenzt, damit #7849 nicht erneut auftritt.
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES 52428800 (50 MB) src/shared/middleware/chatBodyAdmission.ts Harte Obergrenze für Chat-Routen, die anhand der während der begrenzten Aufnahme gelesenen Bytes durchgesetzt wird, einschließlich Anfragen mit fehlendem, ungültigem oder falschem Content-Length; bei Überschreitung wird 413 zurückgegeben.
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (nicht gesetzt — keine Begrenzung der Anfrageanzahl) src/shared/middleware/chatBodyAdmission.ts #503-Fan-out: Diese veraltete Obergrenze für die AnfrageANZAHL greift jetzt nur, wenn sie explizit festgelegt wurde. Bleibt sie nicht gesetzt (Standardeinstellung), wird die Zulassung umfangreicher Chat-Anfragen stattdessen durch OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES gesteuert — ein automatisch abgeleitetes BYTE-Budget, das anhand der tatsächlichen Speicherobergrenze des Prozesses in einem Prozess (einem V8-Heap) bemessen wird. Zwei sich überschneidende /v1/responses-Anfragen mit jeweils ~750.000 Token führen bei ~12-GiB-Heaps zu Abbrüchen (#7849) — eine Warnung zum Speicherbudget, keine harte produktseitige Obergrenze von 2. Ein ordnungsgemäß arbeitender Prozess (Heap unterhalb des Abweisungsverhältnisses) KANN über OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM mehr gleichzeitige lange /v1/responses zulassen. Mehrere Dutzend lange SSE-Clients (40–50) hängen vom Heap + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110 ab, nicht von einem „Maximum von 2“. Dies blind zu erhöhen, um „den Host auszunutzen“, führt #7849 erneut ein. Vervielfachen Sie Heaps mit N unabhängigen DATA_DIRs (#11024); verwenden Sie niemals replicas>1 für eine einzelne SQLite-Datei.
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES (automatisch abgeleitet) src/shared/middleware/admissionBudget.ts #503-Fan-out: Überschreibung für das automatisch abgeleitete Byte-Budget zur Aufnahme (25 % der strengeren V8-/cgroup-Speicherobergrenze, geteilt durch die 8-fache vorübergehende Verstärkung). Abgeleitete und explizite Werte werden auf 8 MiB–2 GiB begrenzt. Ein Body, der größer als das effektive Budget ist, schlägt sofort mit 413 body_exceeds_budget fehl; Konkurrenz zwischen einzeln verarbeitbaren Bodys führt weiterhin zum wiederholbaren Fehler 503. 40–50 gleichzeitige lange SSE-Clients hängen von diesem Budget + Heap ab, nicht von einem harten „Maximum von 2“. Prüfen Sie vor der Abstimmung chatAdmission.maxInflightBytes / budgetSource / pressureSeverity unter /api/monitoring/health.
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO 0.75 src/shared/middleware/chatBodyAdmission.ts Abweisungsverhältnis bei Heap-Druck (heapUsed / heap_size_limit) für die Zulassung umfangreicher BYTE- und STRUCTURE-Anfragen (#10183, #10268, #10437). Eine weitere gleichzeitige umfangreiche Anfrage über OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT hinaus wird nur mit dem wiederholbaren Fehler 503 abgewiesen, wenn der Heap EBENFALLS dieses Verhältnis erreicht oder überschritten hat; bei einem ordnungsgemäß arbeitenden Heap wird sie stattdessen über den Spielraum für einen gesunden Heap zugelassen.
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (Standardwert 1) src/shared/middleware/chatBodyAdmission.ts Begrenzte zusätzliche Kapazität für den schnellen Pfad bei gesundem Heap (#10437), sowohl für STRUCTURE als auch BYTE (admitChatRequest, einschließlich Bodys ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Ohne diese Begrenzung würde jede Anfrage bei hoher Auslastung, aber gesundem Heap die Zulassungssteuerung ohne Obergrenze umgehen. Sobald so viele gleichzeitige Leases über den Pfad für einen gesunden Heap aktiv sind, greifen weitere Anfragen bei hoher Auslastung auf DENSELBEN Pfad mit begrenzter Wartezeit/Abweisung zurück, der auch bei tatsächlichem Heap-Druck verwendet wird. 0 deaktiviert die Umgehung vollständig.
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT 200 src/shared/middleware/chatBodyAdmission.ts Anzahl der Nachrichten, ab der eine Chat-Anfrage als umfangreich eingestuft wird, selbst wenn ihr Body unter dem Byte-Schwellenwert liegt.
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT 64 src/shared/middleware/chatBodyAdmission.ts Anzahl der Tools, ab der eine Chat-Anfrage als umfangreich eingestuft wird, selbst wenn ihr Body unter dem Byte-Schwellenwert liegt.
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS 32000 src/shared/middleware/chatBodyAdmission.ts Konservative, auf der String-Größe basierende Token-Schätzung, anhand derer eine Anfrage als umfangreich eingestuft wird; dies ist ein Näherungswert für die Zulassungskosten und keine Tokenisierung für die Abrechnung durch den Anbieter.
OMNIROUTE_CHAT_HARD_MAX_MESSAGES 0 (deaktiviert) src/shared/middleware/chatBodyAdmission.ts Optionale, explizit zu aktivierende Obergrenze für den Chatverlauf. Standardmäßig deaktiviert: Eine Nachrichtenanzahl ist eine Bereitstellungsrichtlinie, keine universelle Eigenschaft einer Anfrage, und eine Begrenzung an dieser Stelle weist Unterhaltungen mit einem endgültigen 413 ab, bevor sie durch die Komprimierungspipeline verarbeitbar gemacht werden können. Das Heap-Wachstum wird durch OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT und die Abweisung bei Heap-Druck begrenzt. Legen Sie bei speicherbeschränkten Bereitstellungen, die eine harte Obergrenze benötigen, einen positiven Wert fest; bei Überschreitung wird dann ein strukturierter 413-Fehler zurückgegeben, der auf die erforderliche Komprimierung hinweist.
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES 67108864 (64 MB) open-sse/handlers/chatCore/nonStreamingResponseBody.ts Harte Obergrenze für eine nicht streamende Upstream-Antwort, die vollständig im Speicher gepuffert wird. Bei Überschreitung wird der Upstream-Reader abgebrochen und die Anfrage schlägt sofort fehl, statt einen unbegrenzt wachsenden String zu erzeugen, bis der Heap erschöpft ist.
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES 768 open-sse/handlers/chatCore/responseHeaders.ts Maximale Anzahl an Wire-Bytes, die aus vorgelagerten Response-Headern weitergeleitet werden. Wenn das Budget überschritten wird, werden Header mit niedrigerer Priorität (z. B. benutzerdefinierte x-codex-*, x-oai-request-id) verworfen, um innerhalb der üblichen Header-Grenzwerte von Reverse-Proxys zu bleiben. Legen Sie einen höheren Wert fest, um mehr vorgelagerte Metadaten weiterzuleiten, was jedoch die Größe der Response-Header erhöht.
CORS_ORIGIN (nicht gesetzt) src/server/cors/origins.ts Veraltete CORS-Zulassungsliste für einen einzelnen Ursprung. Bevorzugen Sie für neue Bereitstellungen CORS_ALLOWED_ORIGINS. CORS ist nur für ursprungsübergreifende Browser-API-Clients vorgesehen; authentifizierte Schreibvorgänge im Dashboard verwenden stattdessen Anfragen gleichen Ursprungs sowie sitzungsgebundenen CSRF-Schutz.
CORS_ALLOWED_ORIGINS (nicht gesetzt) src/server/cors/origins.ts Kommagetrennte CORS-Zulassungsliste. Es wird kein Platzhalter gesendet, sofern nicht ausdrücklich CORS_ALLOW_ALL=true konfiguriert ist.
CORS_ALLOW_ALL false src/server/cors/origins.ts Nur für die Entwicklung vorgesehene Ausweichoption, um jeden Browser-Origin zurückzugeben. Nicht in gemeinsam genutzten oder Produktionsbereitstellungen aktivieren.
OUTBOUND_SSRF_GUARD_ENABLED true src/shared/network/outboundUrlGuard.ts Blockiert Provider-Aufrufe, die auf private, Loopback- oder Link-Local-IP-Bereiche abzielen. Nur in isolierten Testumgebungen deaktivieren.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS false src/shared/network/outboundUrlGuard.ts Erlaubt Provider-URLs, die auf private/lokale Netzwerke verweisen (localhost, 192.168.x.x, 10.x.x.x usw.). ERFORDERLICH für selbst gehostete Provider (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Bei false lehnt das Dashboard die Validierung lokaler URLs ab.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS true src/shared/network/outboundUrlGuard.ts Erlaubt das Hinzufügen/Validieren von Providern unter lokalen/privaten Adressen (127.0.0.1, localhost, LAN, private Bereiche) – beschränkt auf den Provider-Validierungspfad. Standardwert true (Local-first); auf false setzen, um eine strikte Blockierung aller nicht öffentlichen Adressen durchzusetzen. Cloud-Metadaten-Endpunkte (169.254.169.254, metadata.google.internal) bleiben unabhängig davon blockiert. (#5066)
AUDIO_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/audioProviderNodes.ts Ermöglicht den /v1/audio/*-Routen (Transkriptionen, Sprachausgabe, Übersetzungen), einen außerhalb von localhost gehosteten OpenAI-kompatiblen Provider-Knoten zu verwenden. Standardmäßig deaktiviert – das Weiterleiten von Audio an einen entfernten Host ändert die Egress-Identität und muss eine ausdrückliche Entscheidung des Betreibers sein. Loopback-/private Knoten (localhost, 127.0.0.1, 172.16-31.x) sind stets zulässig und nicht betroffen. (#3963)
RERANK_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/rerankProviderNodes.ts Ermöglicht POST /v1/rerank (und dem Loopback-Rerank-Schritt der Memory Engine), einen außerhalb von localhost gehosteten OpenAI-kompatiblen Provider-Knoten zu verwenden – einen LAN-Rechner oder Tailscale-Peer, auf dem TEI, Infinity, vLLM usw. ausgeführt wird. Standardmäßig deaktiviert – das Routing zu einem entfernten Host ändert die Egress-Identität und muss eine ausdrückliche Entscheidung des Betreibers sein. Loopback-Knoten (localhost, 127.0.0.1, 172.16-31.x) sind stets zulässig und nicht betroffen. Entfernte Knoten müssen außerdem die Richtlinie für ausgehende Provider-URLs erfüllen (OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS / OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS); Cloud-Metadaten-Hosts werden niemals als Routing-Ziel verwendet.
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Wenn OIDC aktiviert ist, wird die Passwortanmeldung deaktiviert, sodass sich Benutzer nur über OIDC Single Sign-On authentifizieren können. Der einfache Alias OIDC_DISABLE_PASSWORD_LOGIN wird ebenfalls akzeptiert; das Dashboard-Feature-Flag mit demselben Schlüssel hat Vorrang. (#10889)
OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Einfacher Alias von OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889).
Terminal-Fenster
# Mindestanforderungen an die Produktionssicherheit:
AUTH_COOKIE_SECURE=true # Erfordert HTTPS
REQUIRE_API_KEY=true # Alle Proxy-Aufrufe authentifizieren
ALLOW_API_KEY_REVEAL=false # Schlüssel niemals in der Benutzeroberfläche offenlegen
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880 # Begrenzung auf 5 MB

5. Eingabebereinigung & Schutz personenbezogener Daten

Abschnitt betitelt „5. Eingabebereinigung & Schutz personenbezogener Daten“

OmniRoute bietet einen zweistufigen Schutz: eingangsseitige Prüfung auf Prompt-Injection und ausgangsseitige Entfernung personenbezogener Daten.

⚠️ Einschränkungen: Diese Schutzmechanismen basieren auf heuristischen Erkennungen nach bestem Bemühen und stellen weder eine vollständige Firewall gegen Prompt-Injection noch ein umfassendes DLP-System für personenbezogene Daten dar. Sie können falsch positive Ergebnisse (harmlose Persona-/RPG-Prompts werden markiert) und falsch negative Ergebnisse (Leetspeak, Abstände, nicht englischsprachige Muster) erzeugen. Für die Einhaltung regulatorischer Anforderungen reichen sie allein nicht aus. Passen Sie die Modi an und testen Sie sie mit Ihrem Datenverkehr, bevor Sie sich darauf verlassen.

Variable Standardwert Quelldatei Beschreibung
INPUT_SANITIZER_ENABLED true src/middleware/promptInjectionGuard.ts Aktiviert die Prüfung eingehender Nachrichten auf Prompt-Injection-Muster.
INPUT_SANITIZER_MODE warn src/middleware/promptInjectionGuard.ts Injection-Richtlinie: warn = nur protokollieren, block = Anfrage mit Statuscode 400 ablehnen. Der veraltete Modus redact entfernt keinen Injection-Text; verwenden Sie PII_REDACTION_ENABLED, um personenbezogene Daten in Anfragen umzuschreiben.
INJECTION_GUARD_MODE (nicht gesetzt) src/middleware/promptInjectionGuard.ts Veralteter Alias für INPUT_SANITIZER_MODE — identisches Verhalten.
INPUT_SANITIZER_BLOCK_THRESHOLD high src/shared/utils/injectionSeverity.ts Mindestschweregrad, der bei MODE=block abgelehnt wird: high (Standardwert), medium oder low. Muster mit mittlerem Schweregrad werden nur beobachtet, sofern der Schwellenwert nicht herabgesetzt wird.
INJECTION_GUARD_BLOCK_THRESHOLD (nicht gesetzt) src/shared/utils/injectionSeverity.ts Veralteter Alias für INPUT_SANITIZER_BLOCK_THRESHOLD — identisches Verhalten.
PII_REDACTION_ENABLED false src/lib/guardrails/piiMasker.ts Wenn true, werden personenbezogene Daten in eingehenden Anfragen unkenntlich gemacht (unabhängig vom Injection-Modus).
CREDENTIAL_REDACTION_ENABLED false src/lib/guardrails/credentialMasker.ts Macht bekannte Muster für API-Schlüssel und geheime Token in Anfrage-/Antwort-Payloads unkenntlich. Muss explizit aktiviert werden; entspricht dem Verhalten von PII_REDACTION_ENABLED.

Ausgangsseitig: Bereinigung personenbezogener Daten

Abschnitt betitelt „Ausgangsseitig: Bereinigung personenbezogener Daten“
Variable Standardwert Quelldatei Beschreibung
PII_RESPONSE_SANITIZATION false src/lib/piiSanitizer.ts Prüft LLM-Antworten auf offengelegte personenbezogene Daten, bevor sie an den Client zurückgegeben werden.
PII_RESPONSE_SANITIZATION_MODE redact src/lib/piiSanitizer.ts redact = personenbezogene Daten maskieren, warn = nur protokollieren, block = gesamte Antwort verwerfen.

Kontextbereinigung für tokenisierte VS-Code-Routen

Abschnitt betitelt „Kontextbereinigung für tokenisierte VS-Code-Routen“
Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_VSCODE_SANITIZE_CONTEXT 1 src/app/api/v1/vscode/contextSanitizer.ts Entfernt impliziten Kontext des aktiven Editors (editorContext, activeEditor, currentFile, selection, openTabs …) aus Anfragen an /v1/vscode/[token]/* und macht den Inhalt explizit angehängter sensibler Dateien unkenntlich. Standardmäßig sicher; zum Deaktivieren auf 0 setzen.
Szenario Konfiguration
Unternehmens-Compliance INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (Injection-Versuche werden blockiert und personenbezogene Daten in Anfragen/Antworten unkenntlich gemacht; die Modi sind voneinander unabhängig)
Nur Überwachung INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — protokolliert, blockiert aber niemals
Persönliche Nutzung Alles deaktiviert lassen — kein zusätzlicher Aufwand

Variable Standardwert Quelldatei Beschreibung
TOOL_POLICY_MODE disabled src/lib/toolPolicy.ts Steuert den Zugriff des LLM auf Tools/Funktionsaufrufe. allowlist = nur aufgeführte Tools, denylist = alle außer den aufgeführten, disabled = keine Einschränkungen.
OMNIROUTE_PAYLOAD_RULES_PATH ./config/payloadRules.json open-sse/services/payloadRules.ts Pfad zur JSON-Datei mit Regeln zur Payload-Manipulation (Upstream-Anpassungen pro Modell/Protokoll).
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS 5000 open-sse/services/payloadRules.ts Intervall (ms) für das Hot-Reloading der Datei mit den Payload-Regeln. Minimum: 1000.
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS false open-sse/services/model.ts Optionale Aktivierung: Leitet reine claude-*-Modell-IDs von Claude-Code-Clients über das OAuth-Konto von Claude Code weiter, anstatt ein Anbieterpräfix zu verlangen. Explizite Anbieterpräfixe haben weiterhin Vorrang. Auch über einen Schalter auf der Claude-Anbieterseite im Dashboard konfigurierbar.
COMBO_CONCURRENCY_PER_MODEL 3 open-sse/services/comboConfig.ts Modellbezogene Nebenläufigkeitsgrenze für Round-Robin-Kombinationen (#9100). Der Semaphore für Round-Robin-Kombinationen war fest auf 3 gleichzeitige Anfragen pro Modell begrenzt und konnte nicht überschrieben werden, wodurch Datenverkehr mit höherer Nebenläufigkeit hinter dieser Grenze serialisiert wurde. Wird auf >= 1 validiert und auf <= 32 begrenzt.
DISABLE_CONTEXT_WINDOW_CHECKS false open-sse/handlers/chatCore.ts Gefährliche optionale Einstellung, die OmniRoutes lokale Prüfung des Kontextfensters bzw. der maximalen Eingabe-Token für direkte Einzelmodellanfragen überspringt. Upstream-Anbieter erzwingen weiterhin ihre tatsächlichen Grenzen; die Prompt-Komprimierung und die modellspezifische Begrenzung der Ausgabe-Token bleiben aktiv. Die effektive Prioritätsreihenfolge lautet: Überschreibung durch die Feature-Flags-Datenbank > Umgebungsvariable > Standardwert; kein Neustart erforderlich.
OMNIROUTE_SELF_HOSTED_PROVIDERS (nicht gesetzt) open-sse/services/selfHostedEntry.ts Direkt eingebettetes YAML-Dokument providers: (RIC-738, D4). Wenn es gesetzt ist (mit oder ohne strategy:-Block), wird /v1/chat/completions an den einheitlichen, selbst gehosteten OpenAI-kompatiblen Einstieg statt an die Cloud-Pipeline weitergeleitet. Nicht gesetzt (Standardwert): Die Route wird direkt an die bestehende Cloud-Pipeline durchgereicht. Siehe docs/routing/SELF_HOSTED_OPENAI_ENTRY.md.
OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE (nicht gesetzt) open-sse/services/selfHostedEntry.ts Pfad zu einer YAML-Datei, die dasselbe providers:-Dokument wie OMNIROUTE_SELF_HOSTED_PROVIDERS enthält, für Bereitstellungen, die eine Datei gegenüber einer direkt eingebetteten Umgebungsvariable bevorzugen. Beide Varianten aktivieren den selbst gehosteten Einstieg.
OMNIROUTE_SELF_HOSTED_API_KEY (nicht gesetzt — offene Route) open-sse/services/selfHostedEntry.ts Optionaler gemeinsamer API-Schlüssel für den einheitlichen, selbst gehosteten Einstieg (D5-Grundgerüst, für das schlüsselbezogene Kontingentsystem reserviert). Wenn er gesetzt ist, müssen Anfragen Authorization: Bearer &lt;key&gt; enthalten. Nicht gesetzt: Die Route ist offen, entsprechend dem bestehenden Muster für selbst gehostete lokale Anbieter (Bereitstellung über Loopback/vertrauenswürdiges Netzwerk).
OMNIROUTE_SELF_HOSTED_STRATEGY (nicht gesetzt) open-sse/services/routingStrategies.ts Direkt eingebettetes YAML-Dokument strategy: für die deterministische Routing-Engine (M2/RIC-740, D3) — Blacklist/Whitelist, Cooldown-Unterbrecher, Kostenpriorität, Latenzberücksichtigung und Fallback-Kette. Überschreibt schlüsselbezogen einen direkt eingebetteten strategy:-Block innerhalb von OMNIROUTE_SELF_HOSTED_PROVIDERS. Siehe docs/routing/DETERMINISTIC_ROUTING.md.
OMNIROUTE_SELF_HOSTED_STRATEGY_FILE (nicht gesetzt) open-sse/services/routingStrategies.ts Pfad zu einer YAML-Datei, die dasselbe strategy:-Dokument wie OMNIROUTE_SELF_HOSTED_STRATEGY enthält, für Bereitstellungen, die eine Datei gegenüber einer direkt eingebetteten Umgebungsvariable bevorzugen.
OMNIROUTE_DISABLE_CONVERSATION_TRACKING (nicht gesetzt) open-sse/services/conversationTracker.ts Auf 1 setzen, um die Erfassung des Gesprächsverlaufs zu beenden. resolveConversationId() gibt ein nicht nachverfolgtes Ergebnis zurück, bevor SQLite gelesen oder der Nachrichtenverlauf analysiert wird; auch vom Client bereitgestellte Sitzungs-IDs werden berücksichtigt. Die Verarbeitung von Routing-Sitzungen bleibt unverändert, und vorhandene Datensätze werden nicht gelöscht. Für Bereitstellungen, die die Gesprächsansicht des Dashboards nicht verwenden und verhindern möchten, dass die Tabelle mit Gesprächsrunden weiter wächst.

Variable Standardwert Quelldatei Beschreibung
BASE_URL http://localhost:20128 src/lib/cloudSync.ts Serverseitige URL, über die interne Synchronisierungsaufträge /api/sync/cloud aufrufen. Behalten Sie diese auch dann als Loopback-/Container-URL bei, wenn die App öffentlich über einen Proxy bereitgestellt wird.
CLOUD_URL (leer) src/lib/cloudSync.ts URL des Cloud-Relay-Endpunkts (Premiumfunktion).
CLOUD_SYNC_TIMEOUT_MS 12000 src/lib/cloudSync.ts HTTP-Zeitüberschreitung für Cloud-Synchronisierungsanfragen.
OMNIROUTE_BUILD_PROFILE full Webpack-Build-Konfiguration Buildzeitprofil (auf minimal setzen, um privilegierte Module physisch aus dem Bundle auszuschließen).
OMNIROUTE_STANDALONE_DIR .build/-Standalone-Ausgabe scripts/build/colocate-standalone.mjs Buildzeitüberschreibung für das Standalone-Ausgabeverzeichnis, das vom nachgelagerten Kolokationsschritt verwendet wird. Keine Laufzeiteinstellung.
OMNIROUTE_CLOUD_SYNC_SECRET (leer) src/lib/cloudSync.ts Gemeinsames Geheimnis zur Überprüfung der HMAC-SHA256-Signatur von Cloud-Sync-Antworten.
OMNIROUTE_CLOUD_SYNC_SECRETS false src/lib/cloudSync.ts Auf true setzen, damit der Cloud-Sync-Endpunkt lokale Zugangsdaten überschreiben darf. Der Standardwert ist false.
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE false src/lib/cloudSync.ts Auf true setzen, um eine unsignierte Cloud-Sync-Antwort abzulehnen, wenn kein lokales Geheimnis konfiguriert ist (#13679). Eine vorhandene Signatur wird immer überprüft — und immer abgelehnt, wenn OMNIROUTE_CLOUD_SYNC_SECRET nicht gesetzt ist — unabhängig von diesem Flag. Ab v3.9 wird die Durchsetzung standardmäßig aktiviert.
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP false src/app/api/providers/zed/import/route.ts Auf true setzen, um ohne Benutzerbestätigung auf das einstufige „Alles importieren“-Verhalten von v3.8.5 zurückzugreifen.
NEXT_PUBLIC_BASE_URL http://localhost:20128 OAuth, Dashboard, Synchronisierung Öffentlich zugängliche URL für OAuth-redirect_uri, Dashboard-Links und generierte öffentliche URLs. Setzen Sie diese auf die stabile öffentliche URL, wenn OAuth-Rückrufe oder generierte Browser-Links einen kanonischen Reverse-Proxy-Host verwenden müssen.
NEXT_PUBLIC_CLOUD_URL (leer) Clientseitig Clientseitige Entsprechung von CLOUD_URL.
NEXT_PUBLIC_APP_URL (nicht gesetzt) src/shared/services/cloudSyncScheduler.ts Veralteter Fallback für NEXT_PUBLIC_BASE_URL.
NEXT_PUBLIC_PORT (nicht gesetzt — fällt auf PORT zurück) src/shared/hooks/useDisplayBaseUrl.ts Clientseitiger Fallback-Port für Anzeige-URLs, wenn kein Ursprung bekannt ist (SSR/Tests); wird vor PORT gelesen.
OMNIROUTE_PUBLIC_BASE_URL (nicht gesetzt) Resolver für öffentlichen Ursprung, Bild-URLs Browserseitiger OmniRoute-Ursprung mit höchster Priorität, der für die Generierung öffentlicher URLs und die Validierung des Browserursprungs außerhalb des Dashboards verwendet wird. Legen Sie diesen Wert fest, wenn OpenWebUI oder ein anderes Relay OmniRoute über eine interne URL erreicht, der Browser des Benutzers generierte Medien jedoch von einem LAN-, Tunnel- oder öffentlichen Ursprung abrufen muss. Fügen Sie /v1 nicht ein.
OMNIROUTE_PROVIDER_MANIFEST_URL (nicht gesetzt) open-sse/config/providerPluginManifestUrl.ts Absolute URL des Provider-Plugin-Manifests, die Sidecar-Clients bekannt gegeben wird. Wenn nicht gesetzt, leitet OmniRoute /api/v1/provider-plugin-manifest aus dem Anfrageursprung oder HOST/PORT ab.
OMNIROUTE_PUBLIC_PROTOCOL http open-sse/config/providerPluginManifestUrl.ts Protokoll, das beim Ableiten der URL des Provider-Plugin-Manifests aus HOST/PORT ohne Anfrageursprung verwendet wird. Setzen Sie es hinter einem öffentlichen Proxy mit TLS-Terminierung auf https, wenn keine explizite OMNIROUTE_PROVIDER_MANIFEST_URL festgelegt ist.
OMNIROUTE_TRUST_PROXY (nicht gesetzt) src/server/origin/publicOrigin.ts Optionaler Vertrauensmodus für weitergeleitete Header des öffentlichen Ursprungs. Nicht gesetzt = Forwarded / X-Forwarded-* bei Sicherheitsentscheidungen nicht vertrauen. true / loopback vertraut weitergeleitetem Host/Protokoll nur von einem per Token gekennzeichneten Loopback-Proxy. private / lan vertraut zusätzlich Proxy-Peers im privaten LAN. Bevorzugen Sie in der Produktion ein explizites NEXT_PUBLIC_BASE_URL.
KIE_CALLBACK_URL (nicht gesetzt) open-sse/utils/kieTask.ts Öffentliche Callback-URL für asynchrone kie.ai-Aufträge. Überschreibung mit höchster Priorität vor OMNIROUTE_KIE_CALLBACK_URL und OMNIROUTE_PUBLIC_URL.
OMNIROUTE_KIE_CALLBACK_URL (nicht gesetzt) open-sse/utils/kieTask.ts Alternative Schreibweise von KIE_CALLBACK_URL. Wird als Fallback verwendet, wenn die primäre Variable nicht gesetzt ist.
OMNIROUTE_PUBLIC_URL (nicht gesetzt) open-sse/utils/kieTask.ts Öffentlicher Ursprung, der zum Zusammensetzen asynchroner Callback-URLs verwendet wird. Fallback mit niedrigster Priorität für kie.ai-Callbacks; wird außerdem als generische öffentliche URL für andere Relays verwendet.
OMNIROUTE_CROF_USAGE_URL https://crof.ai/usage_api/ open-sse/services/usage.ts CrofAI-Endpunkt zur Kontingentabfrage, der von der Seite „Nutzung“ verwendet wird. Kann für Relays/Test-Fixtures überschrieben werden.
OMNIROUTE_OPENCODE_QUOTA_URL https://opencode.ai/zen/go/v1/usage open-sse/services/opencodeQuotaFetcher.ts Offizieller, per API-Schlüssel authentifizierter OpenCode-Go-Endpunkt zur Nutzungsabfrage, der von der Seite „Nutzung“ verwendet wird. Kann für Relays/Test-Fixtures überschrieben werden.
OPENCODE_SYNTHESIZE_CLI_HEADERS true open-sse/executors/opencode.ts Synthetisiert OpenCode-CLI-Identitätsheader (User-Agent, x-opencode-client/project, Anfrage-/Sitzungs-UUIDs) bei opencode-go/zen-Upstream-Anfragen, wenn der Client sie nicht gesendet hat, damit Cloudflare sie beim VPS-Egress akzeptiert (#6210/#5997). Seit #10571 standardmäßig aktiviert; mit false/0/no/off deaktivierbar.
OPENCODE_USER_AGENT opencode/1.18.31 open-sse/utils/opencodeHeaders.ts Standardmäßiger User-Agent, der verwendet wird, wenn OPENCODE_SYNTHESIZE_CLI_HEADERS aktiviert und keine providerspezifische Überschreibung über <PROVIDER>_USER_AGENT festgelegt ist. Wird nur auf opencode-Executors angewendet. Bei einer schlüssellosen Anfrage, die vom Upstream eingeschränkt wird, wird ein konfigurierter Wert, der nicht opencode/<version >= 1.17> enthält, durch diesen Standardwert ersetzt, anstatt abgelehnt zu werden.
OPENCODE_CLIENT desktop open-sse/executors/opencode.ts Wert für den synthetisierten x-opencode-client-Header, wenn OPENCODE_SYNTHESIZE_CLI_HEADERS aktiviert ist.
OPENCODE_PROJECT global open-sse/executors/opencode.ts Wert für den synthetisierten x-opencode-project-Header, wenn OPENCODE_SYNTHESIZE_CLI_HEADERS aktiviert ist.
OPENCODE_FREE_TIER_REQUEST_CONTRACT (nicht gesetzt) open-sse/executors/opencodeFreeTierContract.ts Auf off setzen, damit der Body schlüsselloser OpenCode-Anfragen nicht mehr angepasst wird (Streaming-Flag und Werkzeugliste). Header werden weiterhin angewendet. Wird bei jeder Anfrage gelesen, sodass eine Änderung sofort wirksam wird.
OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS (nicht gesetzt) open-sse/executors/opencodeFreeTierContract.ts Kommagetrennte Werkzeugnamen, die in einer schlüssellosen OpenCode-Anfrage ohne Werkzeuge deklariert werden, wenn für dieses Modell noch keine beobachtet wurden. Bei einem leeren Wert wird auf einen einzelnen Platzhalter zurückgegriffen, den das Modell nicht aufrufen soll. Höchstens 32 Einträge, [A-Za-z_][A-Za-z0-9_-]{0,63}; ungültige Einträge werden ignoriert.
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL https://ollama.com/settings open-sse/services/usage.ts URL der Ollama-Cloud-Einstellungen, die zum Auslesen des Kontingents verwendet wird. Für Relays/Test-Fixtures überschreiben.
OLLAMA_USAGE_COOKIE (nicht gesetzt) open-sse/services/usage.ts Ollama-Cloud-Cookie __Secure-session, der zum Auslesen des Kontingents von der Einstellungsseite verwendet wird. Vertraulich; wenn mehrere Konten konfiguriert sind, sollte das verbindungsspezifische Dashboard-Feld bevorzugt werden.
OLLAMA_CLOUD_USAGE_COOKIE (nicht gesetzt) open-sse/services/usage.ts Alternative Umgebungsvariable für das Ollama-Cloud-Cookie __Secure-session. Vertraulich; wenn mehrere Konten konfiguriert sind, sollte das verbindungsspezifische Dashboard-Feld bevorzugt werden.
OMNIROUTE_OLLAMA_USAGE_COOKIE (nicht gesetzt) open-sse/services/usage.ts Alternative Umgebungsvariable für das Ollama-Cloud-Cookie __Secure-session, die vor den kürzeren Aliasnamen verwendet wird. Vertraulich; wenn mehrere Konten konfiguriert sind, sollte das verbindungsspezifische Dashboard-Feld bevorzugt werden.
OMNIROUTE_CODEWHISPERER_BASE_URL https://codewhisperer.us-east-1.amazonaws.com open-sse/services/usage.ts Endpunkt für Nutzungslimits von CodeWhisperer (AWS Kiro). Für Relays/Test-Fixtures überschreiben.

[!IMPORTANT] Bei der Bereitstellung hinter einem Reverse-Proxy (nginx, Caddy) muss NEXT_PUBLIC_BASE_URL auf Ihre stabile öffentliche URL gesetzt werden (z. B. https://omniroute.example.com), wenn OAuth-Callbacks oder generierte öffentliche Links diesen Hostnamen verwenden müssen. Andernfalls können OAuth-Callbacks fehlschlagen, weil die redirect_uri nicht übereinstimmt, und generierte öffentliche Links können auf den internen Container-Ursprung verweisen.

Behalten Sie BASE_URL als interne Loopback-/Container-URL für Server-zu-Server-Aufgaben bei. Verwenden Sie für interne Self-Fetches mit Anmeldedaten weder einen Browser-Origin noch einen öffentlichen Hostnamen.

Authentifizierte Schreibvorgänge im Dashboard erfordern keine statische öffentliche Basis-URL: Das Dashboard sendet unsichere Same-Origin-Anfragen mit einem sitzungsgebundenen CSRF-Token. OmniRoute zentralisiert weiterhin die Validierung des öffentlichen Ursprungs für Browser-Integrationen außerhalb des Dashboards: Explizite Umgebungsvariablen für öffentliche URLs werden zuerst als vertrauenswürdig eingestuft; unverarbeitete Forwarded- bzw. X-Forwarded-*-Header werden ignoriert, sofern OMNIROUTE_TRUST_PROXY nicht aktiviert ist und der unmittelbar vorgeschaltete Proxy nicht durch ein Token als vertrauenswürdig gekennzeichnet wurde. Verwenden Sie keine CORS-Einstellungen, um Same-Origin-Anfragen des Dashboards zu korrigieren; CORS ist ausschließlich für ursprungsübergreifende Browser-Clients vorgesehen.


Leiten Sie Aufrufe an vorgelagerte LLM-Anbieter über einen HTTP- oder SOCKS5-Proxy, um den ausgehenden Datenverkehr zu kontrollieren, Geo-Routing zu ermöglichen oder die IP-Adresse zu verschleiern.

Variable Standardwert Quelldatei Beschreibung
ENABLE_SOCKS5_PROXY true open-sse/executors Aktiviert den SOCKS5-Proxy-Agent für vorgelagerte Aufrufe. Mit false deaktivieren.
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY true Clientseitig Clientseitige Erkennung der SOCKS5-Verfügbarkeit.
PROXY_SKIP_RECENTLY_FAILED false src/shared/utils/featureFlags.ts Optionales Feature-Flag (siehe FEATURE_FLAGS.md; eine Überschreibung durch die Dashboard-Datenbank hat Vorrang). Proxy-Pools und die Rotation pro Konto stellen ein gerade fehlgeschlagenes Mitglied für einen Zeitraum nicht erneut bereit, der sich bei jeder Wiederholung bis zu einer Obergrenze verdoppelt (abgelehnte TCP-Prüfung oder darüber empfangener 429-Statuscode). true (oder 1, yes) aktiviert diese Funktion.
HTTP_PROXY (nicht gesetzt) Node.js-Standard HTTP-Proxy für vorgelagerte Aufrufe.
HTTPS_PROXY (nicht gesetzt) Node.js-Standard HTTPS-Proxy für vorgelagerte Aufrufe.
ALL_PROXY (nicht gesetzt) Node.js-Standard Universeller Proxy (unterstützt socks5://).
OMNIROUTE_PROXY_ECHO_URL (nicht gesetzt) src/lib/proxyEchoTarget.ts Legt das Echo-IP-Ziel, das für Proxy-Egress-Prüfungen verwendet wird, auf eine einzige URL fest. Wenn nicht gesetzt, versucht die Prüfung zuerst api64.ipify.org und dann api4.ipify.org, damit reine IPv4-Tunnel nicht fälschlicherweise als inaktiv gemeldet werden (#9694).
NO_PROXY (nicht gesetzt) Node.js-Standard Durch Kommas getrennte Hostnamen/IP-Adressen, für die der Proxy umgangen werden soll.
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS 32 open-sse/utils/proxyDispatcher.ts Maximale Anzahl gleichzeitiger Sockets pro zwischengespeichertem HTTP-/SOCKS-Proxy-Dispatcher. Langlebige SSE-Streams wie Codex /v1/responses benötigen mehr als eine Verbindung, wenn mehrere Anfragen denselben Proxy auf Kontoebene verwenden. Werte über 256 werden begrenzt.
SOCKS_HANDSHAKE_TIMEOUT_MS 10000 open-sse/utils/socksConnectorWithFamily.ts Zeitüberschreitung für den SOCKS5-Handshake (Verbindungsaufbau) in ms. Erhöhen Sie den Wert, wenn ein einzelner Host eines Residential-Gateways stark parallel belastet wird (z. B. 100 gleichzeitige Anfragen) — in einem ausgelasteten Pool kann der tatsächliche Handshake länger als 10 s dauern, obwohl der Proxy erreichbar ist, was andernfalls fälschlicherweise als [Proxy Fast-Fail] Proxy unreachable angezeigt wird. Auf 120000 begrenzt.
PROXY_FAIL_OPEN false src/sse/handlers/chatHelpers.ts Wenn false (Standardwert) festgelegt ist, wird eine Anfrage, deren zugewiesener Proxy nicht aufgelöst werden kann, abgelehnt (Fail-Closed), anstatt auf eine direkte Verbindung zurückzufallen — dadurch wird die Offenlegung der echten IP-Adresse verhindert. Setzen Sie den Wert auf true, um das bisherige DIRECT-Fallback wiederherzustellen.
ENABLE_TLS_FINGERPRINT false open-sse/executors TLS-Fingerabdruck mit wreq-js vortäuschen (imitiert Chrome 124). Wirkt JA3-/JA4-Blockierungen entgegen.
TLS_FINGERPRINT_PROVIDERS (nicht festgelegt) open-sse/utils/proxyFetch.ts Durch Kommas getrennte Anbieter-Zulassungsliste für das neue weitergeleitete TLS-Routing (open-sse/utils/proxyFetch.ts). Direktes TLS behält das bisherige Verhalten bei, wenn die Variable nicht festgelegt ist; nur diese Anbieter werden über die Chrome-124-Fingerabdruck-Bridge geleitet.
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS false open-sse/services/claudeTurnstileSolver.ts Dem Playwright-Browserkontext für Claude Turnstile erlauben, HTTPS-Zertifikatfehler zu ignorieren.
Szenario Konfiguration
SOCKS5 über SSH-Tunnel ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true
Unternehmens-HTTP-Proxy 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 — erfordert wreq-js (enthalten)
Kontrollierter ausgehender Datenverkehr / kein direkter Zugriff PROXY_FAIL_OPEN=false beibehalten (Standardwert). Anfragen schlagen vollständig fehl, wenn der Proxy nicht verfügbar ist, anstatt unbeabsichtigt direkt gesendet zu werden.
Legacy / Entwicklung — direkten Fallback zulassen PROXY_FAIL_OPEN=true. Stellt das Verhalten vor der Absicherung wieder her: Wenn die Proxy-Auflösung fehlschlägt, wird eine direkte Verbindung verwendet.

Hinweis (Umgehung der NVIDIA-Validierung — #3226): Der NVIDIA-Endpunkt zur API-Schlüsselvalidierung bleibt hängen, wenn er über den globalen Proxy/TLS-gepatchten Fetch geleitet wird (undici-Dispatcher → 504). src/lib/providers/validation.ts::directHttpsRequest() umgeht den Proxy-Patch für diesen einen Validierungsaufruf absichtlich mithilfe von safeOutboundFetch({ bypassProxyPatch: true }). Dies ist eine dokumentierte, klar eingegrenzte Ausnahme — sie wirkt sich nicht auf ausgehenden Chat-/Nutzungsdatenverkehr aus. Die Eingrenzung der Umgehung wird durch tests/unit/proxy-bypass-scope-guard-3226.test.ts abgesichert.


Steuert, wie OmniRoute CLI-Sidecars (Claude Code, Codex usw.) erkennt und startet.

Variable Standardwert Quelldatei Beschreibung
CLI_MODE auto src/shared/services/cliRuntime.ts auto = System-PATH durchsuchen; manual = nur explizite Pfade verwenden.
CLI_EXTRA_PATHS (nicht gesetzt) src/shared/services/cliRuntime.ts Zusätzliche PATH-Einträge für die Erkennung von CLI-Binärdateien (durch Doppelpunkte getrennt).
CLI_CONFIG_HOME (nicht gesetzt) src/shared/services/cliRuntime.ts Überschreibt das Home-Verzeichnis zum Lesen von CLI-Konfigurationen (~/.claude, ~/.codex). Muss absolut sein und sich innerhalb des Home-Verzeichnisses des Prozesses befinden — oder, in einem Container, ein per Bind-Mount eingebundener Pfad sein (so funktioniert /host-home). Andernfalls wird auf das Home-Verzeichnis zurückgegriffen.
CLI_ALLOW_CONFIG_WRITES true src/shared/services/cliRuntime.ts Erlaubt OmniRoute, CLI-Konfigurationsdateien zu schreiben (Token-Aktualisierung, Sitzungsdaten). Auf false setzen, damit jeder Schreibvorgang in die CLI-Konfiguration mit dem expliziten Fehler „Schreibvorgänge deaktiviert“ fehlschlägt.
CLI_CLAUDE_BIN claude src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Claude-CLI-Binärdatei.
CLI_CODEX_BIN codex src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Codex-CLI-Binärdatei.
CLI_DROID_BIN droid src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Droid-CLI-Binärdatei.
CLI_OPENCLAW_BIN openclaw src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur OpenClaw-CLI-Binärdatei.
CLI_CURSOR_BIN agent, dann cursor src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei des Cursor-Agenten. Ohne diesen Pfad versucht die Erkennung zunächst agent und greift dann auf cursor zurück.
CLI_CLINE_BIN cline src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Cline-CLI-Binärdatei.
CLI_5DIVE_BIN 5dive src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur 5dive-CLI-Binärdatei.
CLI_5DIVE_STATE_DIR /var/lib/5dive src/shared/services/cliRuntime.ts Systemstatusverzeichnis von 5dive (Authentifizierungsprofile im Besitz von root); entspricht dem standardmäßigen STATE_DIR von 5dive.
CLI_CONTINUE_BIN cn src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Continue-CLI-Binärdatei.
CLI_QODER_BIN qodercli src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Qoder-CLI-Binärdatei.
CLI_QWEN_BIN qwen src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Qwen-Code-CLI-Binärdatei.
CLI_AIDER_BIN aider src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Aider-CLI-Binärdatei.
CLI_GOOSE_BIN goose src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Goose-CLI-Binärdatei.
CLI_GEMINI_BIN gemini src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Google-Gemini-CLI-Binärdatei — nur für serverseitige Erkennung und Zustandsprüfungen; omniroute run gemini löst die gemini-Binärdatei über den System-PATH auf.
CLI_KILO_BIN kilocode src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Kilo-Code-CLI-Binärdatei.
CLI_OPENCODE_BIN opencode src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur OpenCode-CLI-Binärdatei.
CLI_HERMES_BIN hermes src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Hermes-Binärdatei. Wird von beiden Katalogeinträgen (hermes und hermes-agent) gemeinsam verwendet.
CLI_FORGE_BIN forge src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei der ForgeCode CLI.
CLI_JCODE_BIN jcode src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei der jcode CLI.
CLI_DEEPSEEK_TUI_BIN deepseek-tui src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei der DeepSeek TUI.
CLI_CODEWHALE_BIN codewhale src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei der CodeWhale CLI.
CLI_SMELT_BIN smelt src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei der Smelt CLI.
CLI_PI_BIN pi src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei von Pi (pi-coding-agent).
CLI_CRUSH_BIN crush src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei der Crush CLI.
CLI_OMP_BIN omp src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei des Oh-My-Pi-Agenten (omp).
CLI_LETTA_BIN letta src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei der Letta CLI.
CLI_PRIME_AGENT_BIN prime-agent src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Binärdatei von Prime Agent (Prime Intellect).
CLI_WINDSURF_BIN (keiner) src/shared/services/cliRuntime.ts Benutzerdefinierter Pfad zur Windsurf-Binärdatei. Windsurf wird ohne Standardbefehl ausgeliefert — die Binärdateierkennung bleibt deaktiviert, bis dieser Wert festgelegt wird.
CLI_DEVIN_BIN devin open-sse/executors/devin-cli.ts Benutzerdefinierter Pfad zur Binärdatei der Devin CLI (v3.8.0). Wird vom Windsurf/Devin-Executor verwendet.
DEVIN_DESKTOP_VERSION 3.6.27 open-sse/executors/devin-desktop.ts ide_version von Devin Desktop. Überschreibungen müssen das Format x.y.z verwenden; bei ungültigen Werten wird auf den verifizierten Standardwert zurückgegriffen.
DEVIN_DESKTOP_EXTENSION_VERSION 1.48.2 open-sse/executors/devin-desktop.ts Gebündelte extension_version von Codeium/language-server, die sich von der Desktop-ide_version unterscheidet. Überschreibungen müssen das Format x.y.z verwenden; bei ungültigen Werten wird der gebündelte Standardwert verwendet.
CLI_DEVIN_AGENTIC_BIN devin open-sse/executors/devin-cli-agentic.ts Ausschließlich für die agentische Bridge bestimmte Überschreibung der Devin CLI. Der Executor akzeptiert nur den lokalen ACP-stdio-Upstream.
DEVIN_AGENTIC_HOME (erforderlich) open-sse/executors/devin-cli-agentic.ts Absolutes isoliertes Home-Verzeichnis für den agentischen Devin-Unterprozess; akzeptierte Bridge-Pfade sind /home/bridge und aufgabenspezifische .sandbox-Pfade (unter Windows C:\...\.sandbox\...).
DEVIN_AGENTIC_ACP_TIMEOUT_MS 120000 open-sse/executors/devin-cli-agentic.ts Maximale Dauer eines einzelnen Devin-ACP-Durchlaufs, bevor die Bridge den Kindprozess beendet und eine explizite Zeitüberschreitung zurückgibt.
DEVIN_BRIDGE_MODEL devin-cli-agentic/swe-1-7 docker/devin-bridge/compose.yml Hauptmodellalias von Claude Code für die isolierte Bridge. Das Live-Harness ersetzt das Beispiel durch ein vom aktuellen Devin-Konto zurückgegebenes Modell.
DEVIN_BRIDGE_SONNET_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias der isolierten Bridge, der verwendet wird, wenn Claude Code sein standardmäßiges Sonnet-Modell anfordert.
DEVIN_BRIDGE_OPUS_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias der isolierten Bridge, der verwendet wird, wenn Claude Code sein standardmäßiges Opus-Modell anfordert.
DEVIN_BRIDGE_HAIKU_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias der isolierten Bridge, der verwendet wird, wenn Claude Code sein standardmäßiges Haiku-Modell anfordert.
DEVIN_BRIDGE_SUBAGENT_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias der isolierten Bridge, der für Unteragenten von Claude Code verwendet wird.
DEVIN_SEAT_API_URL https://server.codeium.com open-sse/services/usage/devinCli.ts Optionale Überschreibung für die von Devin CLI verwendete Codeium-Arbeitsplatzverwaltungs-API zur Kontingentabfrage (GetUserStatus).
AUGGIE_BIN auggie open-sse/executors/auggie.ts Überschreibung mit absolutem Pfad für die Binärdatei der Augment-CLI (Auggie), die vom lokalen auggie-Provider verwendet wird. Fällt auf CLI_AUGGIE_BIN und anschließend auf eine Suche im PATH zurück.
CLI_AUGGIE_BIN auggie open-sse/executors/auggie.ts Alias-Überschreibung für den Pfad zur Binärdatei der Augment-CLI (Auggie) (wird nach AUGGIE_BIN geprüft).
ZCODE_BIN zcode open-sse/executors/zcode.ts Für den stdio-Client des lokalen zcode-Providers verwendete Binärdatei. Fällt auf zcode im PATH zurück.
ZCODE_ARGS — open-sse/executors/zcode.ts JSON-Array (≤16 Zeichenfolgen) mit zusätzlichen Argumenten, die beim Start über cliTools an die Binärdatei zcode übergeben werden.
ZCODE_CWD process.cwd() open-sse/executors/zcode.ts Arbeitsverzeichnis für den ZCode-App-Server-Unterprozess.
ZCODE_PROVIDER_ID builtin:zai-coding-plan open-sse/executors/zcode.ts Überschreibung für die an den App-Server gesendete Provider-ID.
ZCODE_SERVER_RUNTIME_ROOT ~/.zcode/server open-sse/executors/zcode.ts Stammverzeichnis der ZCode-App-Server-Laufzeitumgebung (in dem sich das gebündelte node und zcode-server.cjs befinden).
ZCODE_SERVER_NODE &lt;runtimeRoot&gt;/node open-sse/executors/zcode.ts Node-Programmdatei, die zum Hosten des ZCode-App-Servers verwendet wird.
ZCODE_SERVER_ENTRY &lt;runtimeRoot&gt;/zcode-server.cjs open-sse/executors/zcode.ts App-Server-Einstiegsskript, das zum Hosten des ZCode-Servers verwendet wird.
ZCODE_STARTUP_TIMEOUT_MS 10000 open-sse/executors/zcode.ts Zeitlimit beim Start (ms), nach dessen Ablauf der Start eines ZCode-App-Servers als fehlgeschlagen gilt.
ZCODE_RPC_TIMEOUT_MS 30000 open-sse/executors/zcode.ts RPC-Zeitlimit pro Anfrage (ms) für einen Aufruf des ZCode-App-Servers.
ZCODE_TURN_TIMEOUT_MS 120000 open-sse/executors/zcode.ts Maximale Dauer (ms) eines ZCode-Durchlaufs, bevor der Supervisor eine Zeitüberschreitung auslöst.
ZCODE_POLL_INTERVAL_MS 250 open-sse/executors/zcode.ts Abfrageintervall (ms) für den Abschluss eines ZCode-Durchlaufs.
HERMES_HOME ~/.hermes src/lib/cli-helper/config-generator/hermesHome.ts Stammverzeichnis des Hermes Agent, in dem OmniRoute die Hermes-CLI-Konfiguration liest/schreibt. Entspricht der Umgebungsvariable, die das Hermes-PowerShell-Installationsprogramm unter Windows festlegt (%LOCALAPPDATA%\hermes).

Diese Feature-Flags sind optional und standardmäßig deaktiviert. Sie können auch über das CLI-Code-Dashboard umgeschaltet werden.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES false src/shared/constants/featureFlagDefinitions.ts Schreibt nach einer Synchronisierung der Provider-Modelle die Profildateien ~/.codex/*.config.toml automatisch anhand des aktuellen Katalogs neu. Erfordert CLI_ALLOW_CONFIG_WRITES; die aktive/standardmäßige Codex-Konfiguration, Authentifizierung, Codex-lb-Einstellungen oder Provider-Auswahl werden niemals geändert.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES false src/shared/constants/featureFlagDefinitions.ts Schreibt nach einer Synchronisierung der Provider-Modelle die Claude-Code-Profildateien ~/.claude/profiles/&lt;name&gt;/settings.json automatisch anhand des aktuellen Katalogs neu. Erfordert CLI_ALLOW_CONFIG_WRITES; die aktive/standardmäßige Claude-Konfiguration, Authentifizierung oder Provider-Auswahl werden niemals geändert.
Terminal-Fenster
# Host-Binärdateien in den Container einhängen und OmniRoute mitteilen, wo sie sich befinden:
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 wird nur wirksam, wenn der Pfad tatsächlich vom Host per Bind-Mount eingebunden wird — kombinieren Sie ihn mit Mounts wie ~/.codex:/host-home/.codex:rw (siehe das Profil host in docker-compose.yml). Ein Pfad, der sich weder im Home-Verzeichnis des Container-Benutzers befindet noch ein Bind-Mount ist, wird ignoriert, da dort vorgenommene Schreibvorgänge beim erneuten Erstellen des Containers verworfen würden.

Das Image wird als USER node ausgeführt, daher ist ein nicht gemountetes /root keine gültige Überschreibung.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_CONTAINER (automatisch) src/shared/utils/containerEnv.ts Erzwingt die Container-Erkennung als aktiviert (1/true) oder deaktiviert (0/false). Nur für Laufzeitumgebungen erforderlich, die von der automatischen Erkennung nicht erkannt werden.
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE false src/shared/services/cliRuntime.ts Erlaubt dennoch, Konfigurationen von CLI-Tools in einen nicht gemounteten Container-Pfad zu schreiben. Das CLI-Äquivalent ist --allow-container-write.

Hilfsvariablen für die CLI-Binärdatei (omniroute)

Abschnitt betitelt „Hilfsvariablen für die CLI-Binärdatei (omniroute)“

Diese Variablen steuern das Verhalten der omniroute-CLI-Binärdatei selbst (nicht die oben beschriebene Sidecar-Erkennung).

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_LANG (System) bin/cli/i18n.mjs Erzwingt die Ausgabesprache der CLI. BCP-47-Gebietsschema (z. B. en, pt-BR). Überschreibt die Umgebungsvariablen des Systemgebietsschemas (LC_ALL, LC_MESSAGES).
OMNIROUTE_SHOW_LOG (nicht gesetzt) bin/cli/runtime/processSupervisor.mjs Auf 1 setzen, um stdout/stderr des Servers im überwachten Modus an das Terminal weiterzuleiten. Entspricht dem Flag --log bei omniroute serve.
OMNIROUTE_CLI_TOKEN (nicht gesetzt) bin/cli/api.mjs Maschinenauthentifizierungstoken, das als Header x-omniroute-cli-token eingefügt wird. Wird in Aufgabe 8.12 automatisch generiert.
OMNIROUTE_HTTP_TIMEOUT_MS 30000 bin/cli/api.mjs HTTP-Zeitüberschreitung pro Versuch (ms) für Anfragen von der CLI an den Server.
OMNIROUTE_READY_TIMEOUT_MS 60000 bin/cli/utils/pid.mjs Maximale Zeit (ms), die die CLI auf den Health-Endpunkt des Servers wartet, bevor eine Zeitüberschreitungswarnung ausgegeben wird. Nützlich bei langsamen Kaltstarts (z. B. unter Windows). Kann auch über --ready-timeout festgelegt werden.
OMNIROUTE_VERBOSE 0 bin/cli/api.mjs Auf 1 setzen, um während CLI-Befehlen Diagnoseinformationen zu Wiederholungsversuchen und Backoff auf stderr auszugeben.
OMNIROUTE_PLUGIN_PATH (nicht gesetzt) bin/cli/plugins.mjs Benutzerdefiniertes Verzeichnis für die Erkennung von CLI-Plug-ins (omniroute-cmd-*-Pakete). Wenn nicht gesetzt, wird standardmäßig ~/.omniroute/plugins/ verwendet. Nur für die CLI — die Variable erreicht niemals den serverseitigen Plug-in-Scanner, dessen Pfad durch OMNIROUTE_PLUGINS_DIR festgelegt wird (Abschnitt 2).

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_BASE_URL automatische Erkennung open-sse/mcp-server/server.ts Explizite URL, über die MCP-/A2A-Tools OmniRoute erreichen. Überschreibt die automatische localhost-Erkennung.
OMNIROUTE_API_KEY (nicht gesetzt) MCP-/A2A-Module API-Schlüssel für interne MCP-Tool- und A2A-Skill-Aufrufe.
OMNIROUTE_API_KEY_ID (nicht gesetzt) open-sse/mcp-server/audit.ts Schlüssel-ID für die Zuordnung von MCP-Auditprotokolleinträgen.
ROUTER_API_KEY (nicht gesetzt) Legacy Veralteter Alias für OMNIROUTE_API_KEY.
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS 30 src/lib/a2a/taskManager.ts Anzahl der Tage, für die der A2A-Aufgabenverlauf in der lokalen Datenbank aufbewahrt wird, bevor bei der täglichen Bereinigung eine Zeile gelöscht wird. Nicht gesetzt, nicht numerisch oder <= 0 führt zur Verwendung von 30.
OMNIROUTE_A2A_MEMORY_HITS 1 src/lib/a2a/taskExecution.ts Deaktivierungsschalter für die A2A-Memory-Hits-Observability-Funktion. Auf 0 setzen, um die Suche nach Speicherabrufen für eine Aufgabe vollständig zu überspringen; jeder andere Wert (auch nicht gesetzt) lässt sie aktiviert.
OMNIROUTE_ISSUE_AGENT_ENABLED false src/app/api/issue-agent/runs/route.ts Aktiviert den Offline-/lokalen Endpunkt des Issue Agents für aufgezeichnete Triage. Deaktiviert lassen, sofern nicht ausdrücklich lokale Workflows für aufgezeichnete Triage ausgeführt werden.
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS (nicht gesetzt) src/lib/issueAgent/execution.ts Zeitüberschreitung (ms) für einen einzelnen aufgezeichneten Triage-Lauf des Issue Agents. Wird auf ein internes Maximum begrenzt; wenn nicht gesetzt oder ungültig, wird der integrierte Standardwert verwendet.
OMNIROUTE_CONTEXT (aktiver Kontext) bin/cli/program.mjs, bin/cli/api.mjs Kontext/Profil für den Remote-Modus der CLI bei omniroute-Befehlen; überschreibt den aktiven Kontext im lokalen Kontextspeicher. Entspricht --context &lt;name&gt;.
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED 0 bin/cli/contexts.mjs Deaktiviert das optionale Betriebssystem-Schlüsselbund-Backend keytar für CLI-Kontextanmeldedaten. Wenn aktiviert, verbleiben die Anmeldedaten im config.json-Modus 0600, und die CLI gibt einmalig eine Fallback-Warnung aus; vorgesehen für den bewussten Headless-/Container-Betrieb.
OMNIROUTE_MCP_ENFORCE_SCOPES true open-sse/mcp-server/server.ts Erzwingt eine bereichsbasierte Zugriffskontrolle für MCP-Tool-Aufrufe.
OMNIROUTE_MCP_SCOPES (alle) open-sse/mcp-server/server.ts Durch Kommas getrennte Bereiche: admin, combos, health, models, routing, budget, metrics, pricing, memory, skills.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS false open-sse/mcp-server/descriptionCompressor.ts Komprimiert Beschreibungen von MCP-Tools vor der Serialisierung des Manifests. Aktivierende Werte: 1, true, on.
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION rtk open-sse/mcp-server/descriptionCompressor.ts Komprimierungsalgorithmus/-profil. Deaktivierende Werte: 0, false, off.
OMNIROUTE_MCP_FETCH_TIMEOUT_MS 10000 open-sse/mcp-server/fetchTimeout.ts Abbruchzeitlimit (ms) für interne Verwaltungslesevorgänge des MCP-Servers (Systemzustand, Resilienz, Kombinationen, Kontingent, Nutzung).
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS 60000 open-sse/mcp-server/fetchTimeout.ts Abbruchzeitlimit (ms) für MCP-Hops, die auf einen Anbieter warten (route_request, web_search, web_fetch).
OMNIROUTE_CORPUS_CACHE_SIZE 5 src/lib/localCorpus/configured.ts Maximale Anzahl der im Arbeitsspeicher zwischengespeicherten Indexinstanzen des lokalen Korpus (LRU, eine pro indiziertem Stammverzeichnis). Auf mindestens 1 begrenzt.
MODEL_SYNC_INTERVAL_HOURS 24 src/shared/services/modelSyncScheduler.ts Synchronisierungsintervall des Modellkatalogs in Stunden.
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 src/lib/usage/providerLimits.ts Abfrageintervall für Anbieter-Ratenlimits und -Kontingente.
PROVIDER_LIMITS_SYNC_SPACING_MS 1500 src/lib/usage/providerLimits.ts Abstand (ms) zwischen aufeinanderfolgenden OAuth-Kontingentabfragen bei einer Massensynchronisierung; OAuth-Verbindungen werden einzeln abgefragt, um eine Lastspitze beim Upstream zu vermeiden. 0 deaktiviert dies (gleichzeitig).
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS 250 open-sse/services/quotaFetchThrottle.ts Mindestintervall (ms) zwischen aufeinanderfolgenden Upstream-Kontingentabfragen im Preflight-/Überwachungspfad pro Anfrage; verteilt gleichzeitige Netzwerkaufrufe zeitlich, damit viele Konten unter einer IP keine Lastspitze beim Upstream verursachen. In die Kontingentabfragen von Codex (/wham/usage), DeepSeek, Bailian (beide Abrufstellen), OpenCode und Crof integriert (#6009, #6911). Der generische Dispatch-Pfad usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/etc.) ist noch nicht abgedeckt — dies wird separat nachverfolgt. Cache-Treffer sind nicht betroffen. 0 deaktiviert die Funktion; begrenzt auf 0..5000.
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS 5000 src/lib/usage/providerLimits.ts Verzögerung (ms) vor der Aktualisierung der Anbieterlimits nach einem tatsächlichen Nutzungsereignis, damit die Upstream-Kontingent-API Zeit hat, den Verbrauch zu erfassen.
OMNIROUTE_LOGIN_BROWSER_PATH automatisch erkennen open-sse/services/adobeFireflyBrowserLogin.ts Absoluter Pfad zu einer systemweit installierten ausführbaren Chrome- oder Edge-Datei, die für die interaktive Adobe-Firefly-Anmeldung und die Erneuerung außerhalb des sichtbaren Bereichs verwendet wird.
ADOBE_FIREFLY_BROWSER_REFRESH aktiviert open-sse/services/adobeFireflySession.ts Hält den IMS- und Browser-Risikostatus mithilfe kontobezogener Chrome-CDP-Sitzungen aktuell. Auf 0 setzen, um die Browser-Erneuerung zu deaktivieren.
ADOBE_FIREFLY_SESSION_DISK aktiviert open-sse/services/adobeFireflySession.ts Speichert reparierte Adobe-Sitzungen über Prozessneustarts hinweg unter DATA_DIR. Auf 0 setzen, um Sitzungen nur im Arbeitsspeicher zu halten.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Mindestabstand in Millisekunden zwischen Adobe-Firefly-Generierungsübermittlungen; 0 deaktiviert den Abstand.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Zusätzliche Ruhezeit in Millisekunden nach jeder dritten erfolgreichen Adobe-Übermittlung.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyClient.ts Basis-Wartezeit in Millisekunden nach vorübergehenden Adobe-408-Antworten; wird über maximal fünf Versuche mit dem Übermittlungsabstand kombiniert.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES false src/instrumentation-node.ts Deaktiviert alle Hintergrunddienste (Synchronisierung, Preisgestaltung, Modellaktualisierung). Nützlich für CI/Tests.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS (nicht gesetzt) src/lib/config/runtimeSettings.ts Erzwingt die Aktivierung von Hintergrundaufgaben, wenn automatisierte Tests erkannt werden. Auf 1 setzen, um die Testheuristik zu überschreiben.
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS 600000 src/lib/jobs/budgetResetJob.ts Prüfintervall für die Budgetzurücksetzung (ms). Untergrenze 10000.
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS 60000 src/lib/quota/connectionRecovery.ts Intervall für die proaktive Wiederherstellung nach Verbindungs-Cooldowns (ms): Validiert Verbindungen, deren vorübergehendes rate_limited_until abgelaufen ist, außerhalb des kritischen Anfragepfads erneut. Mindestwert 5000.
OMNIROUTE_DISABLE_CONNECTION_RECOVERY false src/lib/quota/connectionRecovery.ts Deaktiviert den Scheduler für die proaktive Wiederherstellung nach Verbindungs-Cooldowns (die verzögerte Wiederherstellung in getProviderCredentials bleibt weiterhin aktiv).
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS 1800000 src/lib/jobs/reasoningCacheCleanupJob.ts Bereinigungsintervall für den Reasoning-Cache (ms). Mindestwert 60000.
OMNIROUTE_REASONING_MIN_BUDGET nicht gesetzt (deaktiviert) open-sse/services/reasoningTokenBuffer.ts Optionaler Mindestwert für Ausgabebudgets von Thinking-Modellen: Ein vom Aufrufer angegebenes max_tokens im Bereich [256, Mindestwert) wird auf den Mindestwert angehoben (begrenzt durch das Ausgabelimit des Modells). Nicht gesetzt = Client-Budgets werden nie erhöht (#9507).
OMNIROUTE_LOG_EXPORT_CRON 0 * * * * src/lib/jobs/logExportJob.ts Cron-Ausdruck (UTC) für den Aufrufprotokoll-Exportauftrag, der alle aktivierten Ziele für den Protokollexport abarbeitet.
OMNIROUTE_CONFIG_HOT_RELOAD_MS 5000 src/lib/config/hotReload.ts Abfrageintervall (ms) für das Hot-Reloading der Konfiguration. Werte unter 1000 werden abgelehnt.
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE (aktiviert) src/lib/db/apiKeys.ts Auf 1 setzen, um den Redis-basierten Authentifizierungs-Cache für API-Schlüssel zu umgehen (erzwingt Datenbankzugriffe).
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS 0 open-sse/services/compression/engines/rtk/filterLoader.ts Vertraut benutzerverwalteten RTK-Projektfilterregeln ohne strenge Signaturprüfungen.
OMNIROUTE_LITE_MAX_TOOL_LENGTH 2000 open-sse/services/compression/lite.ts Zeichenbegrenzung für die proaktive Kürzung von Tool-Ergebnissen durch Lite, wenn lite.maxToolLength nicht gesetzt ist. Bereich 256–1000000. Die Dashboard-Einstellung hat Vorrang vor dieser Umgebungsvariable.
OMNI_COMPRESSION_WORKERS 2 open-sse/services/compression/compressionWorkerPool.ts Maximale Anzahl gleichzeitig ausgeführter synchroner RTK-/Caveman-Worker; überzählige Aufträge warten nach dem FIFO-Prinzip.
OMNI_COMPRESSION_WORKER_TIMEOUT_MS 120000 open-sse/services/compression/compressionWorkerPool.ts Zeitüberschreitung pro Auftrag in Millisekunden. Worker mit Zeitüberschreitung werden beendet, und die Anfrage wird im Fehlerfall unverändert weitergeleitet.
OMNI_COMPRESSION_WORKER_IDLE_MS 60000 open-sse/services/compression/compressionWorkerPool.ts Leerlaufdauer in Millisekunden, nach der ein ungenutzter Komprimierungs-Worker beendet wird.
COMPRESSION_PIPELINE_BREAKER_ENABLED false open-sse/services/compression/pipelineEngineBreaker.ts Hauptschalter für den Engine-spezifischen Circuit-Breaker der gestapelten T02-Pipeline. Optional (standardmäßig deaktiviert) — ist er aktiviert, wird eine Engine, die anfrageübergreifend wiederholt Fehler auslöst, für eine Abkühlzeit übersprungen (Fail-open); deaktiviert = byteidentisches Legacy-Verhalten.
COMPRESSION_PIPELINE_BREAKER_THRESHOLD 3 open-sse/services/compression/pipelineEngineBreaker.ts Anzahl aufeinanderfolgender anfrageübergreifender Fehler, bevor der Circuit-Breaker einer Engine geöffnet wird.
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS 30000 open-sse/services/compression/pipelineEngineBreaker.ts Dauer in Millisekunden, für die eine Engine mit geöffnetem Circuit-Breaker übersprungen wird, bevor ein halb offener Test erfolgt.
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR 2 open-sse/services/compression/engines/ccr/index.ts T08/H8-CCR-Rampe für das Abruf-Feedback: Jeder vorherige Abruf eines gespeicherten Blocks erhöht dessen effektiven minChars-Wert linear (häufig abgerufene Inhalte werden weniger komprimiert; >=3 Abrufe = nie komprimiert). 1 deaktiviert die Rampe (nur binäres Überspringen beim Schwellenwert).
COMPRESSION_CCR_DURABLE_STORE true open-sse/services/compression/engines/ccr/index.ts Dauerhafter CCR-Blockspeicher (#9061). Sichert den In-Memory-Speicher mit SQLite, sodass ein Block auch nach einer LRU-Verdrängung, dem Ablauf der TTL, einem Neustart oder einem Abruf durch eine andere Instanz erhalten bleibt. Auf false setzen, um Blöcke ausschließlich im Arbeitsspeicher zu halten. Blöcke über 512 KB und Cloud-Laufzeitumgebungen verwenden unabhängig davon ausschließlich den Arbeitsspeicher.
COMPRESSION_PREFIX_FREEZE_ENABLED false open-sse/services/compression/prefixFreeze.ts Hauptschalter für das nutzungsbeobachtete Einfrieren von Präfixen gemäß T08/H5. Opt-in (standardmäßig deaktiviert) — wenn aktiviert, wird ein System-Prompt, der >= dem Schwellenwert beobachtet wurde, als stabiles, cachefähiges Präfix behandelt und selbst bei Anbietern von der Komprimierung ausgenommen, die von der statischen Cache-Heuristik nicht erkannt werden (das Einfrieren bewahrt nur und verändert niemals).
COMPRESSION_PREFIX_FREEZE_THRESHOLD 3 open-sse/services/compression/prefixFreeze.ts Anzahl der Beobachtungen eines System-Prompts, bevor er als eingefrorenes, stabiles Präfix behandelt wird.
OMNIROUTE_BOOTSTRAPPED false src/app/(dashboard)/dashboard/page.tsx Wird nach der Ersteinrichtung vom Bootstrap-Skript auf true gesetzt. Steuert die Sichtbarkeit des Einrichtungsassistenten.
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE 0 open-sse/executors/antigravity.ts Notfalloption: Erlaubt dem Anfrage-Body, das Antigravity-Projektfeld zu überschreiben.
ANTIGRAVITY_CREDITS off open-sse/services/antigravityCredits.ts Richtlinie für Google One AI-Guthaben: off fügt niemals Guthaben ein, retry fügt es nach einem entsprechenden Kontingentfehler 429 einmal ein und always fügt es bei der ersten Anfrage ein.
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS 0 open-sse/translator/request/openai-to-gemini.ts Erlaubt dem Antigravity-Anfrageübersetzer, seine strenge Validierung der CLI-Anfragesignatur zu überspringen, wenn der Upstream echte Signaturen ablehnt (Debug-/veralteter-CLI-Modus). Ein Wert ungleich null aktiviert die Umgehung.
AGY_TOKEN_FILE ~/.gemini/antigravity-cli/antigravity-oauth-token src/app/api/providers/agy-auth/apply-local/route.ts Überschreibt den Pfad zur Token-Datei der Antigravity CLI (agy) für den automatisch erkannten Import der lokalen Anmeldung.
Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_SERVER auto-detect src/lib/oauth/config/index.ts Server-URL für die CLI↔OmniRoute-Auth-Brücke.
OMNIROUTE_TOKEN (nicht gesetzt) src/lib/oauth/config/index.ts Auth-Token für die CLI-Brücke.
OMNIROUTE_USER_ID cli src/lib/oauth/config/index.ts Benutzer-ID für CLI-Brückensitzungen.
SERVER_URL (nicht gesetzt) src/lib/oauth/config/index.ts Veralteter Alias für OMNIROUTE_SERVER.
CLI_TOKEN (nicht gesetzt) src/lib/oauth/config/index.ts Veralteter Alias für OMNIROUTE_TOKEN.
CLI_USER_ID (nicht gesetzt) src/lib/oauth/config/index.ts Veralteter Alias für OMNIROUTE_USER_ID.

Integrierte Anmeldedaten für die Entwicklung auf localhost. Registrieren Sie für Remote-Bereitstellungen eigene Anmeldedaten in der Entwicklerkonsole des jeweiligen Anbieters.

Variable Anbieter Hinweise
CLAUDE_OAUTH_CLIENT_ID Claude Code (Anthropic) Öffentlicher Client — kein Secret erforderlich.
CLAUDE_CODE_REDIRECT_URI Claude Code Überschreibt die Weiterleitungs-URI. Standardwert: https://platform.claude.com/oauth/code/callback
CODEX_OAUTH_CLIENT_ID Codex / OpenAI Öffentlicher Client.
GEMINI_OAUTH_CLIENT_ID Gemini (Google) Erfordert ein passendes _SECRET.
GEMINI_OAUTH_CLIENT_SECRET Gemini (Google) —
KIMI_CODING_OAUTH_CLIENT_ID Kimi Coding (Moonshot) Öffentlicher Client.
MUSE_CODE_OAUTH_CLIENT_ID Muse Code (Meta) Optionale Überschreibung für die öffentliche Client-ID des Muse-CLI-Geräteflusses. Lassen Sie die Variable nicht gesetzt, um den integrierten öffentlichen Client zu verwenden.
ANTIGRAVITY_OAUTH_CLIENT_ID Antigravity (Google) Erfordert ein passendes _SECRET.
ANTIGRAVITY_OAUTH_CLIENT_SECRET Antigravity (Google) —
GITHUB_OAUTH_CLIENT_ID GitHub Copilot Öffentlicher Client.
GHE_COPILOT_OAUTH_CLIENT_ID GHE Copilot Optionale Überschreibung der OAuth-Client-ID für GitHub Enterprise Copilot. Wenn nicht gesetzt, wird auf den öffentlichen Standardwert von GITHUB_OAUTH_CLIENT_ID zurückgegriffen.
COPILOT_INTEGRATION_ID GitHub Copilot Optionale Überschreibung der GitHub-Copilot-Client-Integrations-ID, die in den Headern Copilot-Integration-Id und Editor-Plugin-Version gesendet wird. Standardwert ist copilot-developer-cli.
WINDSURF_API_KEY Windsurf / Devin (v3.8) API-Key-Ausweichwert, der von open-sse/executors/devin-cli.ts verwendet wird, wenn keine verbindungsspezifischen Anmeldedaten verfügbar sind. Optional.
CLI_DEVIN_BIN Devin CLI (v3.8) Benutzerdefinierter Pfad zur Devin-CLI-Binärdatei (devin). Wird von open-sse/executors/devin-cli.ts aufgelöst.
GITLAB_DUO_OAUTH_CLIENT_ID GitLab Duo (v3.8) OAuth-Client-ID für GitLab Duo. Registrieren Sie unter https://gitlab.com/-/profile/applications eine App mit der Weiterleitungs-URI <NEXT_PUBLIC_BASE_URL>/callback und den Scopes api, read_user, openid, profile, email. Fällt auf GITLAB_OAUTH_CLIENT_ID zurück.
GITLAB_DUO_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) OAuth-Client-Secret für GitLab Duo. Optional — der PKCE-Ablauf erfordert kein Secret. Fällt auf GITLAB_OAUTH_CLIENT_SECRET zurück.
GITLAB_DUO_BASE_URL GitLab Duo (v3.8) Überschreibt die GitLab-Basis-URL (selbst gehostetes GitLab). Standardwert ist https://gitlab.com. Fällt auf GITLAB_BASE_URL zurück.
GITLAB_BASE_URL GitLab Duo (v3.8) Legacy-Fallback für GITLAB_DUO_BASE_URL. Wird verwendet, wenn die _DUO_-Variante nicht gesetzt ist.
GITLAB_OAUTH_CLIENT_ID GitLab Duo (v3.8) Legacy-Fallback für GITLAB_DUO_OAUTH_CLIENT_ID, verwendet von src/lib/oauth/constants/oauth.ts.
GITLAB_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Legacy-Fallback für GITLAB_DUO_OAUTH_CLIENT_SECRET, verwendet von src/lib/oauth/constants/oauth.ts.
QODER_OAUTH_CLIENT_SECRET Qoder —
QODER_OAUTH_AUTHORIZE_URL Qoder Festlegen, um Qoder OAuth zu aktivieren.
QODER_OAUTH_TOKEN_URL Qoder —
QODER_OAUTH_USERINFO_URL Qoder —
QODER_OAUTH_CLIENT_ID Qoder —
QODER_PERSONAL_ACCESS_TOKEN Qoder Direkter API-Schlüssel als Fallback (umgeht OAuth).
QODER_CLI_WORKSPACE Qoder Workspace-ID für die Qoder CLI.
OMNIROUTE_QODER_WORKSPACE Qoder Alias für QODER_CLI_WORKSPACE.
QODER_CLI_CONFIG_DIR Qoder Überschreibt das Konfigurationsverzeichnis der Qoder CLI (isolierte PAT-Sitzung, verhindert das Überschreiben einer Browseranmeldung).
BLACKBOX_WEB_VALIDATED_TOKEN Blackbox Web Frontend-tk-Token, das als validated an /api/chat gesendet wird. Erforderlich, wenn Blackbox den Token-Abgleich erzwingt; andernfalls greift OmniRoute auf eine zufällige UUID zurück. Siehe Issue #2252.
VISION_BRIDGE_BASE_URL Vision-Bridge-Guardrail OpenAI-kompatible Basis-URL für Vision-Bridge-Aufrufe außerhalb von Anthropic. Standardmäßig wird die URL aus der Legacy-OpenAI-Umgebungsvariable oder api.openai.com verwendet. Kann auf die /v1-Selbstschleife von OmniRoute oder einen beliebigen OpenAI-kompatiblen Endpunkt (Gemini OpenAI-compat, OpenRouter) verweisen. Issue #2232. Wenn die URL auf OmniRoutes eigene /v1-Route verweist, sendet die Beschreibungs-Unteranfrage x-omniroute-admission-bypass: internal und authentifiziert sich mit den aufgelösten Selbstschleifen-Anmeldedaten (sk_omniroute-Sentinel im lokalen Modus oder OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350), damit Bereitstellungen mit REQUIRE_API_KEY=true funktionieren.
VISION_BRIDGE_API_KEY Vision-Bridge-Guardrail API-Schlüssel für die oben angegebene URL. Überschreibt für Vision-Bridge-Aufrufe außerhalb von Anthropic die anbieterspezifischen OpenAI-/Google-Umgebungsvariablen. Anthropic-Modelle verwenden weiterhin ihren dedizierten Anthropic-Schlüsselpfad. Issue #2232.
OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS Vision-Bridge-Guardrail Gibt in ms an, wie lange ein Routing-Ergebnis vom Typ „kein verwendbarer Kandidat“ zwischengespeichert wird (Standardwert: 30000). Bei ungültigen oder negativen Werten wird der Standardwert verwendet; 0 deaktiviert den negativen Cache. Quelle: src/lib/guardrails/visionBridgeRouter.ts.

[!WARNING]

  1. Öffnen Sie Google Cloud Console → Anmeldedaten
  2. Erstellen Sie eine OAuth-2.0-Client-ID (Typ: „Webanwendung“)
  3. Fügen Sie Ihre Server-URL als autorisierten Weiterleitungs-URI hinzu
  4. Ersetzen Sie die Anmeldedatenwerte in .env.

Überschreibt den User-Agent-Header, der an jeden vorgelagerten Anbieter gesendet wird. Dieser wird zur Laufzeit dynamisch von der Executor-Basisklasse aufgelöst:

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

Quelle: open-sse/executors/base.ts → buildHeaders()

| Variable | Standardwert | Wann zu aktualisieren | | –––––––––––––––– | ——————————————— | ———————————————————————————————— | —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— | | CLAUDE_USER_AGENT | claude-cli/2.1.258 (external, cli) | Wenn Anthropic eine neue CLI-Version veröffentlicht | | CLAUDE_DISABLE_TOOL_NAME_CLOAK | false | executors/base.ts + executors/cliproxyapi.ts | Auf 1/true setzen, um Tool-Namen von Drittanbieter-Harnesses auf beiden zu Anthropic führenden Pfaden (natives OAuth und CLIProxyAPI) unverändert an Anthropic weiterzuleiten. Standardmäßig weist der Executor Tool-Namen, die nicht aus Claude Code stammen, deterministisch Aliasse zu (kanonische Claude-Code-Zuordnung, sofern vorhanden, andernfalls PascalCase) und macht diese in der Antwort über _toolNameMap rückgängig, sodass Harnesses mit snake_case-Tools nicht als identifizierte Drittanbieter-Clients abgelehnt werden. Nur für Debugging-Zwecke. | | CODEX_USER_AGENT | codex-cli/0.155.0 (Windows 10.0.26200; x64) | Wenn OpenAI die Codex CLI aktualisiert | | CODEX_CLIENT_VERSION | 0.155.0 | Die Codex-Clientversion unabhängig vom vollständigen UA-String überschreiben | | CLAUDE_CODE_CLIENT_VERSION | 2.1.258 | Die angegebene Claude-Code-Version unabhängig von CLAUDE_USER_AGENT überschreiben. Anthropic beschränkt einige Modelle anhand dieses Werts (#12417). | | GITHUB_COPILOT_CLI_VERSION | 1.0.81-6 | Die angegebene Copilot-CLI-Version unabhängig von GITHUB_USER_AGENT überschreiben | | GITHUB_USER_AGENT | GitHubCopilotChat/0.54.0 | Wenn GitHub Copilot Chat aktualisiert wird | | ANTIGRAVITY_USER_AGENT | antigravity/2.0.1 darwin/arm64 | Wenn die Antigravity IDE aktualisiert wird | | KIRO_USER_AGENT | AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 | Wenn die Kiro IDE aktualisiert wird | | KIRO_OAUTH_CLIENT_ID | kiro-cli | Die clientId (öffentliche ID) für den Social-Device-Code von Kiro überschreiben | | KIRO_VERIFY_FULL_CRC | false | Opt-in: vollständige CRC-Validierung pro Frame im Kiro-Ereignisstream (zur Fehlersuche bei beschädigten Streams) | | QODER_USER_AGENT | Qoder-Cli | Wenn die Qoder CLI aktualisiert wird | | CURSOR_USER_AGENT | Cursor/3.3 | Wenn Cursor aktualisiert wird |

[!TIP] Sie können User-Agent-Überschreibungen für jeden Anbieter nach dem Muster {PROVIDER_ID}_USER_AGENT hinzufügen. Der Executor erstellt den Namen der Umgebungsvariablen dynamisch.


Wenn diese Funktion aktiviert ist, ordnet OmniRoute HTTP-Header und JSON-Textkörperfelder neu an, sodass sie exakt der Signatur der offiziellen CLI-Tools entsprechen. Dadurch wird das Risiko einer Kontokennzeichnung reduziert, während Ihre Proxy-IP beibehalten wird.

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

Variable Aktivierung Wirkung
CLI_COMPAT_CODEX =1 Imitiert die Anfragesignatur der Codex CLI
CLI_COMPAT_CLAUDE =1 Imitiert die Anfragesignatur von Claude Code
CLI_COMPAT_GITHUB =1 Imitiert die Anfragesignatur von GitHub Copilot
CLI_COMPAT_ANTIGRAVITY =1 Imitiert die Anfragesignatur von Antigravity
CLI_COMPAT_CURSOR =1 Imitiert die Anfragesignatur von Cursor
CLI_COMPAT_KIMI_CODING =1 Imitiert die Anfragesignatur von Kimi Coding
CLI_COMPAT_KILOCODE =1 Imitiert die Anfragesignatur von Kilo Code
CLI_COMPAT_CLINE =1 Imitiert die Anfragesignatur von Cline
Variable Aktivierung Wirkung
CLI_COMPAT_ALL =1 Aktiviert die Fingerprint-Kompatibilität gleichzeitig für alle Anbieter.
Variable Standardwert Quelldatei Beschreibung
KIMI_CLI_VERSION 1.36.0 src/lib/oauth/providers/kimi-coding.ts Überschreibt die bei OAuth-/API-Aufrufen übermittelte Kimi-CLI-Version.
KIMI_CODING_DEVICE_ID (erfasster Standard) src/lib/oauth/providers/kimi-coding.ts Überschreibt die erfasste Kimi-Geräte-ID, die in Client-Headern verwendet wird.

[!NOTE] Diese Funktion arbeitet mit den User-Agent-Überschreibungen (§12) zusammen. Das Fingerprint-System übernimmt die Reihenfolge der Header und Textkörperfelder, während die User-Agent-Überschreibungen die konkrete UA-Zeichenfolge festlegen. Beide Funktionen können unabhängig voneinander aktiviert werden.


API-Schlüssel für Anbieter, die eine direkte Authentifizierung verwenden. Bevorzugte Einrichtung: Dashboard → Anbieter → API-Schlüssel hinzufügen.

Die Konfiguration über Umgebungsvariablen ist eine Alternative für Docker- oder Headless-Bereitstellungen.

Erkanntes Muster: {PROVIDER_ID}_API_KEY

Variable Anbieter
DEEPSEEK_API_KEY DeepSeek
NVIDIA_API_KEY NVIDIA NIM
JINA_AI_API_KEY Jina AI (Foundation API + Reader-Fallback)
JINA_API_KEY Jina AI (Alias für JINA_AI_API_KEY)
GEMINI_API_KEY Gemini (Google AI Studio), Embeddings + Chat-Fallback
GOOGLE_API_KEY Gemini (Alias für GEMINI_API_KEY)

[!NOTE] Statische ${PROVIDER}_API_KEY-Einträge für Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius und Qianfan wurden in v3.8.0 entfernt, weil sie von der Laufzeit nicht mehr gelesen werden — diese Anbieter verwenden ausschließlich das Dashboard, data/provider-credentials.json oder die verschlüsselte Datenbank. Den Migrationspfad finden Sie im Abschnitt Prüfung: Entfernte / nicht verwendete Variablen am Ende dieses Dokuments.

[!TIP] Über das Dashboard festgelegte Schlüssel werden verschlüsselt in SQLite gespeichert und haben Vorrang vor Umgebungsvariablen.

Jina: jina-ai/…-Embeddings sowie Rerank-, Klassifizierungs-, Segmentierungs- und jina-search-Anfragen belasten keinen Cluster-Umgebungsschlüssel, wenn eine Dashboard-Verbindung für jina-ai (oder eine gemeinsam genutzte jina-reader-Verbindung) vorhanden ist — getProviderCredentials arbeitet nach dem Fill-first-Prinzip. JINA_AI_API_KEY / JINA_API_KEY werden nur verwendet, wenn kein nutzbarer Dashboard-Schlüssel vorhanden ist. In Aufrufprotokollen wird der Umgebungs-Fallback als connection_id=env:JINA_AI_API_KEY ausgewiesen. Die Reader-Karte (jina-reader, r.jina.ai) bedient niemals /v1/embeddings oder /v1/rerank.

Gemini: gemini/gemini-embedding-2 (Alias google/gemini-embedding-2) verwendet zuerst die Dashboard-Verbindung gemini. GEMINI_API_KEY / GOOGLE_API_KEY werden nur verwendet, wenn kein nutzbarer Dashboard-Schlüssel vorhanden ist. In Aufrufprotokollen wird der Umgebungs-Fallback als connection_id=env:GEMINI_API_KEY ausgewiesen. Nativer multimodaler Datenverkehr verwendet x-goog-api-key für :embedContent / :batchEmbedContents — N OpenAI-input-Elemente ergeben N Vektoren.


Alle Werte sind in Millisekunden angegeben. Die zentrale Auflösung erfolgt in src/shared/utils/runtimeTimeouts.ts.

REQUEST_TIMEOUT_MS (globale Überschreibung)
├─→ FETCH_TIMEOUT_MS (Aufrufe vorgelagerter Anbieter, Standardwert: 600000)
│ ├─→ FETCH_HEADERS_TIMEOUT_MS (übernimmt den Wert von FETCH_TIMEOUT_MS)
│ ├─→ FETCH_BODY_TIMEOUT_MS (übernimmt den Wert von FETCH_TIMEOUT_MS)
│ ├─→ TLS_CLIENT_TIMEOUT_MS (übernimmt den Wert von FETCH_TIMEOUT_MS)
│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (unabhängig, Standardwert: 10000)
│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (unabhängig, Standardwert: 15000)
│ ├── FETCH_CONNECT_TIMEOUT_MS (unabhängig, Standardwert: 30000)
│ └── FETCH_KEEPALIVE_TIMEOUT_MS (unabhängig, Standardwert: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (übernimmt den Wert von REQUEST_TIMEOUT_MS, Standardwert: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (unabhängig, Standardwert: 1260000; 0 deaktiviert den Timeout)
├─→ STREAM_READINESS_TIMEOUT_MS (übernimmt den Wert von REQUEST_TIMEOUT_MS, Standardwert: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (begrenzt adaptive Bereitschaftsverlängerungen, Standardwert: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (übernimmt den Wert von REQUEST_TIMEOUT_MS, Standardwert: 30000)
├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (abgeleitet, Standardwert: 300000)
├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (Standardwert: 60000)
├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (Standardwert: 5000)
└── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (Standardwert: 0 = deaktiviert)
Variable Standardwert Beschreibung
REQUEST_TIMEOUT_MS (nicht gesetzt) Globale Kurzform — überschreibt die Standardwerte von FETCH_TIMEOUT_MS und STREAM_IDLE_TIMEOUT_MS.
FETCH_TIMEOUT_MS 600000 Gesamtzeitlimit für HTTP-Anfragen bei Aufrufen an vorgelagerte Anbieter.
STREAM_IDLE_TIMEOUT_MS 600000 Maximale Stille zwischen unverarbeiteten Bytes vom vorgelagerten Anbieter, bevor abgebrochen wird. Modelle mit erweitertem Denkprozess pausieren selten länger als 90 Sekunden.
STREAM_ACTIVE_TIMEOUT_MS 1260000 Maximale aktive Gesamtlaufzeit des SSE-Streams; wird durch Bytes vom vorgelagerten Anbieter nie zurückgesetzt und ist unabhängig von REQUEST_TIMEOUT_MS. Abgeleitet vom größten modellspezifischen timeoutMs in der Registry (1200000, Codex) zuzüglich eines Puffers von 60000, sodass ein Modell, das sein vollständiges Zeitbudget nutzen darf, niemals mitten in der Antwort beendet wird. Zum Deaktivieren auf 0 setzen.
OMNIROUTE_SSE_COMMENTS (deaktiviert) Legt fest, ob OmniRoute SSE-Kommentarzeilen mit : ausgeben darf (z. B. den : keepalive-Heartbeat und x-omniroute-*-Metadaten-Trailer). Standardmäßig deaktiviert (#10524), da strikt OpenAI-kompatible Clients jede SSE-Zeile mit JSON.parse verarbeiten und bei :-Kommentaren abstürzen; data:-Heartbeats sind davon nicht betroffen. Auf on/true/1/yes setzen, um sie wieder zu aktivieren. Verwendet von open-sse/utils/sseHeartbeat.ts.
STREAM_READINESS_TIMEOUT_MS 80000 Zeitraum bis zum Empfang des ersten SSE-Ereignisses, das kein Ping ist. Übernimmt REQUEST_TIMEOUT_MS, wenn dieser Wert gesetzt ist.
STREAM_READINESS_MAX_TIMEOUT_MS 180000 Maximales adaptives Bereitschaftszeitfenster bis zum ersten Ereignis für große, werkzeugintensive oder Streaming-Anfragen mit hohem Denkaufwand.
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED true Notausschalter für die /goal-Heuristik. Auf false/0/off setzen, um die Erkennung vollständig zu deaktivieren — Bereitschaftszeitlimits und Stream-Wiederherstellung werden niemals aufgrund des Anfrageinhalts oder der Header erhöht, wodurch eine clientgesteuerte Verstärkung von Zeitlimits verhindert wird.
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS 600000 Maximales Bereitschaftszeitfenster bis zum ersten Ereignis für erkannte /goal-Agentenausführungen oder mit x-omniroute-agent-goal erzwungene Anfragen.
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY true Aktiviert automatisch die frühzeitige Stream-Wiederherstellung für erkannte /goal-Agentenausführungen. Auf false/0/off setzen, um die zielspezifische Aktivierung zu deaktivieren. Dadurch kann die Wiederherstellung nur zusätzlich zur Standardeinstellung des Betreibers AKTIVIERT werden — eine explizite Deaktivierung über STREAM_RECOVERY_ENABLED oder die Datenbankeinstellungen wird niemals überschrieben.
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS true Entfernt nicht standardmäßige codex.*-SSE-Ereignisse (z. B. codex.rate_limits), die responses.stream() des OpenAI SDK mit einem 502-Fehler abbrechen lassen. Standardmäßig AKTIVIERT (#11014). Auf 0/false/no/off setzen, um sie weiterzuleiten.
OMNIROUTE_CODEX_APPSERVER_WS (nicht gesetzt) Opt-in für den Codex-App-Server-Transport. WebSocket-Endpunkt (ws:///wss://) eines lokalen codex app-server-Sidecars. Wenn dieser zusammen mit einem Token gesetzt ist, werden Codex-Anfragen über JSON-RPC an das Sidecar weitergeleitet statt über die HTTP Responses API. Kann auch pro Verbindung über providerSpecificData.codexAppServerUrl festgelegt werden. Verwendet von open-sse/executors/codex/appServerConfig.ts.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN (nicht gesetzt) Inline bereitgestelltes Capability-/Bearer-Token, das dem App-Server übermittelt wird. Verbindungsbezogene Überschreibung: providerSpecificData.codexAppServerToken.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE (nicht gesetzt) Pfad zu einer Datei, die das Capability-Token des App-Servers enthält (von codex app-server --ws-token-file). Wird verwendet, wenn OMNIROUTE_CODEX_APPSERVER_WS_TOKEN nicht gesetzt ist. Verbindungsbezogene Überschreibung: providerSpecificData.codexAppServerTokenFile.
OMNIROUTE_CODEX_APPSERVER_CWD /tmp Arbeitsverzeichnis, in dem die App-Server-Ausführung stattfindet. Verbindungsbezogene Überschreibung: providerSpecificData.codexAppServerCwd.
OMNIROUTE_CODEX_APPSERVER_APPROVAL (nicht gesetzt) Genehmigungsrichtlinie, die an die App-Server-Ausführung übergeben wird (z. B. never, on-request). Verbindungsbezogene Überschreibung: providerSpecificData.codexAppServerApprovalPolicy.
OMNIROUTE_CODEX_APPSERVER_SANDBOX (nicht gesetzt) Sandbox-Richtlinie, die an die App-Server-Ausführung übergeben wird (z. B. read-only, workspace-write, danger-full-access). Wenn nicht gesetzt, verwendet der Executor standardmäßig workspace-write (abgesichert; zuvor danger-full-access). Verbindungsbezogene Überschreibung: providerSpecificData.codexAppServerSandbox.
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE false Genehmigt die eigenen Genehmigungsaufforderungen des App-Servers automatisch (Befehls-/Datei-/Berechtigungsausführung auf dem Host). Standardmäßig deaktiviert — Aufforderungen werden automatisch abgelehnt; Harness-Werkzeugaufrufe sind davon nicht betroffen (sie werden über die separate item/tool/call-Durchleitung übertragen). Akzeptiert true/1/yes. Verbindungsbezogene Überschreibung: providerSpecificData.codexAppServerAutoApprove.
FETCH_HEADERS_TIMEOUT_MS = FETCH_TIMEOUT_MS Zeitraum bis zum Empfang der Antwort-Header.
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS 30000 (30 s) Maximale Wartezeit bis zum Antwortbeginn (ms) für jeden direkten Versuch ohne Proxy. Bei einem Timeout erfolgt ein erneuter Versuch über einen neuen Socket; auf 0 setzen, um die Begrenzung zu deaktivieren und das bisherige Verhalten beizubehalten.
OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS 600000 (10 min) Obergrenze (ms) für den RETRY-Versuch über einen neuen Socket nach einem oben beschriebenen Timeout bis zum Antwortbeginn bei einem Versuch über eine Verbindung aus dem Pool (#13703). Gilt nur, wenn der Aufrufer bereits ein eigenes Deadline-Signal angefügt hat (die Kaskade aus aufgelöster Verbindung/Modell/Anbieter/FETCH_TIMEOUT_MS); dieses Signal ist die tatsächliche Begrenzung und wird im vorgesehenen Ablauf zuerst ausgelöst, sodass dies eher eine großzügige Rückfallsicherung als eine pauschale Obergrenze ist — ohne sie verwendete der erneute Versuch dasselbe kurze OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS-Zeitfenster wie der Versuch über die Verbindung aus dem Pool, wodurch funktionierende Reasoning-Modelle mit langsamer TTFB einen 504-Fehler zurückgaben. Darf niemals unter der oben genannten pauschalen Untergrenze liegen; wenn der Aufrufer überhaupt kein Deadline-Signal bereitstellt, behält der erneute Versuch unverändert die pauschale Untergrenze bei.
FETCH_BODY_TIMEOUT_MS = FETCH_TIMEOUT_MS Zeit für den Empfang des vollständigen Antworttexts.
FETCH_CONNECT_TIMEOUT_MS 30000 Timeout für den Aufbau der TCP-Verbindung.
FETCH_KEEPALIVE_TIMEOUT_MS 4000 Leerlauf-Timeout für den Keep-Alive-Socket.
TLS_CLIENT_TIMEOUT_MS = FETCH_TIMEOUT_MS Timeout für den TLS-Fingerprint-Proxy (wreq-js).
TLS_FIRST_BYTE_WATCHDOG_MS 10000 Begrenzt speziell die Zeit bis zum ersten Byte des Antworttexts beim wreq-js-TLS-Fingerprint-Transport; TLS_CLIENT_TIMEOUT_MS allein kann einen blockierten Antworttext nicht erkennen, da es bereits aufgelöst wird, sobald die Header eintreffen (#12656). Bei einem Timeout wird der wreq-Reader abgebrochen und auf den direkten/Proxy-Dispatcher zurückgegriffen; 0 deaktiviert den Watchdog.
RESPONSES_FIRST_BYTE_TIMEOUT_MS 15000 Nur für den OpenCode-Executor und nur, solange das Feature-Flag OPENCODE_RESPONSES_STALL_ROTATION aktiviert ist (standardmäßig deaktiviert): Begrenzt die Wartezeit auf das erste Byte des Antworttexts einer gestreamten Responses-Antwort nach deren Headern (#13484). Ein Responses-Stream beginnt mit response.created, daher gilt eine über dieses Zeitfenster hinausgehende Stille als Blockierung: Das Konto wird vorübergehend gesperrt und die Anfrage einmalig an das nächste Konto weitergeleitet; eine zweite Blockierung führt zu einem sofortigen Fehler. 0 deaktiviert die Schutzfunktion auch bei aktiviertem Flag.
OPENCODE_PARK_AND_RESUME false Nur für den OpenCode-Executor: Parkt die Anfrage nach wiederholten vorübergehenden 429-Fehlern (oder bei einem aktuellen Pool-Überlastungsmarker) mit einem Heartbeat und führt anschließend statt einer Verteilung auf die gesamte Flotte einen begrenzten Durchlauf über bis zu 3 aufeinanderfolgende Konten erneut aus (#13924). Standardmäßig deaktiviert: Jeder 429-Fehler führt genau wie zuvor zur Weiterleitung an das nächste Konto.
OPENCODE_POOL_STRAIN_MARKER_PATH (nicht gesetzt) Nur für den OpenCode-Executor: Überschreibt den Pfad des vor dem Parken gelesenen Pool-Überlastungsmarkers ({since, reason, ttl_s}, standardmäßig /tmp/opencode-pool-strain.json, #13924). Ein aktueller Marker führt ohne erneute Zählung zum Parken; ein fehlender oder veralteter Marker führt zum Burst-Zähler zurück.
API_BRIDGE_PROXY_TIMEOUT_MS 30000 Timeout für den Proxy-Hop bei /v1-Bridge-Anfragen.
FIRECRAWL_BASE_URL https://api.firecrawl.dev Richtet den Firecrawl-Web-Fetch-Executor auf eine selbst gehostete Instanz aus (API-Schlüssel außerhalb der Cloud optional).
FIRECRAWL_TIMEOUT_MS 30000 Timeout pro Anfrage für den Firecrawl-Web-Fetch-Executor.
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS 300000 Gesamt-Timeout für Serveranfragen der Bridge.
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS 60000 Zeit zum Senden der Antwort-Header über die Bridge.
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS 5000 Keep-Alive-Leerlauf-Timeout der Bridge.
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS 0 Timeout des Raw-Sockets (0 = deaktiviert).
SHUTDOWN_TIMEOUT_MS 30000 Kulanzfrist bei SIGTERM/SIGINT vor dem erzwungenen Beenden.
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS 120000 Fallback, der von src/shared/utils/fetchTimeout.ts verwendet wird, wenn FETCH_TIMEOUT_MS nicht gesetzt ist.
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS 8000 Timeout (ms) für die Voreinstellungen validationRead und modelsProbe in src/shared/network/safeOutboundFetch.ts. Für langsame Endpunkte (Cerebras, Cloudflare AI, Groq) erhöhen, um ein wiederholtes Umschalten zwischen „aktiv“ und „Fehler“ im Dashboard zu verhindern. Fällt bei ungültigen (<1000) oder nicht numerischen Werten auf 8000 ms zurück.
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS 25000 Relay-spezifisches Fetch-Timeout in open-sse/utils/proxyFetch.ts (#9158). Ein hängendes Relay muss vor dem Client-/Agent-Timeout (~30 s) fehlschlagen, damit Aufrufer einen Relay-spezifischen Fehler statt eines generischen Upstream-Timeouts sehen. Auf 29000 begrenzt, damit es immer zuerst ausgelöst wird.
OMNIROUTE_RETRY_BACKOFF_MS 10 Gemeinsamer Retry-Backoff für die Pfade mit einmaligem Wiederholungsversuch für Direct/Relay/Proxy in open-sse/utils/proxyFetch.ts (#9158). 0 = sofort wiederholen.
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS 60000 Timeout für native wreq-js-Anfragen (claudeTlsClient.ts).
OMNIROUTE_CLAUDE_TLS_GRACE_MS 10000 Absolute JS-Hard-Deadline-Toleranz, die zusätzlich zum nativen Timeout gewährt wird.
OMNIROUTE_PPLX_TLS_TIMEOUT_MS 30000 Timeout für native wreq-js-Anfragen (perplexityTlsClient.ts).
OMNIROUTE_PPLX_TLS_GRACE_MS 10000 Absolute JS-Hard-Deadline-Toleranz, die zusätzlich zum nativen Timeout gewährt wird.
OMNIROUTE_PPLX_SEARCH_HINT 0 (aus) Hängt „Du verfügst über eine integrierte Websuche. Beantworte Fragen direkt anhand der Suchergebnisse.“ an die Systemnachricht des Aufrufers an (perplexity-web/protocol.ts). Standardmäßig deaktiviert — Perplexity sucht ohnehin, und der Satz gelangt bei Coding-Clients als Meta-Kommentar in die Antworten. Zum Wiederherstellen auf 1/true/yes/on setzen.
OMNIROUTE_GROK_TLS_TIMEOUT_MS 60000 Timeout für native wreq-js-Anfragen (grokTlsClient.ts).
OMNIROUTE_GROK_TLS_GRACE_MS 10000 Absolute JS-Hard-Deadline-Toleranz, die zusätzlich zum nativen Timeout gewährt wird.
OMNIROUTE_NOTION_TLS_TIMEOUT_MS 30000 Timeout für native wreq-js-Anfragen (notionTlsClient.ts); notion-web erhöht ihn pro Anfrage für lange Generierungen auf 180000.
OMNIROUTE_NOTION_TLS_GRACE_MS 10000 Absolute JS-Hard-Deadline-Toleranz, die zusätzlich zum nativen Timeout gewährt wird.
OMNIROUTE_BROWSER_POOL on Gemeinsamer Playwright-Browser-Pool für Web-Cookie-Chats mit Browser-Unterstützung (browserPool.ts); zum Deaktivieren auf off setzen.
OBSCURA_BIN auto-detect Pfad zur Binärdatei obscura, die vom Browser-Pool und vom Cloudflare-Playground-Executor als primäre Engine verwendet wird (open-sse/services/obscura.ts); wird bei nicht gesetzter Variable automatisch über den PATH des Systems erkannt.
OBSCURA_CDP_ENDPOINT (nicht gesetzt) Verweist auf eine bereits laufende Obscura-Instanz (http://host:port), anstatt eine neue zu starten; das Modul ist nicht für diesen Prozess verantwortlich (open-sse/services/obscura.ts).
OBSCURA_PORT random free port Expliziter Port für den gestarteten obscura serve; bei nicht gesetzter Variable wird automatisch ein freier Port ausgewählt (open-sse/services/obscura.ts).
WEB_COOKIE_USE_BROWSER 0 Leitet eine Web-Cookie-Chat-Anfrage über den Browser-gestützten Pfad (browserBackedChat.ts); zum Aktivieren auf 1 setzen.
KIMI_WEB_BASE_URL https://www.kimi.ai Basis-URL für den Kimi-Web-Executor (internationales kimi.ai Connect-RPC) (kimi-web.ts); nur für Mirror-/Proxy-Endpunkte überschreiben.
KIMI_WEB_CHAT_URL <KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat Vollständiger Chat-Endpunkt für den Kimi-Web-Executor (kimi-web.ts).
OMNIROUTE_LOGIN_BROWSER_PATH (automatisch erkannt) Pfad zu einer systemweiten Chrome-/Edge-Programmdatei für die interaktive Browser-Anmeldung bei Adobe Firefly (adobeFireflyBrowserLogin.ts); überschreibt die betriebssystemspezifische automatische Erkennung.
OMNIROUTE_STANDALONE_DIR .build/-Standalone-Ausgabe Build-Time-Überschreibung für das Standalone-Ausgabeverzeichnis, das vom Colocation-Schritt nach dem Build verwendet wird (scripts/build/colocate-standalone.mjs); betrifft die Build-Werkzeuge, nicht die Laufzeit.

Versuche für Combo-Ziele übernehmen das aufgelöste Timeout der Upstream-Anfrage (FETCH_TIMEOUT_MS oder REQUEST_TIMEOUT_MS, wenn es den Fetch-Standardwert bereitstellt). Legen Sie targetTimeoutMs in einer Combo, in Combo-Standardwerten oder in einer Provider-Überschreibung nur fest, um den Combo-Fallback zu beschleunigen; Werte oberhalb des aktuellen Upstream-Timeouts werden auf das Upstream-Timeout begrenzt.

comboTimeoutMs ist ein separates, für die gesamte Combo geltendes Echtzeitbudget über alle Failover-Ziele hinweg. Lassen Sie es nicht gesetzt oder setzen Sie es auf 0, um die Iteration unbegrenzt fortzusetzen (ein fest codierter 10-Minuten-Hang-Stopp in comboPredicates.ts gilt weiterhin). Ein positiver Wert ersetzt dieses Sicherheitsnetz für die Combo. Wählen Sie für comboTimeoutMs einen längeren Wert als für targetTimeoutMs, damit nach einem langsamen ersten Ziel noch Zeit für das Failover bleibt.

Konfiguration des Circuit Breakers auf Provider-Ebene. Die Standardwerte entsprechen den seit v3.6 verwendeten skalierten Werten für mehr als 500 Verbindungen.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD 8 open-sse/config/constants.ts Schwellenwert für aufeinanderfolgende Fehler bei OAuth-Anbietern, bevor der Circuit Breaker auslöst.
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS 60000 open-sse/config/constants.ts Rücksetzzeitfenster (ms) für den Circuit Breaker von OAuth-Anbietern.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD 12 open-sse/config/constants.ts Schwellenwert für aufeinanderfolgende Fehler bei API-Key-Anbietern.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS 30000 open-sse/config/constants.ts Rücksetzzeitfenster (ms) für den Circuit Breaker von API-Key-Anbietern.
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD 2 open-sse/config/constants.ts Schwellenwert für aufeinanderfolgende Fehler bei lokalen Anbietern (Ollama, LM Studio, …).
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS 15000 open-sse/config/constants.ts Rücksetzzeitfenster (ms) für den Circuit Breaker lokaler Anbieter.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD 10 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: Fehler innerhalb des Zeitfensters, bevor der gesamte OAuth-Anbieter in die Abkühlphase wechselt.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS 900000 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: gleitendes Zeitfenster für die Fehlerzählung (ms) bei OAuth-Anbietern.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS 300000 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: Abkühlphase (ms), sobald der Schwellenwert des OAuth-Anbieters erreicht ist.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD 5 open-sse/config/constants.ts Der OAuth-Anbieter wechselt bei dieser Anzahl von Fehlern in den Zustand DEGRADED.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER 8 open-sse/config/constants.ts Maximaler Multiplikator für die Eskalation von resetTimeout beim OAuth-Anbieter.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT 2 open-sse/config/constants.ts Der OAuth-Anbieter eskaliert nach dieser Anzahl offener Zyklen.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD 15 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: Fehler innerhalb des Zeitfensters, bevor der gesamte API-Key-Anbieter in die Abkühlphase wechselt.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS 1800000 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: gleitendes Zeitfenster für die Fehlerzählung (ms) bei API-Key-Anbietern.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS 600000 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: Abkühlphase (ms), sobald der Schwellenwert des API-Key-Anbieters erreicht ist.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD 7 open-sse/config/constants.ts Der API-Key-Anbieter wechselt bei dieser Anzahl von Fehlern in den Zustand DEGRADED.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER 4 open-sse/config/constants.ts Maximaler Multiplikator für die Eskalation von resetTimeout beim API-Key-Anbieter.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT 3 open-sse/config/constants.ts Der API-Key-Anbieter eskaliert nach dieser Anzahl offener Zyklen.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD 2 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: Fehler, bevor der gesamte lokale Anbieter in die Abkühlphase wechselt.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS 300000 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: gleitendes Zeitfenster für die Fehlerzählung (ms) bei lokalen Anbietern.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS 60000 open-sse/config/constants.ts Circuit Breaker auf Anbieterebene: Abkühlphase (ms), sobald der Schwellenwert des lokalen Anbieters erreicht ist.
PIN_DROP_BACKOFF_LEVEL 2 open-sse/services/combo.ts Backoff-Stufe, ab der der Anbieter eines Kontext-Cache-Pins als dauerhaft fehlerhaft gilt und der Pin für das Failover verworfen wird.
PIN_DROP_GRACE_MS 20000 open-sse/services/combo.ts Anti-Flapping-Zeitfenster (ms), das kurze, vorübergehende Abkühlphasen toleriert, bevor ein Kontext-Cache-Pin verworfen wird.
Szenario Konfiguration
Lang andauernde Codegenerierung REQUEST_TIMEOUT_MS=900000 (15 Min.)
Gesamtlaufzeit des Streams begrenzen STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 Min.)
Schneller Fehlerabbruch für Produktions-API API_BRIDGE_PROXY_TIMEOUT_MS=10000
Modelle mit erweitertem Denkprozess STREAM_IDLE_TIMEOUT_MS=300000 (5 Min. zwischen Chunks)

Das Protokollierungssystem schreibt sowohl in stdout als auch in rotierende Protokolldateien. Die gesamte Konfiguration wird aus src/lib/logEnv.ts gelesen.

Variable Standardwert Beschreibung
APP_LOG_LEVEL info Minimale Protokollierungsstufe: debug, info, warn, error.
APP_LOG_FORMAT text Ausgabeformat: text (menschenlesbar) oder json (strukturiert).
APP_LOG_TO_FILE true Protokolle zusätzlich zu stdout in eine Datei schreiben.
APP_LOG_FILE_PATH logs/application/app.log Pfad der Protokolldatei (relativ zum Projektstammverzeichnis oder zu DATA_DIR).
APP_LOG_MAX_FILE_SIZE 50M Maximale Dateigröße vor der Rotation. Zulässige Werte: 50M, 1G, 512K oder reine Byteangaben.
APP_LOG_RETENTION_DAYS 7 Anzahl der Tage, für die rotierte Anwendungsprotokolldateien aufbewahrt werden.
APP_LOG_MAX_FILES 20 Maximale Anzahl an Sicherungen rotierter Protokolldateien.
CALL_LOG_RETENTION_DAYS 7 Anzahl der Tage, für die Anfrage-/Aufrufprotokolleinträge in der Datenbank aufbewahrt werden.
CALL_LOG_MAX_ENTRIES 10000 Maximale Anzahl an Aufrufprotokolleinträgen im In-Memory-Puffer.
CALL_LOGS_TABLE_MAX_ROWS 100000 Maximale Zeilenanzahl in der SQLite-Tabelle call_logs vor der Bereinigung.
ENABLE_REQUEST_LOGS (nicht gesetzt) Detaillierte Anfrageprotokollierung unabhängig von der Dashboard-Einstellung aktivieren oder deaktivieren.
MAX_PENDING_REQUEST_AGE_MS 3600000 (1 Stunde) Maximales Alter verwaister aktiver Anfrageprotokolleinträge vor der In-Memory-Bereinigung.
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS false Stream-Blöcke in Pipeline-Artefakten speichern, wenn call_log_pipeline_enabled=true gilt. Opt-in (true) – standardmäßig deaktiviert, um Speicherplatz zu sparen.
CALL_LOG_PIPELINE_MAX_SIZE_KB 512 Maximale Größe eines Pipeline-Aufrufprotokollartefakts in KB, wenn call_log_pipeline_enabled=true gilt.
PROXY_LOGS_TABLE_MAX_ROWS 100000 Maximale Zeilenanzahl in der SQLite-Tabelle proxy_logs vor der Bereinigung.
PROXY_LOG_INCLUDE_IPS false Client-/Egress-IP-Adressen und Kontopräfixe in [ProxyEgress]-Konsolenprotokolle aufnehmen. Die Proxy-Protokolldatensätze im Dashboard und in der Datenbank enthalten weiterhin alle Details.
APP_LOG_ROTATION_CHECK_INTERVAL_MS 60000 (1 Min.) Intervall, in dem src/lib/logRotation.ts die Größe der aktiven Protokolldatei erneut überprüft.
CHAT_LOG_TEXT_LIMIT 65536 Maximale Zeichenfolgenlänge, die in Chat-Protokollartefakten beibehalten wird (standardmäßig 64 KB).
CHAT_LOG_ARRAY_TAIL_ITEMS 128 Anzahl der Array-Elemente vom Ende, die beim Kürzen von Chat-Protokollnutzdaten beibehalten werden.
CHAT_LOG_MAX_DEPTH 6 Maximale Verschachtelungstiefe, ab der Chat-Protokollnutzdaten gekürzt werden.
CHAT_LOG_MAX_OBJECT_KEYS 80 Maximale Anzahl an Objektschlüsseln, die in Chat-Protokollnutzdaten beibehalten werden (0 = unbegrenzt).
CHAT_LOG_MAX_BODY_KB 1024 Größe des gesamten Anfrage-/Antworttexts (KB), ab der er anstelle der vollständigen Kopie durch eine einfache Zusammenfassung ersetzt wird. Erhöhen Sie diesen Wert, wenn bei langen agentischen Unterhaltungen im Dashboard ein Platzhalter anstelle der tatsächlichen Nachrichten angezeigt wird.
CHAT_DEBUG_FILE false Wenn true, überspringt serializeArtifactForStorage die größenbasierte Kürzung. Nur zur Fehlersuche.

Variable Standardwert Beschreibung
OMNIROUTE_MEMORY_MB automatisch (Bare Metal); 1024 im Docker-Image Empfohlenes Heap-Limit für Docker/eigenständiges V8 (MB). Wenn nicht festgelegt, wird es dynamisch kalibriert (~35 % des System-RAM, begrenzt auf [512, 4096]); 512 ist nur dann die Untergrenze, wenn der Gesamtspeicher nicht ausgelesen werden kann. Bei run-standalone.mjs (Docker CMD) wird ein expliziter Wert als --max-old-space-size angehängt und hat Vorrang vor einem widersprüchlichen NODE_OPTIONS-Heap-Flag (letztes V8-Flag). omniroute serve bevorzugt weiterhin ein vorhandenes NODE_OPTIONS-Heap-Limit (#5238). Legen Sie nicht beide auf unterschiedliche Werte fest — der Prozess protokolliert eine Warnung, die beide Werte und den verwendeten Wert nennt. Das offizielle Docker-Image setzt immer 1024, daher wird die Kalibrierung dort nie ausgeführt. /v1/responses für Coding-Agenten benötigt 8192–12288 plus cgroup-Spielraum — siehe Docker-Leitfaden — Laufzeit-RAM.
PROMPT_CACHE_MAX_SIZE 50 Maximale Anzahl zwischengespeicherter System-Prompt-Einträge.
PROMPT_CACHE_MAX_BYTES 2097152 (2 MB) Maximale Gesamtgröße des Prompt-Caches.
PROMPT_CACHE_TTL_MS 300000 (5 Min.) TTL eines Prompt-Cache-Eintrags.
SEMANTIC_CACHE_MAX_SIZE 100 Maximale Anzahl zwischengespeicherter Antworten mit temperature=0.
SEMANTIC_CACHE_MAX_BYTES 4194304 (4 MB) Maximale Gesamtgröße des semantischen Caches.
SEMANTIC_CACHE_TTL_MS 1800000 (30 Min.) TTL eines Eintrags im semantischen Cache.
OMNIROUTE_CORPUS_CACHE_SIZE 5 Stammverzeichnisse lokaler Korpora, für die gleichzeitig ein aktiver In-Memory-Index vorgehalten wird (src/lib/localCorpus/configured.ts). LRU: Beim Erreichen des Limits wird der Index des am längsten nicht verwendeten Stammverzeichnisses entfernt und bei dessen nächster Abfrage neu erstellt. Wird auf einen Mindestwert von 1 begrenzt; bei einem nicht numerischen Wert wird der Standardwert verwendet.
STREAM_HISTORY_MAX 50 Maximale Anzahl der letzten Stream-Ereignisse im Puffer der Dashboard-Liveansicht.
CONTEXT_LENGTH_DEFAULT 128000 Globaler Rückfallwert für die maximale Kontextlänge von Modellen ohne explizite Konfiguration.
USAGE_TOKEN_BUFFER 100 Zusätzlicher Token-Spielraum, der bei der Überwachung von Nutzungskontingenten reserviert wird.
Variable Standardwert Beschreibung
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS nicht festgelegt Projektdatei .rtk/filters.json ohne .rtk/trust.json-Hash vertrauen. Nur in einer kontrollierten lokalen Entwicklungsumgebung verwenden.

Event-Loop-Kosten von Speicher, Skills und Token-Aktualisierung (#10349)

Abschnitt betitelt „Event-Loop-Kosten von Speicher, Skills und Token-Aktualisierung (#10349)“

OmniRoute ist ein einzelner Node-Prozess. Speicherextraktion/-abruf, Skill-Injektion und Anbieter-Token-Aktualisierung werden in derselben Event Loop wie GET /healthz und das Dashboard ausgeführt. Sie laufen nicht in einem Worker-Thread.

Aufgabe Code Standard Steuerung durch Betreiber
Speicherextraktion/-abruf src/lib/memory/ Dashboard memoryEnabled (standardmäßig aktiviert) Unter Einstellungen → Speicher deaktivieren. Es gibt keinen separaten Kill-Switch per Umgebungsvariable, außer die Funktion in den Einstellungen zu deaktivieren.
Skills-Injektion src/lib/skills/injection.ts Dashboard skillsEnabled (standardmäßig aktiviert) Unter Einstellungen → Speicher/Skills (skillsEnabled) deaktivieren. Die unten aufgeführten Sandbox-Optionen begrenzen lediglich die Ausführung, nachdem die Injektion bereits aktiviert wurde.
Token-Aktualisierung src/sse/services/tokenRefresh.ts Für verbundene OAuth-/Web-Anbieter aktiviert Den Anbieter trennen oder die Tokens gültig halten; derzeit gibt es keine Umgebungsvariable TOKEN_REFRESH=0.

Wenn /healthz auf einem ansonsten nicht ausgelasteten System langsam ist, deaktivieren Sie zuerst Speicher und Skills und prüfen Sie anschließend die Katalog-/Komprimierungslast (#10303, #9685). Diese Funktionen geben an await-Punkten die Kontrolle ab, konkurrieren aber weiterhin um den einen Thread.

Optionen für Embedding-Schicht, Vektorspeicher und Reranking des persistenten Speichersubsystems (src/lib/memory/).

Variable Standard Beschreibung
MEMORY_EMBEDDING_CACHE_TTL_MS 300000 (5 Min.) TTL für den In-Memory-Embedding-Cache (pro Quell-/Modell-/Dimensionssignatur).
MEMORY_EMBEDDING_CACHE_MAX 1000 Maximale Anzahl der im Embedding-Cache vorgehaltenen LRU-Einträge.
MEMORY_TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 HF-Repository-ID für die optionale lokale MiniLM-Pipeline von @huggingface/transformers (~23 MB int8, ~400 MB RAM).
MEMORY_STATIC_MODEL minishlab/potion-base-8M HF-Repository-ID für den statischen Potion-/Model2Vec-Embedder mit Nachschlagetabelle. Wird bei Bedarf in das Cache-Verzeichnis heruntergeladen.
MEMORY_STATIC_CACHE_DIR <DATA_DIR>/embeddings Verzeichnis zum Zwischenspeichern der statischen Potion-Modelldateien. Liegt standardmäßig unter DATA_DIR, wenn nicht festgelegt.
HF_HUB_ENDPOINT https://huggingface.co Überschreibt die von staticPotion.ts verwendete Basis-URL des Hugging Face Hub (z. B. einen Mirror-Endpunkt für Air-Gap-Umgebungen).
MEMORY_VEC_TOP_K 20 Standardmäßiges Top-K für die Brute-Force-Vektorsuche mit sqlite-vec in src/lib/memory/vectorStore.ts.
MEMORY_RRF_K 60 Reciprocal-Rank-Fusion-Konstante k für den hybriden Abruf über FTS5 und Vektorsuche (sqlite-vec-Rezept).
VECTOR_STORE_DISABLE_VEC false Test-/Diagnoseschnittstelle in getVectorStore() (src/lib/memory/vectorStore.ts): Bei true wird der Vektorspeicher auf null gesetzt (simuliert eine Cloud-/WASM-Umgebung ohne sqlite-vec), wodurch der Speicherabruf auf die FTS5-Schlüsselwortsuche zurückfällt. In der Produktion nicht setzen.
NOTION_API_KEY (nicht gesetzt) API-Schlüssel für das Notion-Backend (wird von der Voreinstellung für bekannte Backends in genericBackend.ts verwendet).
NOTION_API_URL https://api.notion.com/v1 Basis-URL für die Notion-API (kann für selbst gehostete Notion-Alternativen überschrieben werden).
OBSIDIAN_API_KEY (nicht gesetzt) API-Schlüssel für das Obsidian-Vault-Backend (wird von der Voreinstellung für bekannte Backends in genericBackend.ts verwendet).
OBSIDIAN_API_URL http://localhost:27123 Basis-URL für die Obsidian-Vault-API (kann für einen entfernten Vault überschrieben werden).
MEMORY_TYPED_DECAY_ENABLED false Hauptschalter für den typisierten TV6-Speicherverfall. Opt-in (standardmäßig deaktiviert) — der Bereinigungslauf löscht verfallene Erinnerungen. Ist die Funktion deaktiviert, dienen access_count/last_accessed_at ausschließlich der Telemetrie und es wird nie etwas gelöscht.
MEMORY_TYPED_DECAY_EPISODIC_DAYS 30 TTL (in Tagen), nach der eine ungenutzte Erinnerung vom Typ episodic verfällt. 0 schützt auch episodische Erinnerungen vor dem Verfall. Dauerhafte Typen (factual/procedural/semantic) sind immer geschützt. Die Verfallsfrist wird anhand von last_accessed_at neu berechnet.
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY 3 Eine Erinnerung, die mindestens (>=) so oft injiziert wurde, wird unabhängig vom Typ vor dem Verfall geschützt. 0 deaktiviert den Schutz durch Zugriffe.
MEMORY_TYPED_DECAY_SWEEP_INTERVAL 0 (deaktiviert) Intervall (in Sekunden) für den optionalen periodischen Verfallsbereinigungslauf in src/lib/memory/typedDecay.ts. 0/nicht gesetzt = kein periodischer Bereinigungslauf. Doppelt optional: Erfordert zusätzlich MEMORY_TYPED_DECAY_ENABLED=true.
OMNIROUTE_STRICT_SYSTEM_PROVIDERS (nicht gesetzt) Durch Kommas getrennte Anbieter-IDs (ohne Beachtung der Groß-/Kleinschreibung), die eine system-Nachricht nur an Index 0 akzeptieren (src/lib/memory/injection.ts). Bei diesen ist das Cache-sichere Einfügen des Speichers in die Mitte des Arrays in mehrstufigen Unterhaltungen unsicher; deshalb wird der Speicher stattdessen mit der führenden Systemnachricht zusammengeführt bzw. dieser vorangestellt. Standardmäßig nur xiaomi-mimo/mimo; für selbst gehostete OpenAI-kompatible Endpunkte erweitern (z. B. Qwen3.5+/3.6), deren Chat-Vorlage dieselbe Einschränkung auf eine einzelne führende Systemnachricht erzwingt.

128 eignet sich nur für das Dashboard. Coding-Agenten verursachen bei dieser Heap-Größe während langer /v1/responses einen FATAL ERROR. Verwenden Sie dieses Beispiel nicht als Claude-/Codex-/Grok-Gateway.

Terminal-Fenster
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

Automatische Synchronisierung der Modellpreisdaten aus externen Quellen.

Variable Standardwert Quelldatei Beschreibung
PRICING_SYNC_ENABLED false src/lib/pricingSync.ts Optionale regelmäßige Preissynchronisierung.
PRICING_SYNC_INTERVAL 86400 (24h) src/lib/pricingSync.ts Synchronisierungsintervall in Sekunden.
PRICING_SYNC_SOURCES litellm src/lib/pricingSync.ts Durch Kommas getrennte Datenquellen.

Variable Standardwert Quelldatei Beschreibung
ARENA_ELO_SYNC_ENABLED true src/shared/constants/featureFlagDefinitions.ts Regelmäßige ELO-Synchronisierung der Arena-AI-Bestenliste, konfigurierbar über die Feature-Flags im Dashboard oder mit false deaktivierbar.
MODELS_CATALOG_PREFIX_MODE dual src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts Für Modell-IDs in GET /v1/models verwendete Präfixform. dual gibt für jedes Modell sowohl das kurze Alias-Präfix als auch das kanonische Anbieterpräfix an (Abwärtskompatibilität — der Katalog wird dadurch ungefähr verdoppelt); alias gibt eine ID pro Modell aus; canonical gibt nur das vollständige Anbieter-ID-Präfix aus (Anbieter, deren Alias bereits der kanonischen ID entspricht, behalten ihren einzelnen Eintrag). Clients können dies pro Anfrage mit ?prefix=alias überschreiben. Siehe API_REFERENCE.
ARENA_ELO_SYNC_INTERVAL 86400 (24h) src/lib/arenaEloSync.ts Synchronisierungsintervall in Sekunden.

PromptQL-Playground-Anbieter (inoffiziell/experimentell)

Abschnitt betitelt „PromptQL-Playground-Anbieter (inoffiziell/experimentell)“

Durch Reverse Engineering entwickelte GraphQL-Sitzungsbrücke für prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Alle Angaben sind optional — standardmäßig werden die öffentlichen Playground-Endpunkte verwendet; Überschreibungen sind nur für eine selbst gehostete oder alternative PromptQL-Bereitstellung erforderlich.

Variable Standardwert Quelldatei Beschreibung
PROMPTQL_GRAPHQL_ENDPOINT https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql open-sse/executors/promptql.ts Für Chat- und Sitzungsvorgänge verwendeter GraphQL-Endpunkt.
PROMPTQL_CREDITS_ENDPOINT https://data.pro.ql.app/v1/graphql open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts GraphQL-Endpunkt zur Abfrage des Guthabens und der Nutzung.
PROMPTQL_TOKEN_REFRESH_URL https://auth.pro.ql.app/ddn/project/token open-sse/executors/promptql.ts Endpunkt für die Token-Aktualisierung nach bestem Bemühen.
PROMPTQL_POLL_TIMEOUT_MS 180000 open-sse/executors/promptql.ts Maximale Dauer (ms) für die Abfrage von thread_events, bevor eine Zeitüberschreitung eintritt.

HyperAgent-Webanbieter (inoffiziell/experimentell)

Abschnitt betitelt „HyperAgent-Webanbieter (inoffiziell/experimentell)“

Durch Reverse Engineering entwickelte Sitzungsbrücke für hyperagent.com (src/shared/constants/providers/web-cookie.ts). Optional — standardmäßig wird der öffentliche Abrechnungs-/Nutzungsendpunkt verwendet; überschreiben Sie dies nur für eine selbst gehostete/alternative HyperAgent-Bereitstellung.

Variable Standardwert Quelldatei Beschreibung
HYPERAGENT_USAGE_URL https://hyperagent.com/api/settings/billing/usage open-sse/services/usage/hyperagent.ts Endpunkt zum Abrufen von Guthabenblöcken für Abrechnung/Nutzung.

Abfrage des persönlichen USD-Guthabens und der Kilo-Pass-Nutzung für den Kilo-Code-Anbieter. Optional — standardmäßig wird die öffentliche Kilo-API verwendet; überschreiben Sie dies nur für eine Relay-/Test-Fixture. Die Authentifizierung verwendet das vorhandene OAuth-Zugriffstoken der Verbindung.

Variable Standardwert Quelldatei Beschreibung
KILO_API_URL https://api.kilo.ai open-sse/services/usage/kilocode.ts Basis-URL zum Abrufen des persönlichen Kilo-Code-Guthabens und der Kilo-Pass-Nutzung.

Adobe-Firefly-Webanbieter (inoffiziell/experimentell)

Abschnitt betitelt „Adobe-Firefly-Webanbieter (inoffiziell/experimentell)“

Browsergesteuerte Sitzungsaktualisierung für den Adobe-Firefly-Webanbieter (open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts, open-sse/services/adobeFireflyClient.ts). Optional — alle Standardwerte sind auf eine normale Desktopinstallation abgestimmt.

In #9255 entfernt. Die alte, über CDP angebundene Chrome-Laufzeit (adobeFireflyChromeRuntime.ts) wurde durch einen Playwright-Dienst für die Browseranmeldung ersetzt, und ihre Konfigurationsoptionen existieren nicht mehr. Die Variablen ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART sowie ADOBE_FIREFLY_LOGIN_WAIT_MS und ADOBE_FIREFLY_FORTER_WAIT_MS werden an keiner Stelle in der Codebasis ausgelesen — ihre Festlegung hat keine Auswirkung.

Variable Standardwert Quelldatei Beschreibung
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Auf 1 setzen, um Chrome im echten Headless-Modus auszuführen (funktioniert bekanntermaßen nicht für die Generierung; nur zur Fehlerbehebung).
ADOBE_FIREFLY_BROWSER_REFRESH 1 open-sse/services/adobeFireflySession.ts Aktiviert/deaktiviert das proaktive Aufwärmen des Browsers. 0 deaktiviert das proaktive Aufwärmen (die 408-Wiederherstellung innerhalb eines Batches bleibt aktiv).
ADOBE_FIREFLY_SESSION_DISK 1 open-sse/services/adobeFireflySession.ts Auf 0 setzen, um das Speichern der Adobe-Firefly-Sitzung auf dem Datenträger zu deaktivieren.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS (nicht gesetzt) open-sse/services/adobeFireflySession.ts Erzwungener Mindestabstand (ms) zwischen aufeinanderfolgenden Übermittlungen; überschreibt den integrierten Standardwert.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS (nicht gesetzt) open-sse/services/adobeFireflySession.ts Zusätzlicher Abstand (ms), der nach einem erfolgreichen Batch hinzugefügt wird; überschreibt den integrierten Standardwert.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS (nicht gesetzt) open-sse/services/adobeFireflyClient.ts Basisverzögerung (ms) vor dem Übermitteln einer Generierungsanfrage; überschreibt den integrierten Standardwert.

Variable Standardwert Quelldatei Beschreibung
MODELS_DEV_SYNC_ENABLED (nicht gesetzt) src/lib/modelsDevSync.ts Explizite Außerkraftsetzung für die Preissynchronisierung von models.dev. Nicht gesetzt = Einstellung unter Einstellungen > KI (modelsDevSyncEnabled) berücksichtigen. 0/false/off/no hat Vorrang vor der DB und überspringt sowohl die regelmäßige Synchronisierung als auch SQL-/JSON-Scans durch getModelsDevPricing() (zur Wiederherstellung, wenn das Dashboard in derselben Ereignisschleife festhängt). 1/true/on/yes erzwingt die Synchronisierung. Beim Speichern/Löschen von Preisen wird weiterhin backupDbFile("pre-write") aufgerufen; dies führt jedoch bei aktiver 60-Minuten-Drosselung oder gesetztem DISABLE_SQLITE_AUTO_BACKUP keine Aktion aus.
MODELS_DEV_SYNC_INTERVAL 86400 (24 Std.) src/lib/modelsDevSync.ts Synchronisierungsintervall für den Modellkatalog während der Entwicklung in Sekunden.
CONTEXT_WINDOW_RECONCILE_INTERVAL 86400 (24 Std.) src/lib/contextWindowResolver.ts Intervall (Sekunden) für den selbstkorrigierenden Kontextfenster-Abgleich (5004): Fixiert vom Anbieter deklarierte Fenster aus der /models-Erkennung als auto:discovery-Überschreibungen, wenn sie vom Katalog abweichen. Zum Deaktivieren auf 0 setzen. Verwendet bereits synchronisierte Daten erneut (kein neuer Abruf); überschreibt niemals manual-Überschreibungen.

Variable Standardwert Quelldatei Beschreibung
OPENROUTER_CATALOG_TTL_MS 86400000 (24 Std.) src/lib/catalog/openrouterCatalog.ts Cache-TTL des OpenRouter-Modellkatalogs.
MODEL_CATALOG_INCLUDE_NAMES true src/shared/constants/featureFlagDefinitions.ts Benutzerfreundliche name-Felder in /v1/models-Antworten einschließen. Für Clients deaktivieren, die ausschließlich IDs erwarten.
CATALOG_BUILD_TIMEOUT_MS 8000 (8 Sek.) src/app/api/v1/models/catalogCache.ts Maximale Wartezeit im Cold Path für einen zusammengefassten Neuaufbau des GET /v1/models-Katalogs (#12627). Bei einem Timeout wird eine letzte gültige 200-Antwort zurückgegeben, sofern eine vorhanden ist.
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS 2592000000 (30 Tage) src/lib/db/models/activeSyncedCatalog.ts Alter, ab dem die synchronisierte Modellliste einer Verbindung für das Routing nicht mehr maßgeblich ist und auf die Registry zurückgegriffen wird (#12849). Zeilen ohne Zeitstempel gelten als veraltet.
NANOBANANA_POLL_TIMEOUT_MS 120000 open-sse/handlers/imageGeneration.ts Maximale Wartezeit für NanoBanana-Bildgenerierungsaufträge.
NANOBANANA_POLL_INTERVAL_MS 2500 open-sse/handlers/imageGeneration.ts Abfrageintervall für NanoBanana-Aufträge.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyUpscale.ts Basisverzögerung für das exponentielle Backoff bei erneuten Übermittlungsversuchen für Adobe-Firefly-Upscaling.
AWS_REGION (nicht gesetzt) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Region, die zum Erstellen von AWS-Bedrock-Endpunkten (Kiro, Audio) verwendet wird.
AWS_DEFAULT_REGION (nicht gesetzt) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Ausweichwert, wenn AWS_REGION nicht gesetzt ist.
CLOUDFLARE_ACCOUNT_ID (nicht gesetzt) open-sse/executors/cloudflare-ai.ts Konto-ID für Cloudflare Workers AI.
CLOUDFLARE_PLAYGROUND_CHROME_PATH (nicht gesetzt) open-sse/executors/cloudflare-playground.ts Vollständiger Pfad zur Desktop-Chrome-Binärdatei für den Cloudflare-AI-Playground-Executor; wird verwendet, wenn die Headless-Fingerabdruckprüfung das in Playwright enthaltene Chromium blockiert.
CLOUDFLARE_API_BASE https://api.cloudflare.com/client/v4 src/app/api/settings/proxy/cloudflare-deploy/route.ts Überschreibt die vom Workers-Relay-Bereitstellungstool des Proxy-Pools verwendete Cloudflare-REST-API-Basis (#4640 / 9router#1360).
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx Standardname des Worker-Projekts, der im Dialog „Relay bereitstellen“ des Proxy-Pools vorgeschlagen wird.
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Auf false setzen, um die Option für das Cloudflare-Workers-Relay auf der Registerkarte „Proxy-Pool“ auszublenden.
CLOUDFLARED_BIN automatische Erkennung src/lib/cloudflaredTunnel.ts Benutzerdefinierter Pfad zur cloudflared-Binärdatei.
CLOUDFLARED_PROTOCOL http2 src/lib/cloudflaredTunnel.ts Tunnel-Transportprotokoll: http2 (Standard), quic oder auto.
CLOUDFLARED_CONFIG (nicht gesetzt) src/lib/cloudflaredTunnel.ts Pfad zu einer lokal verwalteten cloudflared-config.yml (mit tunnel:, credentials-file:, ingress:). Wenn gesetzt, führt OmniRoute tunnel --config &lt;path&gt; run (benannter Tunnel) anstelle eines temporären Quick Tunnels aus.
CLOUDFLARED_HOSTNAME (aus der Konfigurations-Ingress-Regel) src/lib/cloudflaredTunnel.ts Überschreibung für den öffentlichen Hostnamen des benannten Tunnels (z. B. ai.example.com), der als publicUrl/apiUrl gemeldet wird. Wenn nicht gesetzt, wird er aus dem ersten ingress-Hostnamen der Konfiguration gelesen.
DENO_DEPLOY_API_BASE https://api.deno.com/v2 src/app/api/settings/proxy/deno-deploy/route.ts Überschreibt die vom Proxy-Pool-Relay-Deployment verwendete Basis-URL der Deno Deploy REST API (#4643 / 9router#1437).
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT omniroute-deno-relay src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx Standardmäßig im Proxy-Pool-Modal „Relay bereitstellen“ vorgeschlagener Deno-Deploy-App-Name.
NEXT_PUBLIC_DENO_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Auf false setzen, um die Deno-Deploy-Relay-Option auf der Registerkarte „Proxy-Pool“ auszublenden.
SEARCH_CACHE_TTL_MS 300000 (5 Min.) open-sse/services/searchCache.ts TTL für die Zwischenspeicherung von Antworten der Such-API (Perplexity, Brave usw.).
ENABLE_CC_COMPATIBLE_PROVIDER false src/shared/utils/featureFlags.ts Blendet die experimentelle Benutzeroberfläche für CC-kompatible Anbieter für reine Claude-Code-Relays ein.
NINEROUTER_HOST 127.0.0.1 open-sse/executors/ninerouter.ts Überschreibt den Host, auf dem die eingebettete 9router-Instanz lauscht.
NINEROUTER_PORT 20130 open-sse/executors/ninerouter.ts Überschreibt den Port, auf dem die eingebettete 9router-Instanz lauscht.
EMBED_WS_PROXY_HOST 127.0.0.1 src/lib/services/embedWsProxy.ts Bindungs-Host für den WebSocket-Proxy des eingebetteten Dienstes (standardmäßig nur Loopback).
EMBED_WS_PROXY_PORT 20131 src/lib/services/embedWsProxy.ts Port für den WebSocket-Proxy-Server des eingebetteten Dienstes.
CLIPROXYAPI_HOST 127.0.0.1 open-sse/executors/cliproxyapi.ts Host der CLIProxyAPI-Bridge (Legacy-Integration).
CLIPROXYAPI_PORT 5544 open-sse/executors/cliproxyapi.ts Port der CLIProxyAPI-Bridge.
CLIPROXYAPI_API_KEY (leer) open-sse/handlers/chatCore/cliproxyapiCredentials.ts Fallback für den Data-Plane-Schlüssel, wenn die Einstellung cliproxyapi_api_key fehlt.
CLIPROXYAPI_MANAGEMENT_KEY (leer) src/lib/services/cliproxyAccountHealth.ts Verwaltungsschlüssel zum Abrufen des Kontostatus von einer extern verwalteten CLIProxyAPI-Instanz.
CLIPROXYAPI_CONFIG_DIR ~/.cli-proxy-api src/lib/versionManager/processManager.ts CLIProxyAPI-Konfigurationsverzeichnis.
CLIPROXY_BIND_HOST 127.0.0.1 docker-compose.yml Host-Schnittstelle, auf der docker-compose den cliproxyapi-Sidecar veröffentlicht (#12578). Sein Daten-Volume enthält OAuth-/API-Anmeldedaten der Anbieter, und das festgelegte Image bietet keine umgebungsvariablenbasierte Überschreibung der Data-Plane-api-keys (nur eine eingebundene config.yaml), sodass 0.0.0.0 einen Dienst mit Anmeldedaten im gesamten LAN zugänglich macht.
MUX_SERVICE_PORT 8322 src/lib/services/bootstrap.ts Überschreibt den Port, auf dem der eingebettete Mux-Daemon (coder/mux) zur Agentenorchestrierung lauscht (immer 127.0.0.1).
OPENWA_SERVICE_PORT 8323 src/lib/services/bootstrap.ts Überschreibt den Port, auf dem der eingebettete open-wa-Daemon (WhatsApp-Web-Automatisierung) lauscht (immer 127.0.0.1).
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Bindungs-/Verbindungs-Host des eingebetteten Dario-Dienstes (standardmäßig nur Loopback).
DARIO_PORT 3456 open-sse/executors/dario.ts Port des eingebetteten Dario-Dienstes.
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Bindungs-/Verbindungs-Host des eingebetteten Dario-Dienstes (standardmäßig nur Loopback).
DARIO_PORT 3456 open-sse/executors/dario.ts Port des eingebetteten Dario-Dienstes.
LOCAL_HOSTNAMES (leer) open-sse/config/providerRegistry.ts Zusätzliche, durch Kommas getrennte Hostnamen, die als „lokal“ behandelt werden (Docker-Dienstnamen usw.).

ENABLE_CC_COMPATIBLE_PROVIDER ist ausschließlich für Drittanbieter-Relays vorgesehen, die nur Claude Code-Clients akzeptieren. OmniRoute schreibt Anfragen so um, dass diese Relays sie akzeptieren. Wenn du lediglich die Claude Code CLI verwenden möchtest oder dir nicht sicher bist, worum es sich bei diesen Relays handelt, lass diese Option deaktiviert und füge stattdessen einen regulären Anthropic-kompatiblen Anbieter hinzu.


Variable Standardwert Quelldatei Beschreibung
PROXY_FAST_FAIL_TIMEOUT_MS 2000 src/lib/proxyHealth.ts Zeitlimit für Fast-Fail-Zustandsprüfungen.
PROXY_LATENCY_WINDOW_HOURS 3 src/lib/db/proxies.ts Zeitfenster (in Stunden) zur Berechnung der durchschnittlichen Latenz von Proxy-Kandidaten bei der latenzoptimierten Pool-Strategie.
PROXY_HEALTH_CACHE_TTL_MS 30000 src/lib/proxyHealth.ts Cache-TTL für Ergebnisse von Zustandsprüfungen.
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS 2000 src/lib/proxyHealth.ts Cache-TTL für fehlgeschlagene Proxy-Zustandsprüfungen. Dieser Wert sollte kürzer als PROXY_HEALTH_CACHE_TTL_MS sein, damit vorübergehende Proxy-Zeitüberschreitungen bei hoher Parallelität schnell erneut geprüft werden, ohne Fast-Fail für tatsächlich ausgefallene Proxys zu deaktivieren.
PROXY_HEALTH_ENABLED true src/lib/proxyHealth/scheduler.ts Auf false setzen, um den Hintergrund-Scheduler für den Proxy-Zustand zu deaktivieren, der registrierte Proxys regelmäßig prüft.
PROXY_HEALTH_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Prüfintervall des Hintergrund-Schedulers für den Proxy-Zustand in ms (mindestens 60000).
PROXY_HEALTH_RECOVERY_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Intervall des Wiederherstellungsdurchlaufs im Hintergrund in ms: Legt fest, wie oft zuvor fehlerhafte Proxys erneut geprüft werden, damit ein wiederhergestellter Proxy ohne Neustart wieder in die Rotation aufgenommen wird. Werte unter 60000 werden auf den Standardwert zurückgesetzt.
PROXY_HEALTH_TEST_URL https://httpbin.org/ip src/lib/proxyHealth/probeTarget.ts Ziel für Erreichbarkeitsprüfungen, das vom Scheduler und vom Endpunkt /api/settings/proxies/auto-test verwendet wird. Legen Sie eine interne/selbst gehostete URL fest, um den öffentlichen Standardwert zu vermeiden.
PROXY_HEALTH_TEST_CONCURRENCY 10 src/lib/proxyHealth/probeTarget.ts Anzahl der gleichzeitig pro Batch gestarteten Prüfungen, gemeinsam verwendet vom Scheduler und vom Endpunkt /api/settings/proxies/auto-test. Wird auf mindestens 1 abgerundet und ist auf 50 begrenzt.
PROXY_HEALTH_TEST_STAGGER_MS 100 src/lib/proxyHealth/probeTarget.ts Verzögerung in ms zwischen dem Start zweier Prüfungen innerhalb eines Batches. Ohne diese Verzögerung startet der gesamte Batch gleichzeitig, und eine gemeinsam genutzte Egress-IP kann bei einem ratenbegrenzten Ziel eine Begrenzung auslösen. Auf 0 setzen, um die zeitliche Staffelung zu deaktivieren; auf 5000 begrenzt.
PROXY_HEALTH_USE_PROVIDER_TARGET true src/lib/proxyHealth/providerProbeTarget.ts Auf “false” setzen, um die Prüfung des tatsächlichen Hosts des einem Proxy zugewiesenen Anbieters (GET /models, kein API-Schlüssel) zu unterbinden und stattdessen immer PROXY_HEALTH_TEST_URL zu verwenden.
PROXY_HEALTH_AUTO_DEACTIVATE false src/lib/proxyHealth/statusPolicy.ts Bei false (Standardwert) sind automatisierte Erreichbarkeitsprüfungen (der Scheduler und die Schaltfläche “Alle testen” für /api/settings/proxies/auto-test) schreibgeschützt und ändern niemals den Status eines Proxys — nur der Betreiber legt aktiv/inaktiv fest, sodass ein unzuverlässiges Prüfergebnis einen zugewiesenen Proxy nicht unbrauchbar machen kann (#6246). Auf true setzen, um das frühere Testen-und-Setzen-Verhalten wiederherzustellen.
FLUSH_EMPTY_RETRY_ENABLED false src/shared/utils/featureFlags.ts Opt-in-Feature-Flag (siehe FEATURE_FLAGS.md; eine Dashboard-DB-Überschreibung hat Vorrang). Bei true (oder 1, yes) werden leere übersetzte Streaming-Durchläufe über den normalen Anmeldeinformationspfad erneut versucht (bis zu STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX Wiederholungsversuche), anstatt eine leere 200-Antwort oder eine 502-Antwort mit leerem Inhalt zurückzugeben.
PROXY_POOL_EGRESS_OBSERVATION false src/shared/utils/featureFlags.ts Opt-in-Feature-Flag (siehe FEATURE_FLAGS.md; eine Dashboard-DB-Überschreibung hat Vorrang). Bei true (oder 1, yes) wird die schreibgeschützte Beobachtung des ausgehenden Datenverkehrs eines Proxy-Pools unter einem Proxy-Pool im Dashboard angezeigt (unterschiedliche Egress-IPs, Verbindungen und die am häufigsten hinter einer IP beobachtete Anzahl während der letzten 24 Stunden, basierend auf dem Proxy-Protokoll). Wird niemals für das Routing verwendet.
PROXY_AUTO_REMOVE false src/lib/proxyHealth/scheduler.ts Auf true setzen, damit der Scheduler Proxys nach wiederholten aufeinanderfolgenden Fehlern automatisch entfernt.
PROXY_AUTO_REMOVE_AFTER 3 src/lib/proxyHealth/scheduler.ts Anzahl aufeinanderfolgender Fehler, bevor der Scheduler einen Proxy automatisch entfernt (wenn PROXY_AUTO_REMOVE=true).
PROXY_AUTO_DISABLE false src/lib/proxyHealth/scheduler.ts Auf true setzen, damit der Scheduler einen Proxy nach wiederholten aufeinanderfolgenden Fehlern vorübergehend deaktiviert (Status dead, niemals gelöscht), anstatt ihn zu entfernen. Nicht destruktive Alternative zu PROXY_AUTO_REMOVE: Der Proxy wird sofort aus der Pool-/Rotationsauflösung ausgeschlossen (der von der Bereichspoolauflösung verwendete Statusfilter für aktive Proxys schließt ihn bereits aus) und automatisch reaktiviert, sobald seine Prüfungen wieder erfolgreich sind. Verwendet denselben Schwellenwert PROXY_AUTO_REMOVE_AFTER. Wenn beide Flags true sind, hat PROXY_AUTO_REMOVE Vorrang.
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK false src/shared/constants/featureFlagDefinitions.ts Ermöglicht OAuth- und Anbieter-Validierungsabläufen, einen fest zugewiesenen Proxy zu umgehen und eine direkte Verbindung herzustellen, wenn die Vorabprüfung der Proxy-Erreichbarkeit fehlschlägt. Die effektive Priorität lautet: Überschreibung in der Feature-Flags-Datenbank > Umgebungsvariable > Standardwert.
RATE_LIMIT_MAX_WAIT_MS 30000 (30 s) src/lib/resilience/settings.ts Standardbudget für die Wartezeit in der Warteschlange: wie lange eine Anfrage auf einen Anbieter-Slot warten und in der Warteschlange verbleiben darf, bevor sie abgelehnt wird, ohne jemals das Upstream-System zu erreichen. Der Timer wird gelöscht, sobald die Ausführung des Jobs beginnt — die Ausführung wird separat durch RATE_LIMIT_EXECUTION_MAX_WAIT_MS begrenzt. Die Umgebungsvariable legt nur den Standardwert fest: Ein persistierter Wert für resilienceSettings.requestQueue.maxWaitMs und anschließend ein verbindungsspezifischer Wert für rateLimitOverrides.maxWaitMs haben jeweils Vorrang.
RATE_LIMIT_EXECUTION_MAX_WAIT_MS 600000 (10 Min.) open-sse/services/rateLimitManager.ts Obergrenze dafür, wie lange eine zugelassene Anfrage ausgeführt werden darf, bevor ihre Ratenbegrenzungsreservierung abläuft — entkoppelt vom Budget für die Wartezeit in der Warteschlange, damit ein langsamer Abrufstart auf nicht inkrementellen Gateways nicht zu einer Zeitüberschreitung führt (#12027).
RATE_LIMIT_MAX_QUEUE_DEPTH 0 (deaktiviert) open-sse/services/rateLimitManager.ts Obergrenze für die Aufnahme in die Warteschlange: Sobald bereits so viele Anfragen in der Warteschlange stehen, wird die Anfrage mit dem 429-Fehler queue_full abgelehnt. 0 = unbegrenzt (Standardwert).
RATE_LIMIT_AUTO_ENABLE (nicht gesetzt) open-sse/services/rateLimitManager.ts Erzwingt die Aktivierung bzw. Deaktivierung des Sicherheitsnetzes zur automatischen Aktivierung der Ratenbegrenzung unabhängig von der persistierten Dashboard-Einstellung. Akzeptiert true/1/on, um die Aktivierung zu erzwingen, und false/0/off, um die Deaktivierung zu erzwingen.
PROVIDER_COOLDOWN_ENABLED (nicht gesetzt → aus) open-sse/services/providerCooldownTracker.ts Optionales globales, anfrageübergreifendes Cooldown-Tracking für Anbieter/Verbindungen. Standardmäßig AUS (überschneidet sich mit Connection Cooldown / Provider Circuit Breaker). Zum Aktivieren werden true/1/on akzeptiert.
PROVIDER_COOLDOWN_MIN_MS 5000 open-sse/services/providerCooldownTracker.ts Minimales Cooldown (ms), bevor ein fehlgeschlagener Anbieter bzw. eine fehlgeschlagene Verbindung erneut versucht wird. Wird bei aufeinanderfolgenden Fehlern exponentiell skaliert. Wird nur verwendet, wenn PROVIDER_COOLDOWN_ENABLED aktiviert ist.
PROVIDER_COOLDOWN_MAX_MS 300000 (5 Min.) open-sse/services/providerCooldownTracker.ts Obergrenze für das maximale Cooldown (ms), bevor ein fehlgeschlagener Anbieter bzw. eine fehlgeschlagene Verbindung unabhängig davon erneut versucht wird. Wird nur verwendet, wenn PROVIDER_COOLDOWN_ENABLED aktiviert ist.
STREAM_RECOVERY_ENABLED (nicht gesetzt → aus) src/lib/resilience/settings.ts (Initialwert) → open-sse/services/streamRecovery.ts (Logik) Was: transparente Wiederherstellung abgebrochener Upstream-Streams (Portierung von free-claude-code). Hält das anfängliche SSE-Fenster bis zu STREAM_RECOVERY.HOLDBACK_MS (750 ms) zurück, sodass ein Abbruch vor dem Commit — also bevor ein Byte den Client erreicht — unsichtbar erneut geöffnet und versucht wird. Wann aktivieren: bei unzuverlässigen Upstreams, die Streams häufig direkt beim Start ohne Bytes abbrechen; deaktiviert lassen, wenn Sie bei jedem Stream keine zusätzliche Zeit bis zum ersten Token von bis zu 750 ms in Kauf nehmen können. Zum Aktivieren werden true/1/on akzeptiert. Legt den Initialwert für die persistierte Resilience-Einstellung fest; sobald die Dashboard-Einstellung gesetzt wurde, hat diese Vorrang.
STREAM_RECOVERY_MIDSTREAM_ENABLED (nicht gesetzt → aus) src/lib/resilience/settings.ts (Initialwert) → open-sse/services/streamRecovery.ts (Logik) Was: Fortsetzung während des Streams (Phase 4.4) — nach einem Abbruch nach dem Commit (Bytes haben den Client bereits erreicht) wird eine erneute Anfrage mit dem Teiltext als Assistant-Prefill gesendet und das fehlende Suffix angefügt. Nur für OpenAI-kompatible Klartext-Streams; wird niemals ausgelöst, während ein Tool-Aufruf läuft. Wann aktivieren: bei langen Generierungen, die mitten in der Antwort abbrechen, sofern Sie akzeptieren, dass der wiederhergestellte Rest als ein einzelner Block statt Token für Token eintrifft. Unabhängig von STREAM_RECOVERY_ENABLED (anderes Risikoprofil). Zum Aktivieren werden true/1/on akzeptiert.
STREAM_THROUGHPUT_WATCHDOG_ENABLED (nicht gesetzt → aus) src/lib/resilience/settings.ts → open-sse/services/throughputWatchdog.ts Optionaler Watchdog für nutzbare Ausgaben aktiver Streams. Erkennt Streams, die weiterhin Chunks senden, aber unter der konfigurierten Ausgaberate des Assistant bleiben; Heartbeats, Nutzungsereignisse, leere Deltas sowie Tool- und Reasoning-Phasen werden nicht fälschlich als Fortschritt gewertet. Unabhängig von Leerlauf- und festen Deadline-Timeouts.
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS 30000 src/lib/resilience/settings/normalize.ts Karenzzeit vor der Durchsatzbewertung, begrenzt auf 0–600000 ms.
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS 30000 src/lib/resilience/settings/normalize.ts Gleitendes Fenster für nutzbare Ausgaben, begrenzt auf 1000–600000 ms; vor einem Abbruch muss ein vollständiges Fenster verstrichen sein.
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND 4 src/lib/resilience/settings/normalize.ts Minimale UTF-8-Byterate der Assistant-Ausgabe (konservative Token-Näherung), begrenzt auf 1–1000000.
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES 1 src/lib/resilience/settings/normalize.ts Kleinste von null verschiedene Stichprobe nutzbarer Ausgaben, die als messbar gilt, begrenzt auf 1–1000000 Byte.
HEALTHCHECK_STAGGER_MS 3000 src/lib/tokenHealthCheck.ts Staffelungsintervall (ms) zwischen den Zustandsprüfungen der Anbieter-Token beim Start.
HEALTHCHECK_JITTER_MIN_MS 500 src/lib/tokenHealthCheck.ts Minimale zufällige Verzögerung (ms), die zusätzlich zu HEALTHCHECK_STAGGER_MS zwischen den Zustandsprüfungen der Anbieter-Token eingefügt wird, um Lastspitzen zu vermeiden (Issue #1220).
HEALTHCHECK_JITTER_MAX_MS 5000 src/lib/tokenHealthCheck.ts Maximale zufällige Verzögerung (ms), die zusätzlich zu HEALTHCHECK_STAGGER_MS zwischen den Zustandsprüfungen der Anbieter-Token eingefügt wird, um Lastspitzen zu vermeiden (Issue #1220).
HEALTHCHECK_BATCH_SIZE 20 src/lib/tokenHealthCheck.ts Batch-Größe für parallele Prüfungen beim anfänglichen Durchlauf der Token-Zustandsprüfung; größere Werte prüfen mehr Verbindungen parallel, kleinere Werte reduzieren Lastspitzen (Issue #7875, Regression von #7719).
REQUEST_RETRY 2 src/sse/services/cooldownAwareRetry.ts Anzahl automatischer Wiederholungsversuche bei modellspezifischen Cooldown-Antworten, bevor ein Fehler an den Client zurückgegeben wird.
MAX_RETRY_INTERVAL_SEC 30 src/sse/services/cooldownAwareRetry.ts Maximales Backoff-Intervall (Sekunden) zwischen Cooldown-Wiederholungsversuchen. Unabhängig vom vorgelagerten Retry-After auf diesen Wert begrenzt.
HEADROOM_URL http://localhost:8787 src/lib/headroom/detect.ts URL des Headroom-Proxys zur Token-Einsparung. Der Dashboard-Lebenszyklus (api/headroom/*) startet standardmäßig eine lokale headroom-ai-CLI auf der Loopback-Schnittstelle; nur überschreiben, um auf einen externen Docker-Sidecar-Proxy zu verweisen.

Konstanten zur Optimierung der Stream-Wiederherstellung

Abschnitt betitelt „Konstanten zur Optimierung der Stream-Wiederherstellung“

Das Holdback-Verhalten bei der Wiederherstellung wird durch fest codierte Konstanten in open-sse/config/constants.ts (STREAM_RECOVERY) abgestimmt, die hier als Referenz aufgeführt sind — Änderungen erfordern eine Codeänderung und keine Umgebungsvariable:

  • STREAM_RECOVERY.HOLDBACK_MS = 750 — wie lange das anfängliche SSE-Fenster zurückgehalten wird, damit bei einem frühzeitigen Abbruch ein erneuter Versuch erfolgen kann, bevor ein Byte an den Client übertragen wird.
  • STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536 — feste Obergrenze für das zurückgehaltene Fenster; die Übertragung (Flush + Passthrough) beginnt, sobald sich so viele Bytes angesammelt haben, unabhängig vom Timer.
  • STREAM_RECOVERY.EARLY_RETRY_MAX = 4 — maximale Anzahl transparenter erneuter Öffnungen des vorgelagerten Streams, solange der Holdback noch nicht übertragen wurde.

Anbieterspezifisches Sliding-Window-Ratenlimit (keine Umgebungsvariable): Der aus FCC übernommene anbieterspezifische Fallback für das Sliding-Window-Ratenlimit ist im Code vorhanden (open-sse/services/providerDefaultRateLimit.ts, angebunden über open-sse/services/rateLimitManager.ts), wird jedoch mit einer leeren Standardzuordnung ausgeliefert und verfügt derzeit über keine Umgebungsvariable für Betreiber — er wird nur über einen Test-Hook / eine Codeänderung aktiviert. Er ist absichtlich nicht in der obigen Tabelle aufgeführt. Der Relay-Limiter pro (Token, IP), der tatsächlich eine Einstellmöglichkeit besitzt, ist RELAY_IP_PER_MINUTE (§3 Netzwerk & Ports).


[!CAUTION] Diese Variablen erzeugen ausführliche Ausgaben und können sensible Daten offenlegen. Niemals in der Produktion aktivieren.

Variable Standardwert Quelldatei Beschreibung
CURSOR_DEBUG (nicht gesetzt) open-sse/executors/cursor.ts Auf 1 setzen, um ausführliche Protokolle des Cursor-Executors zu aktivieren (decodierte SSE-Chunks usw.).
CURSOR_STREAM_DEBUG (nicht gesetzt) open-sse/executors/cursor.ts Abwärtskompatibler Alias für CURSOR_DEBUG.
CURSOR_DUMP_FILE (nicht gesetzt) open-sse/executors/cursor.ts Optionaler Dateipfad, in den rohe decodierte Cursor-Chunks geschrieben werden, wenn CURSOR_DEBUG=1 gesetzt ist.
CURSOR_STREAM_TIMEOUT_MS 300000 open-sse/executors/cursor.ts Leerlaufzeitlimit des Streams (ms) für den Cursor-Executor.
CURSOR_KV_GRACE_MS 2000 open-sse/executors/cursor.ts Karenzzeit (ms) nach einem weichen composer-kv_after_text-Terminator, wenn noch Bytes gepuffert sind — gibt einem nachfolgenden exec_mcp-Tool-Aufruf Zeit, seinen Frame abzuschließen.
CURSOR_TOOL_DIRECTIVE aktiviert (!== "0") open-sse/executors/cursor.ts Tool-Commit-Direktive, durch die composer-2.5 zuverlässig Tool-Aufrufe ausführt. Zum Deaktivieren auf 0 setzen.
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND (nicht gesetzt) open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts Vom Betreiber definierter System-Prompt-Text, der NACH der Übersetzung an die Systemnachricht angehängt wird (Injektion nach der Übersetzung) und die Pfade codex/Responses und /v1/messages erreicht. Wird außerdem als Direktivenpräfix verwendet, das aus wiedergegebenen Systempräambel-Blöcken entfernt wird. Zum Deaktivieren nicht setzen.
OMNIROUTE_STRIP_SYSTEM_PREAMBLE 0 (aus) open-sse/translator/response/openai-to-claude.ts, open-sse/utils/directivePreambleStripper.ts Auf 1 setzen, um wiedergegebene System-Prompt-Präambel-Blöcke vom Anfang eines openai→claude-Streams zu entfernen. Standardmäßig deaktiviert — die Heuristiken sind auf englische Prosa zugeschnitten und verändern die Antwortnutzlast, sodass eine Antwort verloren ginge, die legitimerweise mit einem solchen Abschnitt beginnt.
CURSOR_IMAGE_FETCH_TIMEOUT_MS 15000 open-sse/utils/cursorImages.ts Abrufzeitlimit pro Bild (ms) für entfernte image_url-Vision-Eingaben.
CURSOR_STATE_DB_PATH (ermittelt) open-sse/utils/cursorVersionDetector.ts Überschreibt die Suche nach der Zustandsdatenbank der Cursor-IDE, die zur Erkennung der IDE-Version verwendet wird.
CURSOR_AGENT_CLI_VERSION (erkennen / fixieren) open-sse/utils/cursorAgentCliVersion.ts Agent-CLI-Build-ID (YYYY.MM.DD-&lt;hash&gt;) für x-cursor-client-version: cli-… bei Agent Run.
CURSOR_AGENT_BIN (nicht gesetzt) open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Pfad zur Binärdatei des Cursor Agent, die für die Bilderzeugung verwendet wird. Ist die Variable nicht gesetzt, verwendet der Handler zunächst providerSpecificData.agentBin und danach PATH.
CURSOR_IMG_TIMEOUT_MS 210000 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Gesamtzeitlimit pro Bild (ms) für Bildaufträge des Cursor Agent.
CURSOR_IMG_MAX_CONCURRENT 2 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Nebenläufigkeitsbegrenzung für gemeinsam genutzte Zugänge bei Cursor-Bildaufträgen.
CURSOR_IMG_MODEL Anfrage / auto open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Überschreibt --model der Cursor-CLI für Bildaufträge.
UC_IMAGE_POLL_INTERVAL_MS 2000 open-sse/handlers/imageGeneration/providers/ucImage.ts Abfrageintervall (ms) für Ergebnisse der UC-Bilderzeugung (uncensored.com).
UC_IMAGE_POLL_TIMEOUT_MS 60000 open-sse/handlers/imageGeneration/providers/ucImage.ts Gesamtzeitlimit (ms) für die Ergebnisabfrage der UC-Bilderzeugung.
UC_VIDEO_POLL_INTERVAL_MS 3000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Abfrageintervall (ms) für Ergebnisse der UC-Videoerzeugung (uncensored.com).
UC_VIDEO_POLL_TIMEOUT_MS 300000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Gesamtzeitlimit (ms) für die Ergebnisabfrage der UC-Videoerzeugung.
CURSOR_DATA_DIR (ermittelt) open-sse/utils/cursorAgentCliVersion.ts Überschreibt das Datenverzeichnis der Cursor Agent CLI (…/versions/&lt;id&gt;); dieselbe Variable wird vom offiziellen Agent verwendet.
CURSOR_TOKEN (nicht gesetzt) scripts/ad-hoc/cursor-tap.cjs Direktes Cursor-Bearer-Token, das von Entwicklerwerkzeugen verwendet wird.
OMNIROUTE_LOG_REQUEST_SHAPE deaktiviert (Opt-in über "1") src/app/api/v1/chat/completions/route.ts Protokolliert Content-Type-/Längenmarker für große Chat-Nutzlasten, wenn "1" gesetzt ist. Standardmäßig deaktiviert, um das Protokollaufkommen zu reduzieren.
DEBUG_RESPONSES_SSE_TO_JSON (nicht gesetzt) open-sse/handlers/responseTranslator.ts Auf true setzen, um Details zur SSE→JSON-Übersetzung der Responses API zu protokollieren.
DEBUG_CLAUDE_NONSTREAM (nicht gesetzt) open-sse/handlers/responseTranslator.ts Auf true setzen, um leere textContent-Chunks im Claude-Antwortübersetzungspfad sichtbar zu machen (nur zum Debuggen).
NEXT_PUBLIC_OMNIROUTE_E2E_MODE (nicht gesetzt) E2E-Testumgebung Auf true setzen, um den E2E-Testmodus zu aktivieren (gelockerte Authentifizierung, Test-Hooks).

Ermöglicht Benutzern, Probleme direkt über das Dashboard zu melden.

Variable Standardwert Quelldatei Beschreibung
GITHUB_ISSUES_REPO (nicht gesetzt) src/app/api/v1/issues/report/route.ts Repository im Format owner/repo.
GITHUB_ISSUES_TOKEN (nicht gesetzt) src/app/api/v1/issues/report/route.ts Persönliches GitHub-Zugriffstoken mit dem Berechtigungsumfang issues:write.
GITHUB_TOKEN (nicht gesetzt) Problemklassifizierung / Cloud-Agent-Hilfsfunktionen Allgemeines GitHub-Zugriffstoken, das als Rückfalloption für GITHUB_ISSUES_TOKEN dient und von Cloud-Agent-Hilfsfunktionen in src/lib/cloudAgent/* verwendet wird.

SRE-Hinweise zum Relay-Backend (Verhalten von ts/bifrost/auto, Platzierung von 9router gegenüber CLIProxyAPI und Rückfallstrategie für hohen Durchsatz) finden Sie unter Relay-Backend-Strategie.

Terminal-Fenster
JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development
Terminal-Fenster
JWT_SECRET=&lt;generiert&gt;
API_KEY_SECRET=&lt;generiert&gt;
INITIAL_PASSWORD=&lt;generiert&gt;
STORAGE_ENCRYPTION_KEY=&lt;generiert&gt;
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
Terminal-Fenster
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
Terminal-Fenster
JWT_SECRET=&lt;generiert&gt;
API_KEY_SECRET=&lt;generiert&gt;
STORAGE_ENCRYPTION_KEY=&lt;generiert&gt;
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

Grenzwerte und Sicherheitseinstellungen, die angewendet werden, wenn das Skills-Framework (src/lib/skills/) benutzerdefinierte Automatisierungen in einer Sandbox-Umgebung ausführt.

Variable Standardwert Quelldatei Beschreibung
SKILLS_SANDBOX_TIMEOUT_MS 10000 (10 s) src/lib/skills/builtins.ts Maximale tatsächliche Ausführungsdauer pro Durchlauf für Skill-Code in der Sandbox. Harte Obergrenze; alles, was länger dauert, wird beendet.
SKILLS_EXECUTION_TIMEOUT_MS (fällt auf SKILLS_SANDBOX_TIMEOUT_MS zurück) src/lib/skills/ Zeitlimit für die übergeordnete Skill-Orchestrierung. Legen Sie einen höheren Wert als für SKILLS_SANDBOX_TIMEOUT_MS fest, um mehrstufige Workflows zu ermöglichen.
SKILLS_MAX_FILE_BYTES 1048576 (1 MB) src/lib/skills/builtins.ts Maximale Anzahl an Bytes, die ein Skill aus einer einzelnen Datei in der Sandbox lesen darf.
SKILLS_MAX_HTTP_RESPONSE_BYTES 256000 (250 KB) src/lib/skills/builtins.ts Maximale Anzahl an Bytes, die aus einer einzelnen HTTP-Antwort innerhalb eines Skills erfasst werden.
SKILLS_MAX_SANDBOX_OUTPUT_CHARS 100000 src/lib/skills/builtins.ts Harte Obergrenze für die Anzahl der aus einem Sandbox-Aufruf zurückgegebenen stdout-/stderr-Zeichen.
SKILLS_SANDBOX_NETWORK_ENABLED false src/lib/skills/builtins.ts Auf 1/true setzen, um ausgehenden Netzwerkverkehr aus der Sandbox zu erlauben. Aus Sicherheitsgründen standardmäßig isoliert.
SKILLS_ALLOWED_SANDBOX_IMAGES (leer) src/lib/skills/builtins.ts Durch Kommas getrennte Positivliste der Container-Images, die für die Sandbox-Ausführung zulässig sind. Leer bedeutet, dass nur der integrierte Standardwert erlaubt ist.
SKILLS_SANDBOX_DOCKER_IMAGE (integrierter Standardwert) src/lib/skills/ Container-Image, das beim Starten einer Docker-basierten Sandbox verwendet wird. Überschreiben Sie diesen Wert, um ein benutzerdefiniertes gehärtetes Basis-Image festzulegen.
SKILLS_SANDBOX_RUNTIME auto src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts Container-Laufzeit für die Skill-Sandbox: auto | docker | apple | wsl | orbstack | podman. auto wählt die am besten geeignete installierte Laufzeit für das jeweilige Host-Betriebssystem aus (Apple Container/OrbStack unter macOS, WSL Container unter Windows, Podman unter Linux) und fällt andernfalls auf Docker zurück.

[!CAUTION] Die Aktivierung von SKILLS_SANDBOX_NETWORK_ENABLED=true öffnet einen ausgehenden Zugriffspfad für beliebigen Skill-Code. Kombinieren Sie dies in gemeinsam genutzten Bereitstellungen mit OUTBOUND_SSRF_GUARD_ENABLED=true und einer strikten CORS_ORIGIN-/Proxy-Richtlinie.


25. Anbieter-Kontingente, Tunnel, Backups & sonstige Laufzeitkonfiguration

Abschnitt betitelt „25. Anbieter-Kontingente, Tunnel, Backups & sonstige Laufzeitkonfiguration“

Endpunkte für Anbieter-Kontingente, Netzwerktunnel (Tailscale, Ngrok, MITM-Debug-Proxy), der 1Proxy-Egress-Pool, Datenbank-Backups und kleine funktionsspezifische Überschreibungen, auf die von der Executor-Schicht oder von Skripten verwiesen wird.

Variable Standardwert Quelldatei Beschreibung
REDIS_URL redis://localhost:6379 src/shared/utils/rateLimiter.ts Redis-Verbindungszeichenfolge für das Backend des Ratenbegrenzers.
ALIBABA_CODING_PLAN_HOST (Produktionshost) open-sse/services/bailianQuotaFetcher.ts Überschreibt den Host, der zum Abrufen der Kontingente des Alibaba Bailian Coding Plan verwendet wird.
ALIBABA_CODING_PLAN_QUOTA_URL vom Host abgeleitet open-sse/services/bailianQuotaFetcher.ts Überschreibt die vollständige Kontingent-URL für Alibaba Bailian.
QWEN_CLOUD_COOKIE (nicht gesetzt) open-sse/services/qwenTokenPlanQuotaFetcher.ts Konsolen-Sitzungscookie für das persönliche Token-Plan-Kontingent-Gateway von Qwen Cloud / Model Studio (der Inferenz-API-Schlüssel kann es nicht auslesen). Kopieren Sie den gesamten Cookie-Anfrage-Header – er enthält login_qwencloud_ticket – aus einem beliebigen api.json-Aufruf an cs-data.qwencloud.com unter home.qwencloud.com › Abrechnung › Abonnement (F12 › Netzwerk). Sensibel und sitzungsgebunden; verwenden Sie vorzugsweise das verbindungsspezifische Dashboard-Feld qwenCloudCookie.
QWEN_CLOUD_SEC_TOKEN (nicht gesetzt) open-sse/services/qwenTokenPlanQuotaFetcher.ts Manuelle Überschreibung von sec_token für das Konsolen-Gateway des Token Plan. Sensibel; wenn nicht gesetzt, ermittelt der Fetcher den Wert mithilfe des Cookies aus dem Dashboard-HTML.
QWEN_TOKEN_PLAN_HOST https://cs-data.qwencloud.com open-sse/services/qwenTokenPlanQuotaFetcher.ts Überschreibt den Gateway-Host für den Abruf des persönlichen Token-Plan-Kontingents (z. B. bailian-singapore-cs.alibabacloud.com für die Model-Studio-Konsole).
QWEN_TOKEN_PLAN_DASHBOARD_URL https://home.qwencloud.com/ open-sse/services/qwenTokenPlanQuotaFetcher.ts Dashboard-URL, die verwendet wird, um sec_token aus dem HTML der angemeldeten Sitzung zu ermitteln.
ALIBABA_FREE_TIER_VISION_FE_PATH /costing-balance/free-quota-image-video open-sse/services/alibabaFreeTierQuotaFetcher.ts Überschreibt den Konsolen-Frontend-Pfad zum Abrufen des kostenlosen Kontingents für Bildverarbeitung und Medien von Alibaba Model Studio.
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH /costing-balance/free-quota-multimodal open-sse/services/alibabaFreeTierQuotaFetcher.ts Überschreibung des Konsolen-Frontend-Pfads zum Abrufen des kostenlosen Kontingents für multimodale Modelle von Alibaba Model Studio.
ALIBABA_FREE_TIER_AUDIO_FE_PATH /costing-balance/free-quota-audio open-sse/services/alibabaFreeTierQuotaFetcher.ts Überschreibung des Konsolen-Frontend-Pfads zum Abrufen des kostenlosen Audiokontingents von Alibaba Model Studio.
ALIBABA_FREE_TIER_ALLOWLIST_PATH (nicht gesetzt) open-sse/services/alibabaFreeTierAllowlist.ts Optionaler Pfad zu einer lokalen JSON-Überschreibungsdatei für die integrierte Alibaba-Zulassungsliste kostenloser Textmodelle. Fällt auf $DATA_DIR/alibaba-free-tier-allowlist.json und anschließend auf config/alibaba-free-tier-allowlist.json zurück.
CONTEXT_RESERVE_TOKENS 1024 open-sse/services/contextManager.ts Für die Vervollständigungsausgabe reservierte Tokens bei der Berechnung von Prompt-Budgets.
CONTEXT_KEEP_LATEST_IMAGES 2 open-sse/services/contextManager.ts Anzahl der neuesten eingebetteten Bilder, die beim Entfernen älterer Bilder beibehalten werden, damit das Kontextfenster nicht überschritten wird (#8560).
MODEL_ALIAS_COMPAT_ENABLED aktiviert open-sse/services/model.ts Aktiviert oder deaktiviert die von älteren Clients verwendete Legacy-Kompatibilitätsschicht für Modellaliase.
OMNIROUTE_EMERGENCY_FALLBACK aktiviert open-sse/services/emergencyFallback.ts Auf false (oder 0) setzen, um den Notfall-Fallback bei ausgeschöpftem Budget zu deaktivieren, der fehlgeschlagene Anfragen an das kostenlose Modell nvidia/openai/gpt-oss-120b umleitet. Die effektive Prioritätsreihenfolge lautet: Überschreibung durch die Feature-Flags-Datenbank > Umgebungsvariable > Standardwert; falls nicht verfügbar, greift der Dienst auf den unverarbeiteten Umgebungsvariablenwert zurück.
COMMAND_CODE_CALLBACK_PORT (nicht gesetzt) src/app/api/providers/command-code/auth/shared.ts Lokaler Port für OAuth-ähnliche Rückrufe vom Command Code CLI-Hilfsprogramm.
COMMAND_CODE_VERSION 0.33.2 open-sse/executors/commandCode.ts Wert, der als Header x-command-code-version an den Command Code-Upstream gesendet wird. Kann überschrieben werden, um die CLI-Version zu erhöhen.
COMMANDCODE_API_URL https://api.commandcode.ai open-sse/services/usage/command-code.ts Basis-URL für den Command Code-Upstream für Nutzung und Kontingente, der von der Telemetrie des Smartphone-Kontingentabrufs verwendet wird. Kann für eine selbst gehostete oder alternative Command Code-API überschrieben werden.
MITM_LOCAL_PORT 443 src/mitm/server.cjs Lokaler Bind-Port für den MITM-Debug-Proxy.
MITM_DISABLE_TLS_VERIFY 0 src/mitm/server.cjs Auf 1 setzen, um die TLS-Verifizierung für Upstream-Verbindungen zu deaktivieren (nur für die Entwicklung).
MITM_IDLE_TIMEOUT_MS 60000 src/mitm/socketTimeouts.ts, src/mitm/server.cjs Zeitlimit für inaktive Sockets (ms) bei weitergeleiteten Verbindungen; Sockets, die länger inaktiv sind, werden geschlossen, um nicht geschlossene Tunnel zu vermeiden.
BRIDGE_PORT 20129 bin/antigravity-bridge.mjs Port, auf dem die Antigravity-MITM-Bridge lauscht.
ROUTER_URL http://127.0.0.1:20128/v1/antigravity bin/antigravity-bridge.mjs Router-Endpunkt, an den die Bridge Antigravity-Datenverkehr weiterleitet.
CERT_DIR ~/.omniroute/mitm bin/antigravity-bridge.mjs Verzeichnis mit server.key/server.crt für den TLS-Listener der Bridge; die Bridge wird beendet, wenn eine der beiden Dateien fehlt.
MITM_VERBOSE 1 src/mitm/server.cjs, src/mitm/_internal/bypass.cjs Ausführlichkeit der Protokollierung von Routing-Entscheidungen: 0 deaktiviert die Protokollierung; höhere Werte protokollieren mehr Umgehungs-/Routing-Entscheidungen.
MITM_ROOT_CA_ENABLED false src/mitm/manager.ts Auf true setzen, um sich für das Modell mit Root-CA und hostspezifischen Leaf-Zertifikaten zu entscheiden (#6684). Bei Neuinstallationen wird es automatisch verwendet; Installationen mit einem bereits vorhandenen vertrauenswürdigen Legacy-Leaf-Zertifikat behalten das alte Zertifikat mit festen SANs, sofern die Option nicht aktiviert wird.
MITM_CERT_MODE legacy src/mitm/manager.ts, src/mitm/server.cjs Wird VOM MITM-Manager für den gestarteten Proxy-Prozess festgelegt (root-ca | legacy) und spiegelt die Entscheidung zur Zertifikatsmigration wider; sollte nicht manuell festgelegt werden.
OMNIROUTE_NO_SUDO 0 src/mitm/systemCommands.ts Auf 1 (wahrheitswertig) setzen, um das vorangestellte sudo aus den MITM-Befehlen zur Zertifikatsvertrauensstellung zu entfernen – für rootlose/mit Benutzer-Namespaces arbeitende Bereitstellungen, bei denen der Betreiber der CA manuell vertraut (z. B. über den Extra-CA-Certs-Mechanismus von Node).
SKIP_ANTIGRAVITY_DNS (nicht gesetzt) src/mitm/dns/provision.ts Auf true setzen, um die Bereitstellung von DNS-Einträgen in /etc/hosts für die Hostnamen des Antigravity-Proxys vollständig zu überspringen – für Container, in denen weder sudo noch Root-Rechte verfügbar sind.
OMNIROUTE_SKIP_DNS_WRITE (nicht gesetzt) src/mitm/dns/dnsConfig.ts Auf 1 setzen, um beim Hinzufügen/Entfernen von DNS-Einträgen das Schreiben in die Hosts-Datei zu überspringen – für Sandbox- oder schreibgeschützte Testumgebungen.
OMNIROUTE_SKIP_SYSTEM_TRUST 0 src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts Nur für Tests/CI vorgesehene Schutzvorrichtung: Auf 1 setzen, damit die Installation/Deinstallation des Zertifikatsvertrauens keine Wirkung hat und die Testsuite den Vertrauensspeicher des Betriebssystems niemals verändert. Wird automatisch durch die Testeinrichtung und die CI-Workflows gesetzt.
CHANGELOG_BASE_REF (automatisch) scripts/check/check-changelog-integrity.mjs Explizite Basisreferenz für die Schutzprüfung gegen das Entfernen von CHANGELOG-Einträgen (standardmäßig der Basis-Branch des PR in CI oder der höchste release/v*).
FREE_PROXY_AUTO_SYNC_ENABLED false src/lib/freeProxyProviders/scheduler.ts Auf true setzen, um den im Hintergrund laufenden Scheduler zur automatischen Synchronisierung des kostenlosen Proxy-Pools zu aktivieren. Opt-in, standardmäßig deaktiviert.
FREE_PROXY_AUTO_SYNC_INTERVAL_MS 1800000 src/lib/freeProxyProviders/scheduler.ts Intervall für die automatische Synchronisierung in Millisekunden (standardmäßig 30 Min.).
FREE_PROXY_1PROXY_ENABLED true src/lib/freeProxyProviders/oneproxy.ts Aktiviert die kostenlose Proxy-Quelle 1proxy. Zum Deaktivieren auf false setzen.
FREE_PROXY_1PROXY_API_URL (siehe oneproxy.ts) src/lib/freeProxyProviders/oneproxy.ts Überschreibung der 1proxy-API-URL.
FREE_PROXY_1PROXY_MAX 500 src/lib/freeProxyProviders/oneproxy.ts Maximale Anzahl der bei jeder Synchronisierung von 1proxy abgerufenen Proxys.
FREE_PROXY_1PROXY_MIN_QUALITY 50 src/lib/freeProxyProviders/oneproxy.ts Mindestschwellenwert für die Qualitätsbewertung von 1proxy-Importen.
FREE_PROXY_PROXIFLY_ENABLED true src/lib/freeProxyProviders/proxifly.ts Aktiviert die kostenlose Proxy-Quelle Proxifly. Zum Deaktivieren auf false setzen.
FREE_PROXY_PROXIFLY_QUANTITY 100 src/lib/freeProxyProviders/proxifly.ts Anzahl der bei jeder Proxifly-Synchronisierung abzurufenden Proxys.
FREE_PROXY_PROXIFLY_ANONYMITY elite src/lib/freeProxyProviders/proxifly.ts Filter für die Anonymitätsstufe bei Proxifly (elite, anonymous, transparent).
FREE_PROXY_IPLOCATE_ENABLED false src/lib/freeProxyProviders/iplocate.ts Aktiviert die kostenlose Proxy-Quelle IPLocate. Nur bei expliziter Aktivierung.
FREE_PROXY_IPLOCATE_BASE_URL https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols src/lib/freeProxyProviders/iplocate.ts Überschreibt die Basis-URL der IPLocate-Proxy-Liste.
FREE_PROXY_WEBSHARE_ENABLED true src/lib/freeProxyProviders/webshare.ts Aktiviert die Webshare-Proxy-Pool-Quelle. Zum Deaktivieren auf false setzen; zusätzlich muss FREE_PROXY_WEBSHARE_API_KEY festgelegt sein.
FREE_PROXY_WEBSHARE_API_KEY (keiner) src/lib/freeProxyProviders/webshare.ts API-Token des Webshare-Kontos (Authorization: Token &lt;key&gt;). Erforderlich – ohne diesen bleibt der Anbieter deaktiviert.
FREE_PROXY_WEBSHARE_API_URL https://proxy.webshare.io/api/v2/proxy/list/ src/lib/freeProxyProviders/webshare.ts Überschreibt die API-URL der Webshare-Proxy-Liste.
FREE_PROXY_WEBSHARE_MAX 500 src/lib/freeProxyProviders/webshare.ts Maximale Anzahl der pro Webshare-Synchronisierung importierten Proxys.
NEXT_PUBLIC_VERCEL_RELAY_ENABLED true src/app/(dashboard)/…/ProxyPoolTab.tsx Blendet die Schaltfläche zum Bereitstellen von Vercel Relay auf der Registerkarte „Proxy-Pool“ ein oder aus.
VERCEL_API_BASE https://api.vercel.com src/app/api/settings/proxy/vercel-deploy/route.ts Überschreibt die Basis-URL der Vercel-API (zu Testzwecken).
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/…/VercelRelayModal.tsx Standardprojektname, der im Bereitstellungsdialog von Vercel Relay vorausgefüllt wird.
TAILSCALE_BIN (automatisch erkannt) src/lib/tailscaleTunnel.ts Expliziter Pfad zur Binärdatei tailscale.
TAILSCALED_BIN (automatisch erkannt) src/lib/tailscaleTunnel.ts Expliziter Pfad zur Daemon-Binärdatei tailscaled.
TAILSCALE_AUTHKEY (nicht gesetzt) src/lib/tailscaleTunnel.ts Vorab bereitgestellter Tailscale-Authentifizierungsschlüssel für ein nicht interaktives/headless ausgeführtes tailscale up (Übergabe über --auth-key=). Wenn nicht gesetzt, wird als Fallback die interaktive Browser-Authentifizierungs-URL verwendet.
NGROK_AUTHTOKEN (nicht gesetzt) src/lib/ngrokTunnel.ts Authentifiziert ausgehende ngrok-Tunnel.
DB_BACKUP_MAX_FILES 20 src/lib/db/backup.ts Maximale Anzahl an SQLite-Sicherungsdateien, die bei der manuellen/geplanten Sicherungsbereinigung beibehalten werden. Migrations-Snapshots sind inhaltsadressiert und werden bei identischem Datenbankzustand wiederverwendet; innerhalb des Zeitfensters für gleichzeitige Migrationen werden sie nicht bereinigt. Überschreibt den unter Einstellungen → Aufbewahrung von Datenbanksicherungen gespeicherten Wert.
DB_BACKUP_RETENTION_DAYS 0 src/lib/db/backup.ts Maximales Alter (in Tagen), bis zu dem Dateien bei der manuellen/geplanten Sicherungsbereinigung beibehalten werden. 0 deaktiviert die altersbasierte Bereinigung. Migrations-Snapshots werden innerhalb des Zeitfensters für gleichzeitige Migrationen nicht bereinigt. Überschreibt den unter Einstellungen → Aufbewahrung von Datenbanksicherungen gespeicherten Wert.
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS 30000 src/lib/jobs/backupScheduleJob.ts Taktintervall (ms) des serverseitigen Jobs, der backup-schedule.json ausführt. Es muss deutlich unter der Cron-Granularität von 1 Minute liegen; Werte unter 5000 oder nicht analysierbare Werte werden auf 30000 zurückgesetzt.
CONTAINER_HOST docker scripts/check-permissions.sh Hinweis auf die Container-Laufzeitumgebung für die Berechtigungsprüfung des Einstiegspunkts. Für jede Podman-Topologie auf podman setzen. Da der Container nicht feststellen kann, ob die Engine lokal ausgeführt oder über Podman Machine erreicht wird, bleibt die Warnung topologieneutral und verweist auf contrib/podman/README.md.
QUOTA_STORE_DRIVER sqlite src/lib/quota/storeFactory.ts Speicher-Backend für den Verbrauch von Kontingentanteilen: sqlite (Standard) oder redis.
QUOTA_STORE_REDIS_URL (nicht gesetzt) src/lib/quota/storeFactory.ts Redis-Verbindungszeichenfolge, die verwendet wird, wenn QUOTA_STORE_DRIVER=redis gesetzt ist (z. B. redis://localhost:6379).
QUOTA_SATURATION_THRESHOLD 0.5 src/lib/quota/enforce.ts Sättigungsverhältnis des Pools (0..1); ab diesem Wert wechselt der Pool in den strikten Modus (keine Entleihung).
QUOTA_SOFT_DEPRIORITIZE_FACTOR 0.7 open-sse/services/combo.ts Score-Multiplikator (0..1), der auf ein Ziel angewendet wird, wenn es durch die Soft-Quota-Richtlinie depriorisiert wird.
STATUS_SOFT_DEPRIORITIZE_FACTOR 0.5 open-sse/services/combo/autoStrategy.ts Score-Multiplikator (0..1), der bei der automatischen Combo-Bewertung auf einen ausgeschöpften Anbieter (credits_exhausted/rate_limited) angewendet wird, wenn der präventive Quota-Cutoff DEAKTIVIERT ist (#4540).
QUOTA_CONSUMPTION_RETENTION_DAYS 14 src/lib/db/quotaConsumption.ts Aufbewahrungszeitraum (in Tagen) für quota_consumption-Buckets vor der Garbage Collection (gcQuotaConsumption).
QUOTA_PREFLIGHT_CUTOFF_ENABLED false src/lib/resilience/settings.ts Opt-in (standardmäßig DEAKTIVIERT): Aktiviert den strikten Quota-Cutoff für das automatische Routing, der Kandidaten mit geringer Quota vor der Bewertung verwirft.
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL false open-sse/services/autoCombo/virtualFactory.ts Opt-in (standardmäßig DEAKTIVIERT): Wenn ein auto/&lt;category&gt;:&lt;tier&gt;-Filter keine verbundenen Kandidaten findet, wird das bisherige Verhalten wiederhergestellt und auf den vollständigen (ungefilterten) Pool zurückgegriffen, statt einen leeren Pool zurückzugeben. Standardmäßig DEAKTIVIERT bedeutet :free „nur kostenlose Stufe“.
OMNIROUTE_CHAOS_MAX_PANEL 5 open-sse/services/autoCombo/virtualFactory.ts Obergrenze für die Panelgröße (begrenzt auf 1–10) der Broadcast-Variante auto/*:chaos – eine Anfrage wird an höchstens so viele Modelle unterschiedlicher Anbieter verteilt.
OMNIROUTE_CHAOS_MIN_PANEL (Engine-Standardwert) open-sse/services/autoCombo/virtualFactory.ts Einstellung für die minimale Panelgröße, die an den Chaos-Broadcast-Handler weitergeleitet wird; ist sie nicht gesetzt, bleibt der Engine-Standardwert erhalten.
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS (Engine-Standardwert) open-sse/services/autoCombo/virtualFactory.ts Hartes Zeitlimit (ms) für die gesamte Auffächerung des Chaos-Panels; ist es nicht gesetzt, bleibt der Engine-Standardwert erhalten.
GROK_AUTH_PATH ~/.grok/auth.json open-sse/services/grokQuotaFetcher.ts Pfad zur Datei auth.json der Grok CLI, die zum Abrufen der wöchentlichen Quota von grok-web verwendet wird; kann für Tests oder eine nicht standardmäßige CLI-Installation überschrieben werden.
AGENTBRIDGE_UPSTREAM_CA_CERT (nicht gesetzt) src/mitm/manager.ts Zusätzliches CA-Zertifikat (PEM), dem bei AgentBridge-Upstream-TLS-Verbindungen vertraut wird.
INSPECTOR_BUFFER_SIZE 1000 src/mitm/inspector/buffer.ts Maximale Anzahl erfasster Anfragen im Ringpuffer des Traffic Inspectors.
INSPECTOR_MAX_BODY_KB 1024 src/mitm/inspector/buffer.ts Maximale Größe (KB) erfasster Anfrage-/Antwortinhalte vor der Kürzung.
INSPECTOR_HTTP_PROXY_PORT 8080 src/mitm/inspector/httpProxyServer.ts Lokaler Port für den HTTP-Proxy des Traffic Inspectors.
INSPECTOR_HTTP_PROXY_AUTOSTART false src/mitm/inspector/httpProxyServer.ts Startet den HTTP-Proxy des Inspectors beim Systemstart automatisch.
INSPECTOR_TLS_INTERCEPT false src/lib/inspector/captureState.ts Aktiviert die TLS-Interception (MITM) für erfassten HTTPS-Datenverkehr.
INSPECTOR_LLM_HOSTS_EXTRA (nicht gesetzt) src/lib/inspector/captureState.ts Zusätzliche Hostnamen (durch Kommas getrennt), die bei der Erfassung als LLM-Endpunkte behandelt werden.
INSPECTOR_MASK_SECRETS true src/mitm/inspector/buffer.ts Maskiert Geheimnisse (Authentifizierungs-Header/API-Schlüssel) im erfassten Datenverkehr.
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES 30 src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts Anzahl der Minuten, nach denen der System-Proxy-Schutz die Proxy-Einstellungen des Betriebssystems automatisch zurücksetzt.
INSPECTOR_INTERNAL_INGEST_TOKEN (automatisch) src/app/api/tools/traffic-inspector/internal/ingest/route.ts Token zur Authentifizierung der internen Erfassungsdatenübernahme in den Inspector.
PLAYGROUND_COMPARE_MAX_COLUMNS 4 src/app/(dashboard)/dashboard/playground/ Maximale Anzahl nebeneinander angeordneter Spalten im Vergleichsmodus des Playgrounds.
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL (nicht gesetzt) src/app/(dashboard)/dashboard/playground/ Standardmodell für die Playground-Aktion „Prompt verbessern“ (greift auf das aktive Modell zurück, wenn nicht gesetzt).
BIFROST_ENABLED 1 src/app/api/v1/relay/chat/completions/bifrost/route.ts Zentraler Notausschalter für den Bifrost-Sidecar-Proxy. Bei 0 gibt die Route den Status 503 mit dem Header X-Bifrost-Killswitch zurück und der Operator wird auf den TS-Pfad umgeleitet. Damit lässt sich der Sidecar ohne erneutes Deployment deaktivieren (Tier-1-Router-Vorfall, Schlüsselrotation).
BIFROST_BASE_URL (nicht gesetzt) src/app/api/v1/relay/chat/completions/bifrost/route.ts Wenn gesetzt, leitet die Bifrost-Sidecar-Proxy-Route den Datenverkehr für /v1/chat/completions an dieses Go-Gateway statt an den TS-Relay-Handler weiter. Nicht gesetzt → 503 mit Fallback. Ein abschließender Schrägstrich wird entfernt.
BIFROST_PORT 8080 src/lib/services/bootstrap.ts Port, an den der überwachte eingebettete Bifrost-Dienst gebunden wird (127.0.0.1:&lt;port&gt;), wenn OmniRoute den Lebenszyklus des Bifrost-Sidecars verwaltet. Standardwert ist 8080.
BIFROST_API_KEY (nicht gesetzt) src/app/api/v1/relay/chat/completions/bifrost/route.ts API-Schlüssel für das Bifrost-Gateway (wird als Authorization: Bearer ... gesendet). Wenn nicht gesetzt, wird erwartet, dass die Anfrage einen gültigen OmniRoute-API-Schlüssel enthält; dieser Schlüssel dient ausschließlich der Gateway-seitigen Authentifizierung.
BIFROST_STREAMING_ENABLED true src/app/api/v1/relay/chat/completions/bifrost/route.ts Wenn aktiviert, streamt die Bifrost-Sidecar-Route Antworten über SSE durch das Gateway zurück, anstatt den TS-Streaming-Executor zu verwenden. Auf 0 setzen, um nicht gestreamte JSON-Antworten über das Gateway zu erzwingen.
BIFROST_TIMEOUT_MS 30000 src/app/api/v1/relay/chat/completions/bifrost/route.ts Zeitüberschreitung pro Anfrage beim Proxying zum Bifrost-Gateway (ms). Bei einer Zeitüberschreitung gibt die Route über den Header X-Bifrost-Fallback den TS-Relay-Pfad zurück.
OMNIROUTE_BIFROST_KEY (nicht gesetzt) src/app/api/v1/relay/chat/completions/bifrost/route.ts Alias für BIFROST_API_KEY (wird von Skripten verwendet, die die Umgebungsvariable über OMNIROUTE_* auslesen). BIFROST_API_KEY hat Vorrang, wenn beide gesetzt sind.
OMNIROUTE_RELAY_BACKEND ts / auto src/app/api/v1/relay/chat/completions/routingBackend.ts Relay-Backend für /api/v1/relay/chat/completions: ts | bifrost | auto. ts = TypeScript-Relay (Standard, wenn Bifrost nicht konfiguriert ist); auto wählt Bifrost aus, wenn BIFROST_BASE_URL gesetzt und BIFROST_ENABLED ≠ 0 ist, mit automatischem TS-Fallback, falls der Sidecar nicht erreichbar ist; bifrost erzwingt Bifrost (strikt, kein Fallback). Authentifizierung/Ratenbegrenzung/Injection-Schutz/Zulassungsliste werden immer zuerst in der Next-Route ausgeführt. Antworten enthalten X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason.
RELAY_ROUTING_BACKEND (nicht gesetzt) src/app/api/v1/relay/chat/completions/routingBackend.ts Akzeptierter Alias für OMNIROUTE_RELAY_BACKEND (dieselben Werte ts | bifrost | auto). OMNIROUTE_RELAY_BACKEND hat Vorrang, wenn beide gesetzt sind.
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS 5000 src/app/api/v1/relay/chat/completions/bifrostCooldown.ts Abklingzeit (ms), nachdem ein Bifrost-Sidecar-Hop im Modus auto fehlgeschlagen ist, bevor das Relay den Sidecar erneut versucht; während der Abklingzeit leitet es direkt an den TS-Pfad weiter und prüft anschließend erneut. 0 deaktiviert diese Funktion. Gilt nur, wenn OMNIROUTE_RELAY_BACKEND=auto gesetzt ist.
OMNIROUTE_TLS_CERT (nicht gesetzt) bin/cli/commands/serve.mjs Pfad zu einem PEM-TLS-Zertifikat, um omniroute serve über HTTPS bereitzustellen (entspricht --tls-cert). Muss zusammen mit OMNIROUTE_TLS_KEY verwendet werden; der eigenständige Server terminiert TLS dann auf demselben Listener (wss:// funktioniert unverändert). Nicht gesetzt → einfaches HTTP. Wird nur eines von Zertifikat/Schlüssel oder ein nicht lesbarer Pfad angegeben, wird eine Warnung protokolliert und HTTP beibehalten.
OMNIROUTE_TLS_KEY (nicht gesetzt) bin/cli/commands/serve.mjs Pfad zum privaten PEM-TLS-Schlüssel für HTTPS mit omniroute serve (entspricht --tls-key). Muss zusammen mit OMNIROUTE_TLS_CERT verwendet werden. Siehe OMNIROUTE_TLS_CERT.
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED 0 src/lib/security/localEndpoints.ts Hauptschalter für /api/local/*-Routen. Wenn nicht gesetzt oder auf 0 gesetzt, geben alle /api/local/*-Routen in der Produktionsumgebung 503 zurück. Muss bei Bereitstellungen außerhalb der Loopback-Schnittstelle auf 1 gesetzt sein, um den Redis-Launcher und ähnliche lokale 1-Klick-Dienststarter zu aktivieren. Zusätzliche Absicherung durch die Route-Guard-Klassifizierung isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES in src/server/authz/routeGuard.ts).
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN (nicht gesetzt) src/lib/security/localEndpoints.ts Bearer-Token für /api/local/*-Aufrufer, die sich nicht auf der Loopback-Schnittstelle befinden (z. B. die Desktop-App). Wenn gesetzt, müssen Anfragen von Nicht-Loopback-IP-Adressen Authorization: Bearer &lt;token&gt; enthalten. Erforderlich, wenn OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 bei Nicht-Loopback-Bereitstellungen gesetzt ist.
OMNIROUTE_REDIS_CONTAINER_NAME omniroute-redis bin/cli/commands/redis.mjs Containername für den 1-Klick-Redis-Launcher (omniroute redis up). Wird sowohl von der CLI als auch von der GUI RedisLauncherPanel verwendet.
OMNIROUTE_REDIS_HOST_PORT 6379 bin/cli/commands/redis.mjs Host-Port für den 1-Klick-Redis-Launcher. Ändern Sie ihn, wenn der Host bereits Port 6379 belegt. Der interne Port des Containers bleibt 6379.
OMNIROUTE_REDIS_BIND_HOST 127.0.0.1 bin/cli/commands/redis.mjs Host-Schnittstelle, über die der 1-Klick-Redis-Launcher erreichbar gemacht wird. Der Launcher startet Redis OHNE Passwort; eine Bindung an 0.0.0.0 gewährt daher jedem Host in Ihrem LAN unauthentifizierten Redis-Zugriff – erweitern Sie die Bindung nur, wenn Sie selbst auch ein Passwort für die Instanz festlegen.
REDIS_BIND_HOST 127.0.0.1 docker-compose.yml Host-Schnittstelle, über die docker-compose den Redis-Sidecar erreichbar macht (#9286). Das Compose-Redis wird ohne requirepass ausgeführt; App-Container erreichen es über das Compose-Netzwerk (redis:6379) – der veröffentlichte Port ist ausschließlich für hostseitige Werkzeuge vorgesehen. 0.0.0.0 macht ein nicht authentifiziertes Redis im gesamten LAN zugänglich.
REDIS_PORT 6379 docker-compose.yml Host-Port für den Redis-Sidecar von Compose.
APP_BIND_HOST 127.0.0.1 docker-compose.yml, docker-compose.prod.yml Host-Schnittstelle, auf der docker-compose die eigenen Dashboard-/API-/Live-WS-Ports der App veröffentlicht (#12568). Da REQUIRE_API_KEY=false als Standardwert in .env.example ausgeliefert wird, setzt 0.0.0.0 den anonymen /v1-LLM-Proxy im gesamten LAN/WAN frei — nur erweitern, wenn REQUIRE_API_KEY=true gesetzt ist oder ein vorgeschalteter Reverse-Proxy eine eigene Authentifizierung erzwingt.
QDRANT_BIND_HOST 127.0.0.1 docker-compose.yml Host-Schnittstelle, auf der docker-compose den Qdrant-Speicher-Sidecar veröffentlicht (#12578). Für die LAN-Exposition gelten dieselben Überlegungen wie bei REDIS_BIND_HOST.
BIFROST_BIND_HOST 127.0.0.1 docker-compose.yml Host-Schnittstelle, auf der docker-compose den Bifrost-Router-Sidecar veröffentlicht (#12578). Für die LAN-Exposition gelten dieselben Überlegungen wie bei REDIS_BIND_HOST.
REDIS_KEY_PREFIX omniroute: src/shared/utils/rateLimiter.ts Namespace-Präfix, das auf jeden Redis-Schlüssel von OmniRoute angewendet wird (Ratenbegrenzer, Authentifizierungs-Cache, Kontingentspeicher, Warmup-Leistungsschalter). Verhindert Schlüsselkollisionen, wenn die Redis-Instanz mit anderen Apps gemeinsam genutzt wird (#11042).
OMNIROUTE_INTERNAL_SERVICE_TOKEN (nicht gesetzt — Mechanismus deaktiviert) src/lib/api/internalServiceAuth.ts Gemeinsames Geheimnis für identitätserhaltende interne REST-Aufrufe (#9260): OmniRoute-Komponenten, die andere lokale OmniRoute-Routen aufrufen, senden es als x-omniroute-internal-service-token, sodass die Identität des ursprünglichen Aufrufers erhalten bleibt. Wird mit timingSafeEqual verglichen.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE (nicht gesetzt) src/lib/api/internalServiceAuth.ts Geheimnisdatei-Variante des internen Dienst-Tokens: Pfad zu einer Datei, deren Inhalt nach Entfernung führender und nachfolgender Leerzeichen als Token verwendet wird. Wird nur berücksichtigt, wenn die Inline-Variable nicht gesetzt ist.
OPENROUTER_PROVIDER_STATS_ENABLED true src/lib/catalog/openrouterProviderStats.ts Reichert die Anbieterliste im Dashboard mit wöchentlichen OpenRouter-Ranglistenstatistiken an (#9324). Standardmäßig aktiviert; auf false setzen, um den Hintergrundabruf vollständig zu überspringen (nicht blockierend, niemals fatal).
OPENROUTER_PROVIDER_STATS_TTL_MS 86400000 (24 Std.) src/lib/catalog/openrouterProviderStats.ts Cache-TTL für den Snapshot der OpenRouter-Anbieterstatistiken in Millisekunden.
OMNIROUTE_REDIS_IMAGE redis:7-alpine bin/cli/commands/redis.mjs Redis-Image, das vom 1-Klick-Redis-Launcher verwendet wird. Bei Bedarf mit redis:8-alpine oder einem privaten Registry-Mirror überschreiben.
QDRANT_HOST qdrant (opt-in-Clusterprofil) Hostname des Qdrant-Sidecars, wenn --profile memory aktiv ist. Der Standardwert verweist auf den Qdrant-Dienstnamen innerhalb des Netzwerks; für eine externe Bereitstellung überschreiben. Wird im Code nur verwendet, wenn qdrantEnabled auf true gesetzt ist (src/lib/memory/vectorStore.ts:108).
QDRANT_PORT 6333 (opt-in-Clusterprofil) REST-Port des Qdrant-Sidecars.
QDRANT_GRPC_PORT 6334 (opt-in-Clusterprofil) gRPC-Port des Qdrant-Sidecars. Wird von Clientbibliotheken verwendet, die für Streaming-Vorgänge gRPC gegenüber REST bevorzugen.
QDRANT_API_KEY (nicht gesetzt) (opt-in-Clusterprofil) Optionaler API-Schlüssel für Qdrant Cloud oder eine authentifizierte lokale Instanz. Leer → es wird kein api-key-Header gesendet.
QDRANT_COLLECTION omniroute-memory (opt-in-Clusterprofil) Sammlungsname für die Einbettungen des OmniRoute-Konversationsspeichers. Wird beim ersten Start mit QDRANT_VECTOR_SIZE Dimensionen erstellt.
QDRANT_EMBEDDING_MODEL text-embedding-3-small (opt-in-Clusterprofil) Standardname des Einbettungsmodells, der in den Metadaten der Qdrant-Sammlung gespeichert wird. Die tatsächlichen Einbettungen werden von dem Anbieter erzeugt, auf den das Feld embeddingModel in den OmniRoute-Einstellungen verweist.
QDRANT_VECTOR_SIZE 1536 (opt-in-Clusterprofil) Dimension des Einbettungsvektors. Muss mit dem verwendeten Einbettungsmodell übereinstimmen (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768).
QDRANT_HNSW_EF_CONSTRUCT 128 (opt-in-Clusterprofil) Genauigkeit des HNSW-Index zur Erstellungszeit. Höher = langsamerer Aufbau, schnellere Suche.
OMNIROUTE_ROTATION_ENABLED true open-sse/services/rotationConfig.ts Hauptschalter für die vom Betreiber konfigurierbare Kontorotation. Bei false löst keine der nachstehenden OMNIROUTE_ROTATE_*-Klassen einen Kontowechsel aus (der deaktivierte Hauptschalter blockiert außerdem die standardmäßig aktivierten Klassen 429/500/502). Ermöglicht einer übergeordneten Front-End-Anwendung (z. B. der VibeProxy-Desktop-App), ihre eigenen Rotationsregeln auf die Konto-Fallback-Engine des Backends zu übertragen.
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS 0 open-sse/services/rotationConfig.ts Abklingzeit (Sekunden), die auf ein ratenbegrenztes Konto angewendet wird, wenn der Upstream keinen expliziten Hinweis zum Zurücksetzen liefert. 0 = statt einer festen Überschreibung die Standardabklingzeit der Engine verwenden.
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET true open-sse/services/rotationConfig.ts Entspricht der Frontend-Einstellung „Nicht als ratenbegrenzt markieren, wenn keine Rücksetzzeit angegeben ist“.
OMNIROUTE_ROTATE_ON_429 true open-sse/services/rotationConfig.ts Aktiviert den statusabhängigen Fallback für 429-Fehler. Bei false (und OMNIROUTE_ROTATION_ENABLED=true) löst ein 429 keine Kontorotation mehr aus und wird stattdessen an den Client zurückgegeben.
OMNIROUTE_ROTATE_429_THRESHOLD 1 open-sse/services/rotationConfig.ts Anzahl der 429-Fehler innerhalb von OMNIROUTE_ROTATE_429_WINDOW_SECONDS, die erforderlich ist, bevor das Konto rotiert wird. 1 (Standardwert) rotiert sofort und behält damit das bisherige Verhalten bei.
OMNIROUTE_ROTATE_429_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Gleitendes Zeitfenster (in Sekunden), innerhalb dessen 429-Fehler für OMNIROUTE_ROTATE_429_THRESHOLD gezählt werden.
OMNIROUTE_ROTATE_ON_500 true open-sse/services/rotationConfig.ts Aktiviert den statusabhängigen Fallback für 5xx-Serverfehler (mit Ausnahme von 502, für den eine eigene Klasse vorhanden ist). Bei false lösen diese Fehler keine Kontorotation mehr aus.
OMNIROUTE_ROTATE_500_THRESHOLD 1 open-sse/services/rotationConfig.ts Anzahl der 5xx-Fehler innerhalb von OMNIROUTE_ROTATE_500_WINDOW_SECONDS, die erforderlich ist, bevor das Konto rotiert wird. 1 (Standardwert) rotiert sofort.
OMNIROUTE_ROTATE_500_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Gleitendes Zeitfenster (in Sekunden), innerhalb dessen 5xx-Fehler für OMNIROUTE_ROTATE_500_THRESHOLD gezählt werden.
OMNIROUTE_ROTATE_ON_502 true open-sse/services/rotationConfig.ts Aktiviert den statusabhängigen Fallback für 502-Fehler („Bad Gateway“). Bei false lösen 502-Fehler keine Kontorotation mehr aus.
OMNIROUTE_ROTATE_502_THRESHOLD 1 open-sse/services/rotationConfig.ts Anzahl der 502-Fehler innerhalb von OMNIROUTE_ROTATE_502_WINDOW_SECONDS, die erforderlich ist, bevor das Konto rotiert wird. 1 (Standardwert) rotiert sofort.
OMNIROUTE_ROTATE_502_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Gleitendes Zeitfenster (in Sekunden), innerhalb dessen 502-Fehler für OMNIROUTE_ROTATE_502_THRESHOLD gezählt werden.
OMNIROUTE_ROTATE_ON_400 false open-sse/services/rotationConfig.ts Optional (standardmäßig AUS): Bei true löst auch ein einfacher 400-Fehler (ungültige Anfrage) eine Kontorotation aus. Dies ist lediglich eine Erweiterung – das bestehende Verhalten der Engine, bei dem ein 400-Fehler mit Text zu Ratenbegrenzung oder Kontingent unabhängig von diesem Flag weiterhin einen Fallback auslöst, wird dadurch niemals blockiert.
OMNIROUTE_ROTATE_400_THRESHOLD 1 open-sse/services/rotationConfig.ts Anzahl der 400-Fehler innerhalb von OMNIROUTE_ROTATE_400_WINDOW_SECONDS, die erforderlich ist, bevor das Konto rotiert wird (wird nur berücksichtigt, wenn OMNIROUTE_ROTATE_ON_400=true gilt).
OMNIROUTE_ROTATE_400_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Gleitendes Zeitfenster (in Sekunden), innerhalb dessen 400-Fehler für OMNIROUTE_ROTATE_400_THRESHOLD gezählt werden.

Cron-gesteuerter Warmup für aktivierte Anthropic-OAuth-Verbindungen, sodass das 5-Stunden-Zeitfenster für die Ratenbegrenzung durch eine einfache geplante Anfrage statt durch die erste echte Anfrage geöffnet wird (#8848). Der Scheduler ist deaktiviert, sofern OMNIROUTE_WARMUP_ENABLED nicht einen als wahr interpretierten Wert enthält und die Verbindung nicht in settings.claudeWarmup.connections gekennzeichnet ist; eine leere Verbindungsliste bedeutet, dass selbst bei aktivierter Umgebungsvariable kein Warmup durchgeführt wird.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_WARMUP_ENABLED (nicht gesetzt → aus) src/lib/warmupScheduler.ts Hauptschalter für den Warmup-Scheduler. Akzeptiert 1/true/yes/on (ohne Beachtung der Groß-/Kleinschreibung und nach Entfernung umgebender Leerzeichen). Bei jedem anderen Wert oder wenn die Variable nicht gesetzt ist, bleibt der Scheduler deaktiviert.
OMNIROUTE_WARMUP_CRON 0 7 * * * src/lib/warmupScheduler.ts Fünffeldriger Cron-Ausdruck für den Warmup-Durchlauf, der unabhängig von der Systemzeit des Hosts in America/Los_Angeles (Anthropics Zeitzone für das Zurücksetzen) ausgewertet wird.
OMNIROUTE_WARMUP_CONCURRENCY 3 src/lib/warmupScheduler.ts Anzahl der Verbindungen, für die pro Durchlauf parallel ein Warmup ausgeführt wird. Wird auf 1 bis 10 begrenzt; bei einem nicht numerischen Wert wird auf 3 zurückgegriffen.
OMNIROUTE_WARMUP_MODEL claude-3-5-haiku-20241022 src/lib/warmupScheduler.ts Für die Warmup-Anfrage verwendetes Modell. Überschreiben Sie diesen Wert nur, wenn der Standardwert in Ihrem Tarif nicht verfügbar ist; wählen Sie das günstigste Modell, das das Zeitfenster dennoch öffnet.

VNC-Sitzungen für die Browseranmeldung und Data-Dir-Alias

Abschnitt betitelt „VNC-Sitzungen für die Browseranmeldung und Data-Dir-Alias“

Containerisiertes Chromium+VNC für die interaktive Erfassung von Anmeldedaten über den Browser (/api/vnc-session) sowie ein veralteter DATA_DIR-Alias. Alles ist optional – die VNC-Standardwerte sind auf das enthaltene Image omniroute-vnc-chromium:local ausgelegt und werden nur für ein benutzerdefiniertes Container-Image, benutzerdefinierte Ports oder eine angepasste Lebenszyklussteuerung überschrieben.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Docker-Image-Tag für den Chromium+VNC-Anmeldecontainer. Erstellen Sie docker/vnc-browser/chromium, oder verweisen Sie hier auf ein benutzerdefiniertes Image.
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Binärdatei der Container-Laufzeitumgebung, die zum Starten des VNC-Containers verwendet wird (z. B. auf podman setzen).
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Im Container verfügbar gemachter VNC-/noVNC-Port.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Port des Chrome DevTools Protocol im Container.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Pfad zum Chromium-Profilverzeichnis im Container.
OMNIROUTE_VNC_PROFILE_DIR $HOME/.omniroute/browser-login-profiles src/lib/vncSession/manifest.ts Hostverzeichnis, das persistierte Browser-Anmeldeprofile enthält.
OMNIROUTE_VNC_IDLE_MS 600000 (10 Min.) src/lib/vncSession/manifest.ts Zeitüberschreitung bei Inaktivität (ms), nach der eine inaktive VNC-Sitzung bereinigt wird.
OMNIROUTE_VNC_MAX_MS 1800000 (30 Min.) src/lib/vncSession/manifest.ts Harte Obergrenze (ms) für die Lebensdauer einer einzelnen VNC-Sitzung.
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Maximale Anzahl gleichzeitiger VNC-Sitzungen.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Zeitüberschreitung (ms) beim Warten darauf, dass der containerisierte Browser für CDP bereit ist.
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Zeitüberschreitung (ms) für das Erfassen der aufgezeichneten Sitzung/Cookies nach Abschluss der Anmeldung.
OMNIROUTE_VNC_CHROMIUM_ARGS --remote-debugging-port=9222 --no-first-run --no-default-browser-check src/lib/vncSession/manifest.ts Zusätzliche Befehlszeilenoptionen, die an das containerisierte Chromium übergeben werden.
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Dediziertes Docker-Netzwerk, dem der VNC-Anmeldecontainer beitritt (#12571), anstatt die Standard-Bridge zu verwenden, sodass andere Container seinen CDP-Bridge-Port nicht erreichen können.
VIBEPROXY_DATA_DIR (nicht gesetzt) open-sse/services/notionThreadSessions.ts Veralteter Alias für DATA_DIR, der nur geprüft wird, wenn sowohl DATA_DIR als auch OMNIROUTE_DATA_DIR nicht gesetzt sind. Bestimmt den Speicherort des Notion-Web-Thread-Sitzungscaches (&lt;dir&gt;/notion-web-thread-sessions.json).

Verwendet von scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs, scripts/dev/run-ecosystem-tests.mjs und scripts/build/uninstall.mjs. Lassen Sie alle unten aufgeführten Werte in Produktionsumgebungen ungesetzt.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_E2E_BOOTSTRAP_MODE auth scripts/dev/run-next-playwright.mjs E2E-Bootstrap-Modus (auth, fresh, reuse) für den Playwright-Runner.
OMNIROUTE_E2E_PASSWORD fällt auf INITIAL_PASSWORD zurück scripts/dev/run-next-playwright.mjs In die Playwright-Umgebung eingefügtes Administratorpasswort.
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Deaktiviert die lokale Healthcheck-Abfrage während Playwright-Läufen.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Deaktiviert die Schleife zur Zustandsprüfung des OAuth-Tokens während Tests.
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS (nicht gesetzt) src/lib/tokenHealthCheck.ts Durch Kommas getrennte Anbieter, die vom proaktiven Durchlauf zur Token-Aktualisierung ausgeschlossen werden (z. B. codex,openai). Gezielte Alternative zur vollständigen Deaktivierung des Healthchecks – Anbieter mit kurzer TTL werden weiterhin aktualisiert, während Kaskadenanbieter ausschließlich reaktiv bleiben.
OMNIROUTE_HIDE_HEALTHCHECK_LOGS true scripts/dev/run-next-playwright.mjs Unterdrückt Healthcheck-Ausgaben in der Standardausgabe von Playwright.
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD 0 scripts/dev/run-next-playwright.mjs Überspringt den Next.js-Produktions-Build vor dem Start von Playwright (CI-Optimierung).
OMNIROUTE_SKIP_UNINSTALL_HOOK 0 scripts/build/uninstall.mjs Überspringt den Deinstallations-Hook von OmniRoute (wird von CI verwendet, um node_modules unverändert beizubehalten).
ECOSYSTEM_SERVER_WAIT_MS 180000 scripts/dev/run-ecosystem-tests.mjs Wartezeit (ms), bis der Server fehlerfrei ausgeführt wird, bevor Ökosystem-/Protokolltests ausgeführt werden.
ELECTRON_SMOKE_URL http://127.0.0.1:20128/login scripts/dev/smoke-electron-packaged.mjs URL, unter der die Electron-Smoke-Testumgebung die paketierte Anwendung erwartet.
ELECTRON_SMOKE_TIMEOUT_MS 45000 scripts/dev/smoke-electron-packaged.mjs Gesamtzeitlimit (ms), nach dem die Smoke-Testumgebung abbricht.
ELECTRON_SMOKE_SETTLE_MS 2000 scripts/dev/smoke-electron-packaged.mjs Beruhigungszeitraum (ms) nach dem Laden der Seite.
ELECTRON_SMOKE_APP_EXECUTABLE (automatisch) scripts/dev/smoke-electron-packaged.mjs Expliziter Pfad zur ausführbaren Datei der paketierten Electron-Anwendung.
ELECTRON_SMOKE_DATA_DIR (tmpdir) scripts/dev/smoke-electron-packaged.mjs Datenverzeichnis für den Electron-Smoke-Testlauf.
ELECTRON_SMOKE_KEEP_DATA 0 scripts/dev/smoke-electron-packaged.mjs Auf 1 setzen, um das Smoke-Test-Datenverzeichnis nach dem Durchlauf beizubehalten.
ELECTRON_SMOKE_STREAM_LOGS 0 scripts/dev/smoke-electron-packaged.mjs Auf 1 setzen, um Electron-Protokolle während des Durchlaufs an stdout zu übertragen.
ELECTRON_SMOKE_COLD_RESTART 0 scripts/dev/smoke-electron-packaged.mjs #7592: Mit demselben Datenverzeichnis neu starten und sicherstellen, dass beim zweiten Start der native SQLite-Treiber ausgewählt wird.
CLI_DEVIN_BIN (PATH-Suche) open-sse/executors/devin-cli.ts Pfad zur Devin-CLI-Binärdatei überschreiben.

Wird von scripts/i18n/run-translation.mjs (dem Befehl npm run i18n:run) verwendet. Alle fünf Variablen sind standardmäßig nicht gesetzt — legen Sie sie nur auf Rechnern in .env fest, auf denen der Dokumentationsübersetzer ausgeführt werden darf.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_TRANSLATION_API_URL (nicht gesetzt) scripts/i18n/run-translation.mjs OpenAI-kompatible Basis-URL für das Übersetzungs-Backend.
OMNIROUTE_TRANSLATION_API_KEY (nicht gesetzt) scripts/i18n/run-translation.mjs Bearer-Token für das Übersetzungs-Backend (wird niemals protokolliert).
OMNIROUTE_TRANSLATION_MODEL (nicht gesetzt) scripts/i18n/run-translation.mjs Modell-ID, z. B. gpt-4o-mini oder cx/gpt-5.4-mini.
OMNIROUTE_TRANSLATION_TIMEOUT_MS 60000 scripts/i18n/run-translation.mjs Zeitüberschreitung pro Anfrage in Millisekunden.
OMNIROUTE_TRANSLATION_CONCURRENCY 4 scripts/i18n/run-translation.mjs Parallele Übersetzungsanfragen bei der Verarbeitung mehrerer Dateien/Sprachvarianten.

Optionales Add-on, das durch das Feature-Flag RADAR_ENABLED gesteuert wird (standardmäßig deaktiviert — ein über Einstellungen/DB umgeschaltetes Feature-Flag, keine Umgebungsvariable; siehe docs/frameworks/RADAR.md). Die ersten vier Variablen unten sind optionale Überschreibungen für einen selbst gehosteten oder geforkten Feed sowie für Unterstützerschlüssel-Abläufe. Die fünfte Variable, RADAR_ADMIN_URL, ist ein separater Link ohne Standardwert zum privaten Betriebsbereich des Eigentümers. Die vollständige Moduldokumentation und die End-to-End-Sequenz für Aktivierung und geführte Einrichtung finden Sie unter docs/frameworks/RADAR.md.

Der allgemeine Ankündigungs-Reader für Startseite/Änderungsprotokoll wird nicht über eine Umgebungsvariable konfiguriert und ist nicht vom Feature-Flag RADAR_ENABLED abhängig. Er liest ausschließlich per GET die im öffentlichen Repository in src/shared/utils/releaseNotes.ts deklarierte URL zu news.json; IDs verworfener Meldungen verbleiben im lokalen Browser-Speicher.

Variable Standardwert Quelldatei Beschreibung
RADAR_FEED_URL https://radar.omniroute.online src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts Basis-URL, die vom separat signierten Katalog sowie den Empfehlungs-, Unterstützerangebots- und Intel-Feeds gemeinsam verwendet wird. Überschreiben Sie sie, um auf einen selbst gehosteten oder geforkten Dienst zu verweisen.
RADAR_FEED_PUBKEY (fest hinterlegter Standardschlüssel) src/lib/radar/pinnedKeys.ts Öffentlicher Ed25519-Schlüssel (base64-DER SPKI oder PEM), mit dem Feed-Signaturen eines benutzerdefinierten Feeds überprüft werden.
RADAR_CONTRIBUTOR_CLAIM_URL https://radar.omniroute.online/auth/github src/lib/radar/links.ts URL, die über die Dashboard-Schaltfläche „Ich bin Mitwirkender“ geöffnet wird (GitHub-OAuth-Ablauf zur Anforderung eines Unterstützerschlüssels).
RADAR_SUPPORTER_PLANS_URL https://radar.omniroute.online/planos src/lib/radar/links.ts URL, die über die Dashboard-Schaltfläche „Projekt unterstützen“ geöffnet wird (Zahlungs-/Tarifseite).
RADAR_ADMIN_URL (nicht festgelegt) src/lib/radar/links.ts Ausschließlich für den Eigentümer bestimmter Link zum privaten Betriebsbereich. HTTPS ist erforderlich, außer bei einer HTTP-Loopback-SSH-Weiterleitung; nicht festgelegte oder ungültige Werte erzeugen keinen Navigationseintrag.

Audit: Entfernte / nicht mehr verwendete Variablen

Abschnitt betitelt „Audit: Entfernte / nicht mehr verwendete Variablen“

Die folgenden Variablen waren in früheren Versionen von .env.example enthalten, weisen in der aktuellen Codebasis jedoch keine Laufzeitreferenzen auf. Sie wurden entfernt:

Variable Grund
STORAGE_DRIVER=sqlite Wird von keiner Quelldatei gelesen. SQLite ist der einzige unterstützte Treiber — keine Auswahl erforderlich.
INSTANCE_NAME=omniroute In alten Dokumentationen/Umgebungsvorlagen vorhanden, aber zur Laufzeit nicht verwendet. Könnte in einer zukünftigen Multi-Instanz-Funktion zurückkehren.
SQLITE_MAX_SIZE_MB=2048 Wird im Quellcode nicht referenziert. Die Datenbankgröße wird nicht künstlich begrenzt.
SQLITE_CLEAN_LEGACY_FILES=true Wird im Quellcode nicht referenziert. Die Bereinigung veralteter Dateien wurde wahrscheinlich entfernt.
CLI_ROO_BIN Ist nicht in src/shared/services/cliRuntime.ts registriert.
CLI_KIMI_CODING_BIN Ist nicht in src/shared/services/cliRuntime.ts registriert (Kimi Coding verwendet OAuth, keine CLI-Binärdatei).
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET Wird nirgendwo im Quellcode referenziert.
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 In v3.8.0 entfernt. Die Laufzeit liest diese Umgebungsvariablen nicht mehr — Anmeldedaten stammen aus dem Dashboard / data/provider-credentials.json / der verschlüsselten Datenbank.
CURSOR_PROTOBUF_DEBUG In v3.8.0 entfernt. Der Cursor-Executor verwendet CURSOR_DEBUG / CURSOR_STREAM_DEBUG (siehe §22).
CLI_COMPAT_KIRO In v3.8.0 entfernt. Kiro ist in CLI_COMPAT_OMITTED_PROVIDER_IDS enthalten — der Umschalter hat keine Wirkung.
QIANFAN_API_KEY In v3.8.0 zusammen mit anderen nicht verwendeten Platzhaltern für Anbieter-API-Schlüssel entfernt.
Variable Alter Wert in .env.example Tatsächlicher Standardwert im Code Korrektur
APP_LOG_RETENTION_DAYS 90 7 ✅ Irreführenden Wert entfernt; 7 als Standard dokumentiert
CALL_LOG_RETENTION_DAYS 90 7 ✅ Irreführenden Wert entfernt; 7 als Standard dokumentiert

Neugenerierung der OpenCode-Konfiguration (Ad-hoc-Werkzeug)

Abschnitt betitelt „Neugenerierung der OpenCode-Konfiguration (Ad-hoc-Werkzeug)“

Wird von scripts/ad-hoc/regen-opencode-config.ts verwendet, um eine opencode.json mit korrekten Werten für limit.context und limit.output neu zu generieren, die aus der laufenden OmniRoute-Instanz abgerufen werden. Keine dieser Variablen ist für den normalen Betrieb erforderlich — das Skript dient ausschließlich als Entwicklerwerkzeug.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_URL http://localhost:20128 scripts/ad-hoc/regen-opencode-config.ts Basis-URL der OmniRoute-Instanz, die nach /v1/models abgefragt wird.
OMNIROUTE_KEY (nicht gesetzt) scripts/ad-hoc/regen-opencode-config.ts API-Schlüssel zur Authentifizierung am OmniRoute-Endpunkt /v1/models. Greift auf OPENCODE_API_KEY zurück, wenn die Variable nicht gesetzt ist.
OPENCODE_API_KEY (nicht gesetzt) scripts/ad-hoc/regen-opencode-config.ts API-Schlüssel im OpenCode-Stil (sk-...), der in die neu generierte Datei opencode.json geschrieben wird. Greift auf OMNIROUTE_KEY zurück, wenn die Variable nicht gesetzt ist.

Offline-Evaluierungsumgebung für die Komprimierung (Ad-hoc-Werkzeuge)

Abschnitt betitelt „Offline-Evaluierungsumgebung für die Komprimierung (Ad-hoc-Werkzeuge)“

Wird von scripts/compression-eval/index.ts, der CLI zur Offline-Evaluierung der Komprimierung, verwendet. Für den normalen Betrieb nicht erforderlich – nur für Entwicklerwerkzeuge.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_EVAL_CREDENTIALS {} (leer) scripts/compression-eval/index.ts Vom Betreiber bereitgestellte JSON-Anmeldedaten für den Provider, der von der CLI zur Offline-Komprimierungsevaluierung verwendet wird (mit JSON.parse geparst). Für einen Testlauf nicht setzen.

Wird von src/lib/vncSession/manifest.ts verwendet, um Docker-basierte, monitorlose Chromium-Sitzungen für Browserautomatisierungs-Provider zu konfigurieren. Alle Variablen sind optional – die Standardwerte sind unten aufgeführt.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Pfad zur Docker-Binärdatei, die zum Starten von VNC-Containern verwendet wird.
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Docker-Image für den VNC-Chromium-Container.
OMNIROUTE_VNC_CHROMIUM_ARGS (integrierte Flags) src/lib/vncSession/manifest.ts Zusätzliche Chromium-CLI-Argumente, die an den Browser im Container übergeben werden.
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts VNC-Port innerhalb des Containers.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Port für das Chrome DevTools Protocol innerhalb des Containers.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Profilverzeichnis innerhalb des Containers.
OMNIROUTE_VNC_PROFILE_DIR (nicht gesetzt) src/lib/vncSession/manifest.ts Hostseitiges Verzeichnis für persistente Browserprofile.
OMNIROUTE_VNC_IDLE_MS 600000 src/lib/vncSession/manifest.ts Zeitlimit bei Inaktivität (ms), nach dem eine VNC-Sitzung beendet wird.
OMNIROUTE_VNC_MAX_MS 1800000 src/lib/vncSession/manifest.ts Maximale Sitzungsdauer (ms).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Maximale Anzahl gleichzeitiger VNC-Sitzungen.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Zeitlimit für die Browserbereitschaft (ms).
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Zeitlimit für Beendigung/Bereinigung (ms).
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Dediziertes Docker-Netzwerk, dem der Container beitritt (#12571), außerhalb der standardmäßigen Bridge.
VIBEPROXY_DATA_DIR (nicht gesetzt) open-sse/services/notionThreadSessions.ts Verzeichnis für die persistente Speicherung von Notion-Thread-Sitzungen.
Variable Standardwert Beschreibung
OMNIROUTE_INTERNAL_SERVICE_TOKEN – Direkt angegebener Token für die Dienst-zu-Dienst-Authentifizierung auf der Verwaltungsebene.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE – Pfad zu einer Datei, die den internen Dienst-Token enthält (in Containern bevorzugt; überschreibt die direkt angegebene Variable).
Variable Standardwert Beschreibung
OPENROUTER_PROVIDER_STATS_ENABLED true Auf false setzen, um das Abrufen anbieterspezifischer OpenRouter-Statistiken zur Kataloganreicherung zu überspringen.
OPENROUTER_PROVIDER_STATS_TTL_MS 3600000 Cache-Gültigkeitsdauer (ms) für die abgerufenen OpenRouter-Providerstatistiken.
Variable Standardwert Beschreibung
REDIS_BIND_HOST 127.0.0.1 Bind-Adresse für den eingebetteten Redis-Dienst.
REDIS_PORT 6379 Port für den eingebetteten Redis-Dienst.
OMNIROUTE_REDIS_BIND_HOST – OmniRoute-spezifische Überschreibung für die Bind-Adresse des eingebetteten Redis-Dienstes.

Diese Einstellungen wurden nach dem vorherigen Snapshot des Umgebungsvertrags eingeführt.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS 2000 src/shared/middleware/chatBodyAdmission.ts Maximale Wartezeit auf einen Admission-Slot für ressourcenintensive Chats, bevor ein wiederholbarer 503 zurückgegeben wird; eine kurze, begrenzte Wartezeit serialisiert Agentenlastspitzen, anstatt sofort einen 503 zurückzugeben. 0 stellt die sofortige Ablehnung wieder her.
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES 4194304 (4 MB) src/shared/middleware/chatBodyAdmission.ts Budget für die Byteanzahl in der Admission-Warteschlange: Begrenzt die Gesamtzahl gepufferter Body-Bytes, die prozessweit vorgehalten werden, damit die Wartezeit die Heap-Nutzung nicht verstärken kann (#4380). Wartevorgänge, die das Budget überschreiten, erhalten sofort einen wiederholbaren 503.
OMNIROUTE_CHAT_VIRTUAL_TTL_MS 60000 (60 s) src/shared/middleware/chatBodyAdmission.ts Seit #10110 veraltete Einstellung ohne Wirkung: Sitzungsbezogene Admission-Lanes wurden zugunsten eines einzigen prozessweiten Budgets entfernt. Wird zur Konfigurationskompatibilität akzeptiert, aber ignoriert.
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS 64 src/shared/middleware/chatBodyAdmission.ts Seit #10110 veraltete Einstellung ohne Wirkung: Sitzungsbezogene Admission-Lanes wurden zugunsten eines einzigen prozessweiten Budgets entfernt. Wird zur Konfigurationskompatibilität akzeptiert, aber ignoriert.
OMNIROUTE_CHAT_VIRTUAL_LANES 0 (aus) open-sse/services/admission/runtime.ts Adaptive virtuelle Runtime-Admission-Lanes (#9654): Hauptschalter für das mandantenspezifische adaptive Gate (System 2). Nicht zu verwechseln mit den oben genannten veralteten verbindungsspezifischen Lane-Variablen (TTL_MS / MAX_SESSIONS, seit #10110 ohne Wirkung). Dashboard-Feature-Flag gleichen Namens; die Umgebungsvariable hat Vorrang vor der Dashboard-Überschreibung; erfordert einen Neustart.
OMNIROUTE_RUNNOW_TIMEOUT_MS 30000 src/app/api/jobs/[id]/run-now/route.ts Begrenzt, wie lange ein run-now-Aufruf auf einen bereits laufenden Job wartet, bevor die eingereihte Ausführung gestartet wird.
ADOBE_FIREFLY_BROWSER_REFRESH aktiviert open-sse/services/adobeFireflySession.ts Hält den IMS- und Browser-Risikostatus über kontobezogene Chrome-CDP-Sitzungen aktuell; zum Deaktivieren auf 0 setzen.
ADOBE_FIREFLY_SESSION_DISK aktiviert open-sse/services/adobeFireflySession.ts Speichert reparierte Adobe-Sitzungen dauerhaft unter DATA_DIR; für einen ausschließlich im Arbeitsspeicher gehaltenen Status auf 0 setzen.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Mindestabstand zwischen Übermittlungen zur Generierung mit Adobe Firefly.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Zusätzliche Ruhephase nach jeder dritten erfolgreichen Adobe-Übermittlung.
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Ausschließlich zur Fehlerbehebung vorgesehener echter Headless-Modus; Adobe colligo lehnt die daraus resultierende Risikositzung normalerweise ab.
CHROME_PATH automatische Erkennung open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts Optionaler absoluter Pfad zur ausführbaren Chrome-Datei, der von den browsergesteuerten Executoren verwendet wird, wenn die automatische Plattformerkennung nicht ausreicht.
TELEGRAM_BOT_TOKEN (nicht gesetzt) src/lib/telegram/config.ts BotFather-Token, das den eingehenden Webhook aktiviert und initData der Mini App signiert.
TELEGRAM_WEBHOOK_SECRET (nicht gesetzt) src/lib/telegram/config.ts Gemeinsames Geheimnis, das über setWebhook registriert und bei jeder Webhook-Zustellung anhand des Headers X-Telegram-Bot-Api-Secret-Token überprüft wird. Für den Webhook-Pfad erforderlich; ist es nicht gesetzt, werden Webhook-Zustellungen mit 503 abgelehnt.
TELEGRAM_DEFAULT_MODEL auto/chat src/lib/telegram/chatProxy.ts Für Telegram-Chatantworten verwendetes Modell.
TELEGRAM_BOT_API_BASE https://api.telegram.org src/lib/telegram/config.ts Überschreibung der Bot-API-Basis-URL für Proxys oder selbst gehostete Bot-API-Server.
TELEGRAM_WEBHOOK_TIMEOUT_MS 60000 src/lib/telegram/config.ts Zeitüberschreitung in Millisekunden für ausgehende Bot-API-Aufrufe.
OMNIROUTE_OPTIONAL_PACK_TAR 1 (aktiviert) scripts/build/optionalPackStaging.mjs Auf 0 setzen, um die Ausgabe von .tar.gz-Tarballs beim Staging optionaler ML-/Browser-Pakete für den eigenständigen Electron-Verzeichnisbaum zu überspringen (Paketverzeichnisse und optional-packs.index.json werden weiterhin erzeugt). Wird vom Desktop-Release-Workflow verwendet, um die Upload-Größe der Artefakte zu reduzieren.

Globale Standardwerte für den Headless-Browser und den ausgehenden Tool-Tunnel. Im Dashboard festgelegte Verbindungswerte haben Vorrang.

Variable Standardwert Quelldatei Beschreibung
CHATGPT_WEB_CODEX_CHROME_PATH (automatische Erkennung) open-sse/executors/chatgpt-web-codex.ts Expliziter Chrome-/Chromium-Pfad für npm-, systemd- und PM2-Betrieb.
CHROME_PATH (automatische Erkennung) open-sse/executors/chatgpt-web-codex.ts Gemeinsamer Rückfallwert für einen expliziten Chrome-/Chromium-Pfad.
CHATGPT_WEB_CODEX_CDP_URL (nicht gesetzt) open-sse/executors/chatgpt-web-codex.ts Interner CDP-Endpunkt; Docker verwendet den Sidecar auf Port 9223.
CDP_PROXY_TOKEN (nicht gesetzt) docker/chatgpt-web-codex-browser/cdp-proxy.mjs Wenn gesetzt, muss jede Anfrage an den CDP-Proxy-Sidecar diesen Wert im Header X-Omni-Cdp-Token mitsenden (#13679). Ohne Wert leitet der Proxy Anfragen ohne Authentifizierung weiter – dann bietet nur die Netzwerkisolierung des Compose-Netzes chatgpt-web-codex-net Schutz. Erzeugen mit openssl rand -hex 32.
CHATGPT_WEB_CODEX_TUNNEL_ID (nicht gesetzt) open-sse/executors/chatgpt-web-codex.ts Globale OpenAI-Tunnel-ID für lokale Codex-Tool-Runden.
CHATGPT_WEB_CODEX_RUNTIME_KEY (nicht gesetzt) open-sse/executors/chatgpt-web-codex.ts Globaler Tunnel-Laufzeitschlüssel; niemals in Protokollen ausgeben.
CHATGPT_WEB_CODEX_CONNECTOR_NAME OmniRoute Codex v2 open-sse/executors/chatgpt-web-codex.ts Exakter Name des neu erstellten benutzerdefinierten ChatGPT-Connectors für die MCP-Brücke.
CODEX_CHATGPT_WEB_HOME <DATA_DIR>/chatgpt-web-codex open-sse/vendor/codex-chatgpt-web/config.ts Dediziertes Verzeichnis für Browser-, Broker- und Tunnelzustand.
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS 0 open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts Bei 1 werden an jedem Prüfpunkt Browser-Diagnosebilder erfasst.
CODEX_CHATGPT_WEB_LAUNCHER (nicht gesetzt) open-sse/vendor/codex-chatgpt-web/config.ts Optionaler absoluter Pfad zu einer dauerhaften Launcher-Binärdatei.
CODEX_CHATGPT_WEB_BUN (automatische Erkennung) open-sse/vendor/codex-chatgpt-web/config.ts Optionaler absoluter Pfad zur Bun-Laufzeit-Binärdatei.
CODEX_WEB_GPT_BUN (nicht gesetzt) open-sse/vendor/codex-chatgpt-web/config.ts Legacy-Rückfalloption für CODEX_CHATGPT_WEB_BUN; neue Installationen verwenden den kanonischen Namen.

Langlebiger SSE-Consumer, der Aufgaben des OmniConductor-Hubs in den lokalen A2A TaskManager (src/lib/conductor/) spiegelt. Opt-in — die Bridge wird nur gestartet, wenn CONDUCTOR_HUB_URL gesetzt ist. Nur serverseitig: Das Hub-Token darf niemals den Browser erreichen.

Variable Standardwert Quelldatei Beschreibung
CONDUCTOR_HUB_URL (leer) src/lib/conductor/boot.ts Basis-URL des OmniConductor-Hubs (z. B. http://127.0.0.1:7910). Nicht gesetzt = Bridge deaktiviert.
CONDUCTOR_HUB_TOKEN (leer) src/lib/conductor/boot.ts Hub-Anmeldedaten für den SSE-Feed — einen Peer vom Typ spokesperson auf dem Hub erstellen (POST /v1/peers, Administrator).
CONDUCTOR_ORCHESTRATOR_TOKEN (leer) src/lib/conductor/hubProxy.ts Anmeldedaten für die eingehende A2A→Hub-Aufgabendelegierung (POST /v1/tasks); greift auf CONDUCTOR_HUB_TOKEN zurück, wenn nicht gesetzt.
CONDUCTOR_SPOKESPERSON_URL http://127.0.0.1:7920 src/lib/conductor/faroProxy.ts Basis-URL des Spokesperson-Dienstes (Faro) hinter dem Dashboard-Chat-Proxy (/api/conductor/ask).

Wird von open-sse/services/combo.ts und src/lib/quota/quotaScheduler.ts für Token-Budget-Prüfungen vor Anfragen verwendet. Opt-in — das standardmäßige Routing-Verhalten bleibt unverändert, wenn die Variable nicht gesetzt ist.

Variable Standardwert Quelldatei Beschreibung
OMNIROUTE_QUOTA_AWARE_ROUTING 0 open-sse/services/combo.ts Wenn auf 1 gesetzt, werden Verbindungen übersprungen, deren Token-Budget pro Zeitfenster (rateLimitOverrides.tpm, Tabelle provider_quota_state) die geschätzten Anfragekosten vor der Weiterleitung nicht abdecken kann. Wenn kein Budget konfiguriert ist, wird die Anfrage dennoch zugelassen.

OmniRoute-Quellcode (a58000c7685f)

HagiCode

HagiCode ist ein agentischer Coding-Arbeitsplatz mit strukturierten Workflows, Multi-Agent-Ausführung und Hero-Dungeon-Ansichten.

Mit einem intelligenteren, schnelleren und unterhaltsameren agentischen Workflow wird aus Ideen nutzbare Software.

HagiCode-Hauptoberfläche im hellen Design
  • SmartStrukturierte Workflows machen aus Absichten einen umsetzbaren Weg von der Idee bis zur Auslieferung.
  • EfficientMulti-Agent-Workflows führen Recherche, Umsetzung und Prüfung parallel aus.
  • FunHero Dungeon macht lange Coding-Sitzungen anschaulich und gemeinschaftlich.
HagiCode besuchen