
Open-Source-Link-Analyse- & OSINT-Framework
<div align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12241/4d60ae367bb5f1d9b7d1d95df2b16186f01454c9610e40703f636923a0a70ced.png" alt="OGI Mascot" width="200" /> # OpenGraph Intel (OGI) **Open-Source-Framework für visuelle Linkanalyse und OSINT.** **Kostenlos, selbst hostbar und gemeinschaftsgetrieben.** [](https://www.gnu.org/licenses/agpl-3.0) [](https://github.com/khashashin/ogi/actions/workflows/ci.yml) [](https://github.com/khashashin/ogi/actions/workflows/docker-publish.yml) [](https://www.python.org) [](https://www.typescriptlang.org) [](https://react.dev) [](https://fastapi.tiangolo.com)  [Funktionen](#features) • [Bildschirmfotos](#screenshots) • [Schnellstart](#quick-start) • [Docker](#docker) • [Transform-Hub](#transform-hub) • [Architektur](#architecture) • [Mitwirken](#contributing) </div> --- > **Hinweis:** Dieses Projekt entwickelt sich aktiv weiter. Es verfügt über solide Kernfunktionen und Testabdeckung, und wir verbessern mit jedem Release kontinuierlich die Dokumentation, Härtung und Funktionstiefe. Beiträge, Fehlermeldungen und Rückmeldungen sind sehr willkommen. ## Funktionen - **Visuelle Graphenuntersuchung** — Entitäten per Drag-and-Drop verschieben, Verbindungen interaktiv erkunden - **20+ integrierte Transforms** — DNS, WHOIS, SSL-Zertifikate, Geolokalisierung, Web-/E-Mail-/Hash-/Social-Anreicherung und mehr - **Transform-Hub** — Community-Transforms aus der [Registry](https://github.com/opengraphintel/ogi-transforms) durchsuchen und installieren - **KI-Ermittler** — promptgesteuerte agentische Untersuchungen, die Transform-Abläufe planen, Fortschritte live streamen und Ergebnisse mit Nachvollziehbarkeit zusammenfassen - **Import / Export** — Import im JSON-, CSV-, GraphML- und MTGX-Format - **Graphenanalyse** — Zentralität, Gemeinschaftserkennung, kürzeste Pfade - **Echtzeit-Zusammenarbeit** — Projekte, Teilen und Live-Synchronisation über Supabase Realtime - **Asynchrone Transform-Jobs** — Redis/RQ-Warteschlange mit WebSocket-Fortschrittsaktualisierungen - **Plugin-System** — verzeichnisbasierte Plugin-Erkennung mit YAML-Manifesten - **CLI-Werkzeug** — Transforms über das Terminal suchen, installieren und verwalten - **Läuft überall** — lokaler SQLite-Modus (null Konfiguration) oder PostgreSQL + Supabase für Team-/Cloud-Setups - **Docker-bereit** — Ein-Kommando-Bereitstellung mit `docker compose up` ## Bildschirmfotos <div align="center"> | Graphenuntersuchung | Entitätenanreicherung | | :---------------------------------------------: | :-----------------------------------------------: | |  |  | | Transform-Hub | Export / Import | | :-------------------------------------: | :-------------------------------------: | |  |  | </div> ## Schnellstart ### Voraussetzungen | Werkzeug | Version | | -------------------------------- | ------- | | [Python](https://www.python.org) | 3.14+ | | [uv](https://docs.astral.sh/uv/) | latest | | [Node.js](https://nodejs.org) | 20+ | | [pnpm](https://pnpm.io) | latest | ### Backend```bash cd backend uv sync uv run uvicorn ogi.main:app --reload ``` Die API wird unter `http://localhost:8000` verfügbar sein. Für die lokale Transform-Ausführung müssen Redis und der transform worker ebenfalls laufen. Redis allein reicht nicht.```bash docker run -d --name ogi-redis -p 6379:6379 redis:7-alpine ``` Starten Sie den Transform-Worker in einem zweiten Terminal:```bash cd backend uv run python -m ogi.worker.run_worker ``` Falls Sie `Job queue not available` oder `Redis not available` sehen, überprüfen Sie Folgendes: - `OGI_REDIS_URL` zeigt auf `redis://localhost:6379/0` für lokale host-basierte Ausführungen - das Backend wurde neu gestartet, nachdem Redis hochgefahren war - der separate Worker-Prozess läuft - Sie verwenden nicht den Docker-exklusiven Hostnamen `redis` außerhalb von Docker Compose Wenn Sie das Backend gegen PostgreSQL betreiben (`OGI_USE_SQLITE=false`), wendet der Start automatisch Alembic-Migrationen an, bevor Anfragen bedient werden. Docker-Bereitstellungen machen dasselbe im Backend-Container-Entrypoint. AI Investigator-Läufe werden von einem weiteren separaten Worker verarbeitet:```bash cd backend uv run python -m ogi.agent.run_worker ``` ### Frontend```bash cd frontend pnpm install pnpm dev ``` Öffne http://localhost:5173. Das war's. ### KI-Ermittler Der KI-Ermittler ist ein optionaler, anbieterunterstützter Workflow, der Transformationssequenzen planen, Genehmigungen anfordern und den Untersuchungsfortschritt im Arbeitsbereich zusammenfassen kann. - Öffnen Sie den Reiter `AI Investigator` in einem Projekt - Konfigurieren Sie einen Anbieter und ein Modell im Ermittlereinstellungsdialog - Speichern Sie Anbieter-API-Schlüssel unter `API Keys` - Führen Sie den separaten `agent-worker`-Prozess zusammen mit dem Backend aus Die aktuelle Implementierung unterstützt pro Benutzer konfigurierbare Anbieter und einen dedizierten Worker, der Untersuchungsschritte unabhängig vom Haupt-API-Server ausführt. ### CLI Zwei unterstützte Möglichkeiten zur Ausführung der CLI: **Empfohlen** (keine Aktivierung erforderlich):```bash cd backend uv sync uv run ogi --help ``` **Aktiviertes virtualenv** (einfacher `ogi`-Befehl):```bash cd backend uv venv # PowerShell: .\.venv\Scripts\Activate.ps1 uv pip install -e . ogi --help ``` ## Docker ### Entwicklung```bash cp .env.example .env docker compose up ``` ### Produktion Verwenden Sie die vorgefertigten GHCR-Images. Wichtig: [docker-compose.prod.yml](https://github.com/khashashin/ogi/blob/main/docker-compose.prod.yml) erfordert eine externe PostgreSQL-Datenbank. Es enthält keinen `db`-Dienst. Wenn Sie den All-in-One lokalen Docker-Stapel mit integriertem Postgres und Redis verwenden möchten, verwenden Sie:```bash docker compose up -d ``` Verwenden Sie die Produktions-Compose-Datei nur, wenn Sie bereits eine erreichbare PostgreSQL-Instanz haben und `OGI_DATABASE_URL` entsprechend gesetzt haben:```bash docker compose -f docker-compose.prod.yml pull docker compose -f docker-compose.prod.yml up -d ``` Setzen Sie `OGI_IMAGE_TAG` in `.env`, um einen bestimmten Release-Image-Tag festzulegen (z.B. `v0.2.6`). Standardmäßig wird `latest` verwendet. ### Hetzner Cloud [](https://hetzner.cloud/?ref=LspEGc99USBa) [](https://console.hetzner.com/deploy/docker-ce) Neue Hetzner-Benutzer können den ersten Link verwenden, um sich mit Hetzner Cloud Credits anzumelden. Es handelt sich um einen Empfehlungslink, sodass der OGI-Maintainer möglicherweise ebenfalls Hetzner Cloud Credits erhält, wenn die Empfehlung qualifiziert ist. Nach dem Erstellen eines Servers verwenden Sie die obigen Docker-Bereitstellungsbefehle, um OGI auszuführen. ### Konfigurierbare Transformationsgrenzen OGI wird mit sinnvollen transformationsspezifischen Maximalwerten für Dinge wie `max_results`, `max_links`, `max_urls` und `max_content_chars` ausgeliefert, aber diese Grenzen sind jetzt zentral überschreibbar, sodass Cloud-Bereitstellungen sie durchsetzen können, ohne lokale Limits fest codieren zu müssen. Verwenden Sie `OGI_TRANSFORM_SETTING_MAX_OVERRIDES` in `.env`:```env OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=50,max_urls=25,max_links=40,max_content_chars=20000 ``` Um bestimmte Einschränkungen in einer lokalen Bereitstellung zu entfernen:```env OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=none,max_urls=none,max_links=none,max_content_chars=none ``` Die Überschreibung erfolgt über den Namen der Transform-Einstellung und gilt sowohl für eingebaute Transforms als auch für Community-Plugins, die die gemeinsame Transform-Basis/-Laufzeitumgebung von OGI nutzen. ### Gehostete Cloud-Instanz und Supporter-Plan Die gehostete Cloud-Version unter [ogi.khas.app](https://ogi.khas.app) wurde ursprünglich entwickelt, damit Nutzer OGI schnell ausprobieren können, bevor sie sich für eine Selbsthosting-Lösung entscheiden. Sie ist inzwischen die beliebteste Nutzungsform des Projekts mit über 350 aktiven Cloud-Nutzern. Diese Nutzung hat auch die Infrastrukturkosten für dieses Nebenprojekt erhöht. Das Repository enthält daher ein Cloud-exklusives Supporter-Abonnement und ein Abkühlungssystem für Transformer-Aufrufe. In der öffentlichen Cloud-Instanz können kostenlose Nutzer durch ein Timeout zwischen Transformer-Aufrufen eingeschränkt sein, während Supporter-Nutzer für symbolische 3 USD/Monat abonnieren können, um bei der Deckung der Supabase- und VPS-Kosten zu helfen. Supporter-Abonnements können über die Profil-Abrechnungssteuerung oder das Stripe-Abrechnungsportal gekündigt werden. Die Kündigung beendet zukünftige Zahlungen, aber bereits bezahlte Abonnementzeiträume werden nicht erstattet oder anteilig zurückgezahlt. Dieser Abrechnungscode ist absichtlich durch die Konfiguration geschützt: Er wirkt sich nur aus, wenn `OGI_DEPLOYMENT_MODE=cloud` und `OGI_CLOUD_BILLING_ENABLED=true` gesetzt sind. Selbstgehostete Bereitstellungen sollten die Abrechnung deaktiviert lassen und keinerlei Abrechnungs- oder Paywall-Verhalten zeigen. ### Telemetrie OGI enthält installationsbezogene Produkttelemetrie, die uns helfen soll, die tatsächliche Nutzung zu verstehen, insbesondere bei selbstgehosteten Bereitstellungen. - `OGI_TELEMETRY_ENABLED=true` aktiviert die Telemetrieerfassung - `OGI_TELEMETRY_LEVEL=full` ist die Standard-Erfassungsstufe - setze `OGI_TELEMETRY_ENABLED=false`, um die Telemetrie vollständig zu deaktivieren - setze `OGI_TELEMETRY_LEVEL=basic`, um die gesendeten Daten zu reduzieren `basic` sendet: - OGI-Version - einen täglichen Ping zur aktiven Installation `full` sendet zusätzlich: - Erstellungsdatum der Instanz - aggregierte Zählungen für Projekte, Entitäten, Kanten, Transform-Ausführungen, Investigator-Ausführungen und aktive Nutzer für den Zeitraum - installierte Transforms mit ihren Versionen Telemetrie ist so konzipiert, dass sie das Senden von Grapheninhalten, Entitätswerten, API-Schlüsseln, Prompts oder anderen Untersuchungsdaten vermeidet. Die aktuellen Richtliniendetails sind auch in der [Datenschutzerklärung](https://ogi.khas.app/privacy#telemetry) veröffentlicht. <details> <summary><strong>Entwicklungs-Compose-Dienste</strong></summary> | Dienst | Beschreibung | Port | | -------------- | ---------------------------- | ---- | | `backend` | FastAPI-Anwendungsserver | 8000 | | `worker` | RQ-Async-Job-Worker | - | | `agent-worker` | AI-Investigator-Worker | - | | `frontend` | React-App bereitgestellt via nginx | 80 | | `db` | PostgreSQL 16 | 5432 | | `redis` | Redis 7 (Job-Warteschlange) | 6379 | </details> <details> <summary><strong>Produktions-Compose-Dienste</strong></summary> | Dienst | Beschreibung | Port | | -------------- | ---------------------------- | ---- | | `backend` | FastAPI-Anwendungsserver | 8000 | | `worker` | RQ-Async-Job-Worker | - | | `agent-worker` | AI-Investigator-Worker | - | | `frontend` | React-App bereitgestellt via nginx | 80 | | `redis` | Redis 7 (Job-Warteschlange) | 6379 | `docker-compose.prod.yml` erwartet eine externe PostgreSQL-Datenbank über `OGI_DATABASE_URL`. </details> --- <details> <summary><strong>Plugin-Abhängigkeiten zur Startzeit</strong></summary> Wenn du vorgefertigte Images verwendest und ein Plugin zusätzliche Python-Bibliotheken benötigt, installiert OGI die Plugin-Abhängigkeiten beim Container-Start aus: 1. `plugins/requirements.txt` (bevorzugt) oder 2. automatisch generierte Anforderungen aus `plugins/ogi-lock.json`, wenn `requirements.txt` fehlt. **Umgebungsvariablen:** | Variable | Standard | Beschreibung | | --------------------------------- | ------------------------------- | ----------------------------------------- | | `OGI_BOOT_REQUIREMENTS_ENABLE` | `true` | Aktivieren/Deaktivieren der Installation zur Startzeit | | `OGI_BOOT_REQUIREMENTS_FILE` | `/app/plugins/requirements.txt` | Pfad zur Requirements-Datei | | `OGI_BOOT_LOCK_FILE` | `/app/plugins/ogi-lock.json` | Pfad zur Lock-Datei | | `OGI_BOOT_REQUIREMENTS_STRICT` | `false` | Start abbrechen, wenn Requirements fehlen | | `OGI_BOOT_REQUIREMENTS_CACHE_DIR` | `/tmp/ogi-boot` | Temporär-/Cache-Verzeichnis für generierte Requirements | </details> --- ## Transform Hub OpenGraph Intel verfügt über einen integrierten Transform-Marktplatz. Durchstöbere, installiere und verwalte Transforms aus der [Community-Registry](https://github.com/opengraphintel/ogi-transforms). > **Sicherheitshinweis:** Plugins, die API-Schlüssel benötigen, sollten als privilegierter Code behandelt werden. Wenn ein Plugin auf deine Geheimnisse zugreifen und ausgehende Netzwerkanfragen stellen kann, kann es diese Geheimnisse missbrauchen oder exfiltrieren. Überprüfe die Vertrauensstufe, Berechtigungen und erforderlichen Dienste, bevor du Plugins von Drittanbietern installierst oder ausführst.```bash # Search for transforms uv run ogi transform search dns # Install a transform uv run ogi transform install shodan-host-lookup ``` ### Integrierte Transformationskategorien | Kategorie | Beispiele | | --------- | -------------------------------------- | | DNS | A, AAAA, MX, NS, CNAME-Einträge | | IP & ASN | GeoIP, Reverse-IP, ASN-Info | | SSL/TLS | Zertifikatstransparenz, SSL-Labs | | E-Mail | Mailserver-Validierung, Leak-Prüfungen | | Web | WHOIS, Domain-Info, Web-Extraktion | | Sozial | Benutzername-Enumeration, soziale Profile | | Hash | MD5-, SHA1-, SHA256-Abfragen | | Standort | Geokodierung, Wetter, nahegelegene ASN-Daten | ### Unterstützte Entitätstypen `Person` • `Username` • `Domain` • `IPAddress` • `EmailAddress` • `PhoneNumber` • `Organization` • `URL` • `SocialMedia` • `Hash` • `Document` • `Location` • `ASNumber` • `Network` • `MXRecord` • `NSRecord` • `Nameserver` • `SSLCertificate` • `Subdomain` • `HTTPHeader` ### Eigene Transformationen erstellen Möchten Sie eigene erstellen? Siehe den [Beitragsleitfaden](https://github.com/opengraphintel/ogi-transforms/blob/main/CONTRIBUTING.md). Wenn Ihre Transformation externe Dienst-Anmeldedaten benötigt, deklarieren Sie diese in `api_keys_required`. Speichern Sie keine Geheimnisse in den Transformationseinstellungen. OGI verwaltet diese unter `API Keys`, und Plugins, die Geheimnisse verwenden, gelten als privilegierter Code. Wenn Ihre Transformation begrenzte Einstellungen wie `max_results` oder `max_content_chars` bereitstellt, bevorzugen Sie stabile Einstellungsnamen gegenüber maßgeschneiderten Einmalnamen, wo möglich. OGI kann zentral Maximalwerte mit `OGI_TRANSFORM_SETTING_MAX_OVERRIDES` überschreiben, was Cloud-Bereitstellungen hilft, Grenzwerte durchzusetzen, während lokale Benutzer sie entfernen können. Jedes Plugin ist ein Verzeichnis mit einem `plugin.yaml`-Manifest:```yaml name: my-transform version: "1.0.0" display_name: My Transform description: What it does author: Your Name license: MIT category: dns input_types: [Domain] output_types: [IPAddress] permissions: network: true filesystem: false subprocess: false ``` ## Architektur ### Technologie-Stack | Schicht | Technologie | | ---------------- | --------------------------------------------------------------------------- | | Backend | Python 3.14+, FastAPI, SQLModel, asyncpg / aiosqlite | | Frontend | React 19, TypeScript 5.9, Sigma.js (graphology), Zustand, Tailwind CSS 4 | | Datenbank | PostgreSQL 16 (primary) / SQLite (lokaler Fallback) | | Auth & Echtzeit | Supabase Auth + JWT + Realtime (optional im lokalen Modus) | | Job-Warteschlange | Redis 7 + RQ (asynchrone Transformationen) | | KI-Laufzeitumgebung | Anbieter-gestützter AI Investigator worker mit auditierter Transform-Orchestrierung | | Paketmanager | uv (backend), pnpm (frontend) | | Bereitstellung | Docker, nginx, GHCR | ### Projektstruktur``` ogi/ ├── backend/ │ └── ogi/ │ ├── api/ # REST API routes │ ├── cli/ # CLI tool (Typer) │ ├── db/ # Database layer (asyncpg + aiosqlite) │ ├── engine/ # Graph engine & transform engine │ ├── models/ # SQLModel definitions │ ├── store/ # Data stores │ ├── transforms/ # Built-in transforms │ │ ├── dns/ # DNS resolution transforms │ │ ├── cert/ # SSL certificate transforms │ │ ├── email/ # Email enrichment │ │ ├── hash/ # Hash lookups │ │ ├── ip/ # IP/ASN/geolocation │ │ ├── org/ # Organization info │ │ ├── social/ # Social media │ │ └── web/ # Web scraping/extraction │ ├── worker/ # Async job queue (RQ) │ ├── config.py # Pydantic settings │ └── main.py # FastAPI entry point ├── frontend/ │ └── src/ │ ├── api/ # API client │ ├── components/ # React components │ ├── hooks/ # Custom hooks (realtime sync, etc.) │ ├── stores/ # Zustand state management │ ├── types/ # TypeScript types │ └── App.tsx # Main application ├── plugins/ # Community plugins directory ├── docs/ # Documentation & images ├── docker-compose.yml # Development deployment ├── docker-compose.prod.yml # Production deployment └── .env.example # Environment template ``` ### Konfiguration OGI nutzt [pydantic-settings](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) mit `.env`-Dateiunterstützung. Laufzeit-/Backend-Variablen sind mit `OGI_` präfixiert. Listeneinstellungen akzeptieren entweder: - JSON-Arrays, z. B. `["plugins","../plugins"]` - Komma-getrennte Zeichenketten, z. B. `plugins,../plugins` <details> <summary><strong>Wichtige Umgebungsvariablen</strong></summary> | Variable | Beschreibung | Standard | | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | | `OGI_APP_NAME` | Anwendungsname | `OGI` | | `OGI_HOST` | Backend-Bind-Host | `0.0.0.0` | | `OGI_PORT` | Backend-Port | `8000` | | `OGI_CORS_ORIGINS` | Erlaubte Frontend-Ursprünge | `http://localhost:5173,http://localhost:3000` | | `OGI_USE_SQLITE` | SQLite statt PostgreSQL verwenden | `true` | | `OGI_DB_PATH` | SQLite-Datenbankdateipfad | `ogi.db` | | `OGI_DATABASE_URL` | PostgreSQL-Verbindungszeichenfolge | `postgresql://postgres:postgres@localhost:5432/ogi`| | `OGI_REDIS_URL` | Redis-Verbindungszeichenfolge für RQ/Jobs | `redis://localhost:6379/0` | | `OGI_RQ_QUEUE_NAME` | Warteschlangenname für Transform-Jobs | `transforms` | | `OGI_TRANSFORM_TIMEOUT` | Zeitüberschreitung pro Transform-Job in Sekunden | `300` | | `OGI_AGENT_WORKER_POLL_INTERVAL_SEC` | Abfrageintervall für den AI Investigator Worker | `2.0` | | `OGI_AGENT_CLAIM_TIMEOUT_SEC` | Zeitüberschreitung für veraltete Claims bei der Wiederherstellung von AI Investigator-Schritten | `120` | | `OGI_AUTO_RUN_MIGRATIONS` | Automatisches Ausführen von Alembic beim lokalen Nicht-SQLite-App-Start | `true` | | `OGI_RUN_DB_MIGRATIONS` | Datenbankmigrationen im Container-Entrypoint ausführen | `false` | | `OGI_DB_MIGRATION_RETRIES` | Anzahl der Wiederholungsversuche bei Migrationen im Entrypoint | `30` | | `OGI_DB_MIGRATION_DELAY_SECONDS` | Verzögerung zwischen den Wiederholungsversuchen der Migrationen im Entrypoint | `2` | | `OGI_PLUGIN_DIRS` | Plugin-Suchverzeichnisse | `plugins,../plugins` | | `OGI_DEPLOYMENT_MODE` | Bereitstellungsmodus (`self-hosted` oder `cloud`) | `self-hosted` | | `OGI_CLOUD_BILLING_ENABLED` | Cloud-exklusive Abrechnung für Supporter und Abklingzeit-Erzwingung für Transform-Vorgänge aktivieren | `false` | | `OGI_FREE_TRANSFORM_COOLDOWN_SECONDS` | Abklingzeit zwischen kostenlosen Cloud-Benutzer-Transformator-Läufen | `1800` | | `OGI_PAID_TRANSFORM_COOLDOWN_SECONDS` | Abklingzeit zwischen kostenpflichtigen Cloud-Benutzer-Transformator-Läufen | `0` | | `OGI_STRIPE_SECRET_KEY` | Serverseitiger Stripe-Geheimschlüssel für Checkout- und Portal-Sitzungen | nicht gesetzt | | `OGI_STRIPE_WEBHOOK_SECRET` | Stripe-Webhook-Signaturgeheimnis | nicht gesetzt | | `OGI_STRIPE_SUPPORTER_PRICE_ID` | Wiederkehrende Stripe-Preis-ID für den Supporter-Tarif | nicht gesetzt | | `OGI_STRIPE_SUPPORTER_AMOUNT_CENTS` | Anzeigebetrag für den Supporter-Tarif | `300` | | `OGI_STRIPE_SUPPORTER_CURRENCY` | Anzeigewährung für den Supporter-Tarif | `usd` | | `OGI_BILLING_SUCCESS_URL` | Optionale Stripe-Checkout-Erfolgsweiterleitung | aus Anfrage abgeleitet | | `OGI_BILLING_CANCEL_URL` | Optionale Stripe-Checkout-Abbruchweiterleitung | aus Anfrage abgeleitet | | `OGI_BILLING_PORTAL_RETURN_URL` | Optionale Stripe-Abrechnungsportal-Rückgabe-URL | aus Anfrage abgeleitet | | `OGI_REGISTRY_REPO` | Transform-Registry-GitHub-Repo | `opengraphintel/ogi-transforms` | | `OGI_REGISTRY_CACHE_TTL` | Cache-TTL der Registry in Sekunden | `3600` | | `OGI_TRANSFORM_SETTING_MAX_OVERRIDES` | Optionales globales Maximum an Überschreibungen für Transform-Einstellungen | leer | | `OGI_GITHUB_TOKEN` | Optionales GitHub-Token für Registry/API-Ratenbegrenzungen | nicht gesetzt | | `OGI_SUPABASE_URL` | Supabase-Projekt-URL | nicht gesetzt | | `OGI_SUPABASE_ANON_KEY` | Supabase-anonymer/öffentlicher Schlüssel | nicht gesetzt | | `OGI_SUPABASE_SERVICE_ROLE_KEY` | Supabase-Dienstrollenschlüssel | nicht gesetzt | | `OGI_SUPABASE_JWT_SECRET` | Supabase-JWT-Geheimnis | nicht gesetzt | | `OGI_SUPABASE_REDIRECT_URL` | Weiterleitungs-URL für Frontend-Authentifizierungsabläufe | nicht gesetzt | | `OGI_ADMIN_EMAILS` | Admin-Benutzer für Registry-/Plugin-Verwaltung | nicht gesetzt | | `OGI_TELEMETRY_ENABLED` | Installationsebene-Telemetrie aktivieren oder deaktivieren | `true` | | `OGI_TELEMETRY_LEVEL` | Telemetrieebene (`basic` oder `full`) | `full` | | `OGI_API_KEY_ENCRYPTION_KEY` | Fernet-Schlüssel für verschlüsselte API-Schlüsselspeicherung | nicht gesetzt, aber dringend empfohlen | | `OGI_API_KEY_INJECTION_ALLOW_COMMUNITY_PLUGINS` | Community-Plugins erlauben, gespeicherte API-Schlüssel zu erhalten | `true` | | `OGI_API_KEY_INJECTION_TRUSTED_TIERS_ONLY` | Injektion gespeicherter Schlüssel auf vertrauenswürdige Stufen beschränken | `false` | | `OGI_API_KEY_INJECTION_ALLOWED_TIERS` | Zulässige Stufen, wenn der Modus „nur vertrauenswürdig“ aktiviert ist | `official,verified` | | `OGI_API_KEY_SERVICE_ALLOWLIST` | Optionale zulässige Dienste für die Injektion gespeicherter Schlüssel | leer | | `OGI_API_KEY_SERVICE_BLOCKLIST` | Optionale blockierte Dienste für die Injektion gespeicherter Schlüssel | leer | | `OGI_LLM_PROVIDER` | Standard-Fallback des AI Investigator-Anbieters | `openai` | | `OGI_LLM_MODEL` | Standard-Fallback des AI Investigator-Modells | `gpt-4.1-mini` | | `OGI_EXPOSE_ERROR_DETAILS` | Interne Details in 500-Antworten einbeziehen | `false` | | `OGI_SANDBOX_ENABLED` | Sandbox-Ausführungsmodus aktivieren | `false` | | `OGI_SANDBOX_TIMEOUT` | Sandbox-Zeitüberschreitung in Sekunden | `30` | | `OGI_SANDBOX_MEMORY_MB` | Sandbox-Speicherbegrenzung in MB | `256` | ``` --- [Read more](https://github.com/khashashin/ogi)