Environment Variables Reference (Deutsch)
Inhaltsverzeichnis
Abschnitt betitelt „Inhaltsverzeichnis“- 1. Erforderliche Geheimnisse
- 2. Speicher & Datenbank
- 3. Netzwerk & Ports
- 4. Sicherheit & Authentifizierung
- 5. Eingabebereinigung & Schutz personenbezogener Daten
- 6. Tool- & Routing-Richtlinien
- 7. URLs & Cloud-Synchronisierung
- 8. Ausgehender Proxy
- 9. CLI-Tool-Integration
- 10. Interne Agenten- & MCP-Integrationen
- 11. Anmeldedaten für OAuth-Anbieter
- 12. Überschreibungen des User-Agents von Anbietern
- 13. CLI-Fingerprint-Kompatibilität
- 14. API-Schlüssel-Anbieter
- 15. Zeitüberschreitungseinstellungen
- 16. Protokollierung
- 17. Speicheroptimierung
- 18. Preissynchronisierung
- 19. Modellsynchronisierung (Entwicklung)
- 20. Anbieterspezifische Einstellungen
- 21. Proxy-Zustand
- 22. Fehlerbehebung
- 23. GitHub-Integration
- 24. Skills-Sandbox (v3.8.0+)
- 27. Radar-Feed (Selbsthosting)
- Bereitstellungsszenarien
- Audit: Entfernte / nicht verwendete Variablen
1. Erforderliche Geheimnisse
Abschnitt betitelt „1. Erforderliche Geheimnisse“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. |
Generierungsbefehle
Abschnitt betitelt „Generierungsbefehle“# 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..gitignoreschließt.envbereits aus, überprüfe dies jedoch vor dem Pushen.
2. Speicher & Datenbank
Abschnitt betitelt „2. Speicher & Datenbank“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 eingebundeneDATA_DIRdiese Garantien nicht bieten kann, wird der Startvorgang vor der Anwendung einer Migration sicher abgebrochen. Verschieben SieDATA_DIRauf ein Volume, das diese Operationen unterstützt; verwenden Sie nichtDISABLE_SQLITE_AUTO_BACKUP, um die Migrationssicherheit zu umgehen.
Szenarien
Abschnitt betitelt „Szenarien“| 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. |
3. Netzwerk & Ports
Abschnitt betitelt „3. Netzwerk & Ports“| 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) |
Portmodi
Abschnitt betitelt „Portmodi“┌────────────────────────── 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. │└─────────────────────────────────────────────────────────────────────────────┘4. Sicherheit & Authentifizierung
Abschnitt betitelt „4. Sicherheit & Authentifizierung“| 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). |
Checkliste zur Absicherung
Abschnitt betitelt „Checkliste zur Absicherung“# Mindestanforderungen an die Produktionssicherheit:AUTH_COOKIE_SECURE=true # Erfordert HTTPSREQUIRE_API_KEY=true # Alle Proxy-Aufrufe authentifizierenALLOW_API_KEY_REVEAL=false # Schlüssel niemals in der Benutzeroberfläche offenlegenCORS_ALLOWED_ORIGINS=https://your.domain.comMAX_BODY_SIZE_BYTES=5242880 # Begrenzung auf 5 MB5. 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.
Eingangsseitig: Schutz vor Prompt-Injection
Abschnitt betitelt „Eingangsseitig: Schutz vor Prompt-Injection“| 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. |
Szenarien
Abschnitt betitelt „Szenarien“| 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 |
6. Tool- & Routing-Richtlinien
Abschnitt betitelt „6. Tool- & Routing-Richtlinien“| 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 <key> 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. |
7. URLs & Cloud-Synchronisierung
Abschnitt betitelt „7. URLs & Cloud-Synchronisierung“| 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_URLauf 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_URLals interne Loopback-/Container-URL für Server-zu-Server-Aufgaben bei. Verwenden Sie für interne Self-Fetches mit Anmeldedaten weder einen Browser-Originnoch 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, sofernOMNIROUTE_TRUST_PROXYnicht 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.
8. Ausgehender Proxy
Abschnitt betitelt „8. Ausgehender Proxy“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. |
Szenarien
Abschnitt betitelt „Szenarien“| 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 vonsafeOutboundFetch({ bypassProxyPatch: true }). Dies ist eine dokumentierte, klar eingegrenzte Ausnahme — sie wirkt sich nicht auf ausgehenden Chat-/Nutzungsdatenverkehr aus. Die Eingrenzung der Umgehung wird durchtests/unit/proxy-bypass-scope-guard-3226.test.tsabgesichert.
9. Integration von CLI-Tools
Abschnitt betitelt „9. Integration von CLI-Tools“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 |
<runtimeRoot>/node |
open-sse/executors/zcode.ts |
Node-Programmdatei, die zum Hosten des ZCode-App-Servers verwendet wird. |
ZCODE_SERVER_ENTRY |
<runtimeRoot>/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). |
Automatische Synchronisierung von CLI-Profilen
Abschnitt betitelt „Automatische Synchronisierung von CLI-Profilen“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/<name>/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. |
Docker-Beispiel
Abschnitt betitelt „Docker-Beispiel“# Host-Binärdateien in den Container einhängen und OmniRoute mitteilen, wo sie sich befinden:CLI_EXTRA_PATHS=/host-cli/binCLI_CONFIG_HOME=/host-homeCLI_ALLOW_CONFIG_WRITES=trueCLI_CLAUDE_BIN=/host-cli/bin/claudeCLI_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). |
10. Interne Agenten- und MCP-Integrationen
Abschnitt betitelt „10. Interne Agenten- und MCP-Integrationen“| 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 <name>. |
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. |
OAuth-CLI-Brücke (intern)
Abschnitt betitelt „OAuth-CLI-Brücke (intern)“| 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. |
11. Anmeldedaten für OAuth-Anbieter
Abschnitt betitelt „11. Anmeldedaten für OAuth-Anbieter“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]
- Öffnen Sie Google Cloud Console → Anmeldedaten
- Erstellen Sie eine OAuth-2.0-Client-ID (Typ: „Webanwendung“)
- Fügen Sie Ihre Server-URL als autorisierten Weiterleitungs-URI hinzu
- Ersetzen Sie die Anmeldedatenwerte in
.env.
12. Provider-User-Agent-Überschreibungen
Abschnitt betitelt „12. Provider-User-Agent-Überschreibungen“Ü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_AGENThinzufügen. Der Executor erstellt den Namen der Umgebungsvariablen dynamisch.
13. CLI-Fingerprint-Kompatibilität
Abschnitt betitelt „13. CLI-Fingerprint-Kompatibilität“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
Nach Anbieter
Abschnitt betitelt „Nach Anbieter“| 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. |
Überschreibungen der Kimi-Coding-CLI-Identität
Abschnitt betitelt „Überschreibungen der Kimi-Coding-CLI-Identität“| 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.
14. API-Schlüssel-Anbieter
Abschnitt betitelt „14. API-Schlüssel-Anbieter“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.jsonoder 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- undjina-search-Anfragen belasten keinen Cluster-Umgebungsschlüssel, wenn eine Dashboard-Verbindung fürjina-ai(oder eine gemeinsam genutztejina-reader-Verbindung) vorhanden ist —getProviderCredentialsarbeitet nach dem Fill-first-Prinzip.JINA_AI_API_KEY/JINA_API_KEYwerden nur verwendet, wenn kein nutzbarer Dashboard-Schlüssel vorhanden ist. In Aufrufprotokollen wird der Umgebungs-Fallback alsconnection_id=env:JINA_AI_API_KEYausgewiesen. Die Reader-Karte (jina-reader,r.jina.ai) bedient niemals/v1/embeddingsoder/v1/rerank.Gemini:
gemini/gemini-embedding-2(Aliasgoogle/gemini-embedding-2) verwendet zuerst die Dashboard-Verbindunggemini.GEMINI_API_KEY/GOOGLE_API_KEYwerden nur verwendet, wenn kein nutzbarer Dashboard-Schlüssel vorhanden ist. In Aufrufprotokollen wird der Umgebungs-Fallback alsconnection_id=env:GEMINI_API_KEYausgewiesen. Nativer multimodaler Datenverkehr verwendetx-goog-api-keyfür:embedContent/:batchEmbedContents— N OpenAI-input-Elemente ergeben N Vektoren.
15. Timeout-Einstellungen
Abschnitt betitelt „15. Timeout-Einstellungen“Alle Werte sind in Millisekunden angegeben. Die zentrale Auflösung erfolgt in src/shared/utils/runtimeTimeouts.ts.
Timeout-Hierarchie
Abschnitt betitelt „Timeout-Hierarchie“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.
Schwellenwerte des Circuit Breakers
Abschnitt betitelt „Schwellenwerte des Circuit Breakers“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. |
Szenarien
Abschnitt betitelt „Szenarien“| 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) |
16. Protokollierung
Abschnitt betitelt „16. Protokollierung“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. |
17. Speicheroptimierung
Abschnitt betitelt „17. Speicheroptimierung“| 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. |
Komprimierung
Abschnitt betitelt „Komprimierung“| 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. |
Speicher-Engine (Plan 21)
Abschnitt betitelt „Speicher-Engine (Plan 21)“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. |
Docker-Beispiel für wenig RAM
Abschnitt betitelt „Docker-Beispiel für wenig RAM“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.
OMNIROUTE_MEMORY_MB=128PROMPT_CACHE_MAX_SIZE=20PROMPT_CACHE_MAX_BYTES=524288 # 512 KBSEMANTIC_CACHE_MAX_SIZE=25SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MBSTREAM_HISTORY_MAX=1018. Preis-Synchronisierung
Abschnitt betitelt „18. Preis-Synchronisierung“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. |
Arena-ELO-Synchronisierung
Abschnitt betitelt „Arena-ELO-Synchronisierung“| 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. |
Kilo-Code-Nutzungskontingente
Abschnitt betitelt „Kilo-Code-Nutzungskontingente“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. |
19. Modellsynchronisierung (Entwicklung)
Abschnitt betitelt „19. Modellsynchronisierung (Entwicklung)“| 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. |
20. Anbieterspezifische Einstellungen
Abschnitt betitelt „20. Anbieterspezifische Einstellungen“| 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 <path> 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.
21. Proxy-Zustand
Abschnitt betitelt „21. Proxy-Zustand“| 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 überopen-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, istRELAY_IP_PER_MINUTE(§3 Netzwerk & Ports).
22. Debugging
Abschnitt betitelt „22. Debugging“[!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-<hash>) 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/<id>); 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). |
23. GitHub-Integration
Abschnitt betitelt „23. GitHub-Integration“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. |
Bereitstellungsszenarien
Abschnitt betitelt „Bereitstellungsszenarien“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.
Minimale lokale Entwicklung
Abschnitt betitelt „Minimale lokale Entwicklung“JWT_SECRET=$(openssl rand -base64 48)API_KEY_SECRET=$(openssl rand -hex 32)INITIAL_PASSWORD=dev123PORT=20128NODE_ENV=developmentDocker-Produktion
Abschnitt betitelt „Docker-Produktion“JWT_SECRET=<generiert>API_KEY_SECRET=<generiert>INITIAL_PASSWORD=<generiert>STORAGE_ENCRYPTION_KEY=<generiert>DATA_DIR=/dataPORT=20128API_PORT=20129NODE_ENV=productionAUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://localhost:20128OMNIROUTE_MEMORY_MB=8192CORS_ORIGIN=https://your-frontend.example.comAbgeschottete Umgebung / CI
Abschnitt betitelt „Abgeschottete Umgebung / CI“JWT_SECRET=test-jwt-secret-for-ciAPI_KEY_SECRET=test-api-key-secret-for-ciINITIAL_PASSWORD=testpassNODE_ENV=productionOMNIROUTE_DISABLE_BACKGROUND_SERVICES=trueAPP_LOG_TO_FILE=falseVPS mit Reverse-Proxy (nginx + Cloudflare)
Abschnitt betitelt „VPS mit Reverse-Proxy (nginx + Cloudflare)“JWT_SECRET=<generiert>API_KEY_SECRET=<generiert>STORAGE_ENCRYPTION_KEY=<generiert>PORT=20128AUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://127.0.0.1:20128CORS_ORIGIN=https://omniroute.example.comENABLE_TLS_FINGERPRINT=trueCLI_COMPAT_ALL=124. Skills-Sandbox (v3.8.0+)
Abschnitt betitelt „24. Skills-Sandbox (v3.8.0+)“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 mitOUTBOUND_SSRF_GUARD_ENABLED=trueund einer striktenCORS_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 <key>). 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/<category>:<tier>-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:<port>), 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 <token> 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. |
Claude-Warmup-Scheduler
Abschnitt betitelt „Claude-Warmup-Scheduler“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 (<dir>/notion-web-thread-sessions.json). |
26. Test- & E2E-Harness
Abschnitt betitelt „26. Test- & E2E-Harness“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. |
Übersetzungs-Pipeline für die Dokumentation
Abschnitt betitelt „Übersetzungs-Pipeline für die Dokumentation“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. |
27. Radar-Feed (Self-Hosting)
Abschnitt betitelt „27. Radar-Feed (Self-Hosting)“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. |
Korrekturen der Standardwerte
Abschnitt betitelt „Korrekturen der Standardwerte“| 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. |
VNC-Browsersitzungen
Abschnitt betitelt „VNC-Browsersitzungen“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. |
Interne Dienstauthentifizierung
Abschnitt betitelt „Interne Dienstauthentifizierung“| 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). |
OpenRouter-Providerstatistiken
Abschnitt betitelt „OpenRouter-Providerstatistiken“| 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. |
Eingebettete Redis-Bindung
Abschnitt betitelt „Eingebettete Redis-Bindung“| 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. |
24. Ergänzungen in Release v3.8.50
Abschnitt betitelt „24. Ergänzungen in Release v3.8.50“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. |
ChatGPT Web (Codex)
Abschnitt betitelt „ChatGPT Web (Codex)“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. |
OmniConductor Bridge
Abschnitt betitelt „OmniConductor Bridge“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). |
Kontingentbewusste Planung
Abschnitt betitelt „Kontingentbewusste Planung“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. |
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.

- 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.