
मुक्त स्रोत लिंक विश्लेषण और OSINT फ्रेमवर्क
ओपन-सोर्स विज़ुअल लिंक विश्लेषण और OSINT ढांचा। मुफ़्त, स्व-होस्ट करने योग्य, और समुदाय-संचालित।
विशेषताएं • स्क्रीनशॉट • त्वरित आरंभ • डॉकर • ट्रांसफॉर्म हब • आर्किटेक्चर • योगदान
सूचना: यह परियोजना सक्रिय रूप से विकसित हो रही है। इसमें ठोस मुख्य क्षमताएं और परीक्षण कवरेज है, और हम प्रत्येक रिलीज़ के साथ दस्तावेज़ीकरण, सुदृढ़ीकरण और सुविधा गहराई में सुधार करना जारी रखते हैं। योगदान, बग रिपोर्ट और प्रतिक्रिया का स्वागत है।
docker compose up के साथ एक-कमांड डिप्लॉयमेंट| Graph Investigation | Entity Enrichment |
|---|---|
![]() | ![]() |
| उपकरण | संस्करण |
|---|---|
| Python | 3.14+ |
cd backend uv sync uv run uvicorn ogi.main:app --reload
The API will be available at `http://localhost:8000`.
For local transform execution, Redis and the transform worker must also be running. Redis alone is not enough.
Start Redis:```bash
docker run -d --name ogi-redis -p 6379:6379 redis:7-alpine
दूसरे टर्मिनल में ट्रांसफॉर्म वर्कर शुरू करें:```bash cd backend uv run python -m ogi.worker.run_worker
यदि आप `Job queue not available` या `Redis not available` देखते हैं, तो सुनिश्चित करें कि:
- `OGI_REDIS_URL` स्थानीय होस्ट-आधारित रन के लिए `redis://localhost:6379/0` को इंगित करता है
- Redis आने के बाद बैकएंड को पुनरारंभ किया गया था
- अलग वर्कर प्रक्रिया चल रही है
- आप Docker Compose के बाहर Docker-केवल होस्टनाम `redis` का उपयोग नहीं कर रहे हैं
यदि आप PostgreSQL (`OGI_USE_SQLITE=false`) के विरुद्ध बैकएंड चलाते हैं, तो स्टार्टअप अनुरोधों को सेवा देने से पहले स्वचालित रूप से Alembic माइग्रेशन लागू करेगा। Docker डिप्लॉयमेंट बैकएंड कंटेनर एंट्रीपॉइंट में भी ऐसा ही करते हैं।
AI Investigator रन एक अन्य अलग वर्कर द्वारा संसाधित किए जाते हैं:```bash
cd backend
uv run python -m ogi.agent.run_worker
cd frontend pnpm install pnpm dev
Open http://localhost:5173। बस इतना ही।
### AI जाँचकर्ता
AI जाँचकर्ता एक वैकल्पिक प्रदाता-समर्थित कार्यप्रवाह है जो कार्यक्षेत्र के अंदर ट्रांसफ़ॉर्म अनुक्रमों की योजना बना सकता है, अनुमोदन का अनुरोध कर सकता है, और जांच प्रगति का सारांश प्रस्तुत कर सकता है।
- किसी प्रोजेक्ट के अंदर `AI जाँचकर्ता` टैब खोलें
- जाँचकर्ता सेटिंग्स डायलॉग में एक प्रदाता और मॉडल कॉन्फ़िगर करें
- `API कुंजियाँ` में प्रदाता API कुंजियाँ संग्रहीत करें
- बैकएंड के साथ अलग `agent-worker` प्रक्रिया चलाएँ
वर्तमान कार्यान्वयन प्रति-उपयोगकर्ता प्रदाता कॉन्फ़िगरेशन और एक समर्पित वर्कर का समर्थन करता है जो मुख्य API सर्वर से स्वतंत्र रूप से जांच चरणों को निष्पादित करता है।
### CLI
CLI चलाने के दो समर्थित तरीके:
**अनुशंसित** (कोई सक्रियण आवश्यक नहीं):```bash
cd backend
uv sync
uv run ogi --help
सक्रिय virtualenv (सादा ogi कमांड):```bash
cd backend
uv venv
..venv\Scripts\Activate.ps1 uv pip install -e . ogi --help
## Docker
### डेवलपमेंट```bash
cp .env.example .env
docker compose up
पूर्व-निर्मित GHCR इमेज का उपयोग करें।
महत्वपूर्ण: docker-compose.prod.yml को एक बाहरी PostgreSQL डेटाबेस की आवश्यकता है। इसमें db सेवा शामिल नहीं है।
यदि आप अंतर्निर्मित Postgres और Redis के साथ ऑल-इन-वन स्थानीय Docker स्टैक चाहते हैं, तो उपयोग करें:```bash docker compose up -d
प्रोडक्शन कंपोज़ फ़ाइल का उपयोग केवल तब करें जब आपके पास पहले से एक सुलभ PostgreSQL इंस्टेंस हो और आपने `OGI_DATABASE_URL` को तदनुसार सेट किया हो:```bash
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
सेट करें OGI_IMAGE_TAG को .env में एक विशिष्ट रिलीज़ इमेज टैग (जैसे v0.2.6) को पिन करने के लिए। डिफ़ॉल्ट latest है।
नए Hetzner उपयोगकर्ता पहले लिंक का उपयोग करके Hetzner क्लाउड क्रेडिट के साथ साइन अप कर सकते हैं। यह एक रेफरल लिंक है, इसलिए यदि रेफरल योग्य है तो OGI रखरखावकर्ता को भी Hetzner क्लाउड क्रेडिट प्राप्त हो सकते हैं। सर्वर बनाने के बाद, OGI चलाने के लिए ऊपर दिए गए Docker तैनाती कमांड का उपयोग करें।
OGI max_results, max_links, max_urls, और max_content_chars जैसी चीज़ों के लिए उचित प्रति-ट्रांसफ़ॉर्म अधिकतम मानों के साथ आता है, लेकिन अब उन सीमाओं को केंद्रीय रूप से ओवरराइड किया जा सकता है ताकि क्लाउड डिप्लॉयमेंट स्थानीय सीमाओं को हार्डकोड किए बिना उन्हें लागू कर सकें।
.env में OGI_TRANSFORM_SETTING_MAX_OVERRIDES का उपयोग करें:```env
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=50,max_urls=25,max_links=40,max_content_chars=20000
स्थानीय-प्रथम तैनाती में विशिष्ट सीमाओं को हटाने के लिए:```env
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=none,max_urls=none,max_links=none,max_content_chars=none
की-ओवरराइड ट्रांसफॉर्म सेटिंग नाम से की गई है और यह बिल्ट-इन ट्रांसफॉर्म और सामुदायिक प्लगइन्स पर लागू होती है जो OGI के साझा ट्रांसफॉर्म बेस/रनटाइम का उपयोग करते हैं।
ogi.khas.app पर होस्टेड क्लाउड संस्करण शुरू में इसलिए बनाया गया था ताकि उपयोगकर्ता स्वयं-होस्ट करने का निर्णय लेने से पहले OGI को तुरंत आज़मा सकें। यह अब परियोजना का उपयोग करने का सबसे लोकप्रिय तरीका बन गया है, जिसमें 350 से अधिक सक्रिय क्लाउड उपयोगकर्ता हैं।
इस उपयोग ने इस साइड प्रोजेक्ट के लिए बुनियादी ढांचे की लागत भी बढ़ा दी। इसलिए रिपॉजिटरी में एक क्लाउड-केवल सपोर्टर सब्सक्रिप्शन और ट्रांसफॉर्मर रन कूलडाउन सिस्टम शामिल है। सार्वजनिक क्लाउड इंस्टेंस पर, मुफ्त उपयोगकर्ता ट्रांसफॉर्मर रन के बीच टाइमआउट द्वारा सीमित हो सकते हैं, जबकि सपोर्टर उपयोगकर्ता सुपाबेस और VPS लागतों को कवर करने में मदद करने के लिए प्रतीकात्मक USD 3/माह की सदस्यता ले सकते हैं।
सपोर्टर सब्सक्रिप्शन को प्रोफाइल बिलिंग नियंत्रण या स्ट्राइप बिलिंग पोर्टल से रद्द किया जा सकता है। रद्द करने से भविष्य का बिलिंग रुक जाता है, लेकिन भुगतान की गई सदस्यता अवधि वापस नहीं की जाती या आनुपातिक नहीं की जाती।
यह बिलिंग कोड जानबूझकर कॉन्फ़िगरेशन द्वारा संरक्षित है: इसका प्रभाव केवल तब होता है जब OGI_DEPLOYMENT_MODE=cloud और OGI_CLOUD_BILLING_ENABLED=true हो। स्वयं-होस्टेड डिप्लॉयमेंट को बिलिंग अक्षम छोड़ देना चाहिए और उन्हें कोई बिलिंग या पेवॉल व्यवहार नहीं दिखना चाहिए।
OGI में इंस्टॉलेशन-स्तरीय उत्पाद टेलीमेट्री शामिल है जो हमें वास्तविक दुनिया के उपयोग, विशेष रूप से स्वयं-होस्टेड डिप्लॉयमेंट में, को समझने में मदद करने के लिए है।
OGI_TELEMETRY_ENABLED=true टेलीमेट्री संग्रह सक्षम करता हैOGI_TELEMETRY_LEVEL=full डिफ़ॉल्ट संग्रह स्तर हैOGI_TELEMETRY_ENABLED=false सेट करेंOGI_TELEMETRY_LEVEL=basic सेट करेंbasic भेजता है:
full इसके अतिरिक्त भेजता है:
टेलीमेट्री को ग्राफ सामग्री, इकाई मान, API कुंजी, प्रॉम्प्ट या अन्य जांच डेटा भेजने से बचने के लिए डिज़ाइन किया गया है। वर्तमान नीति विवरण गोपनीयता नीति में भी प्रकाशित हैं।
यदि आप पूर्व-निर्मित इमेज का उपयोग करते हैं और एक प्लगइन को अतिरिक्त Python लाइब्रेरी की आवश्यकता है, तो OGI कंटेनर स्टार्टअप पर प्लगइन निर्भरताएँ स्थापित करता है:
plugins/requirements.txt (पसंदीदा), याrequirements.txt गायब हो तो plugins/ogi-lock.json से व्युत्पन्न स्वचालित रूप से उत्पन्न आवश्यकताएँ।पर्यावरण चर:
OpenGraph Intel में एक अंतर्निहित ट्रांसफॉर्म बाज़ार है। सामुदायिक रजिस्ट्री से ट्रांसफॉर्म ब्राउज़ करें, इंस्टॉल करें और प्रबंधित करें।
सुरक्षा नोट: जिन प्लगइन्स को API कुंजियों की आवश्यकता होती है, उन्हें विशेषाधिकार प्राप्त कोड के रूप में माना जाना चाहिए। यदि कोई प्लगइन आपके रहस्यों तक पहुँच सकता है और आउटबाउंड नेटवर्क अनुरोध कर सकता है, तो वह उन रहस्यों का दुरुपयोग या निकासी कर सकता है। तृतीय-पक्ष प्लगइन्स को स्थापित या चलाने से पहले विश्वास स्तर, अनुमतियाँ और आवश्यक सेवाओं की समीक्षा करें।```bash
uv run ogi transform search dns
uv run ogi transform install shodan-host-lookup
### निर्मित ट्रांसफॉर्म श्रेणियाँ
| श्रेणी | उदाहरण |
| --------- | ------------------------------------- |
| DNS | A, AAAA, MX, NS, CNAME रिकॉर्ड |
| IP और ASN | GeoIP, रिवर्स IP, ASN जानकारी |
| SSL/TLS | प्रमाणपत्र पारदर्शिता, SSL लैब्स |
| ईमेल | मेलसर्वर सत्यापन, उल्लंघन जाँच |
| वेब | WHOIS, डोमेन जानकारी, वेब निष्कर्षण |
| सोशल | उपयोगकर्ता नाम गणना, सोशल प्रोफाइल |
| हैश | MD5, SHA1, SHA256 लुकअप |
| स्थान | जियोकोडिंग, मौसम, निकटवर्ती ASN डेटा |
### समर्थित एंटिटी प्रकार
`Person` • `Username` • `Domain` • `IPAddress` • `EmailAddress` • `PhoneNumber` • `Organization` • `URL` • `SocialMedia` • `Hash` • `Document` • `Location` • `ASNumber` • `Network` • `MXRecord` • `NSRecord` • `Nameserver` • `SSLCertificate` • `Subdomain` • `HTTPHeader`
### अपने खुद के ट्रांसफॉर्म बनाना
अपना खुद का बनाना चाहते हैं? [योगदान गाइड](https://github.com/opengraphintel/ogi-transforms/blob/main/CONTRIBUTING.md) देखें।
अगर आपके ट्रांसफॉर्म को बाहरी सेवा क्रेडेंशियल्स की आवश्यकता है, तो उन्हें `api_keys_required` में घोषित करें। ट्रांसफॉर्म सेटिंग्स में रहस्य संग्रहित न करें। OGI उन्हें `API Keys` के अंतर्गत प्रबंधित करता है, और रहस्य-उपयोग करने वाले प्लगइन्स विशेषाधिकार प्राप्त कोड माने जाते हैं।
अगर आपका ट्रांसफॉर्म सीमित सेटिंग्स जैसे `max_results` या `max_content_chars` को उजागर करता है, तो जहां संभव हो, अनुकूलित एक-बार के नामों के बजाय स्थिर सेटिंग नामों को प्राथमिकता दें। OGI `OGI_TRANSFORM_SETTING_MAX_OVERRIDES` के साथ केंद्रीय रूप से अधिकतम मानों को ओवरराइड कर सकता है, जो क्लाउड डिप्लॉयमेंट को सीमाएं लागू करने में मदद करता है जबकि स्थानीय उपयोगकर्ता उन्हें हटा सकते हैं।
प्रत्येक प्लगइन एक निर्देशिका है जिसमें `plugin.yaml` मैनिफेस्ट है:```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
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
### कॉन्फ़िगरेशन
OGI [pydantic-settings](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) के साथ `.env` फ़ाइल समर्थन का उपयोग करता है। रनटाइम/बैकएंड वेरिएबल `OGI_` से उपसर्गित होते हैं।
सूची-शैली सेटिंग्स या तो स्वीकार करती हैं:
- JSON arrays, for example `["plugins","../plugins"]`
- comma-separated strings, for example `plugins,../plugins`
<details>
<summary><strong>मुख्य पर्यावरण चर</strong></summary>
| Variable | विवरण | डिफ़ॉल्ट |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| `OGI_APP_NAME` | एप्लिकेशन का नाम | `OGI` |
| `OGI_HOST` | बैकएंड बाइंड होस्ट | `0.0.0.0` |
| `OGI_PORT` | बैकएंड पोर्ट | `8000` |
| `OGI_CORS_ORIGINS` | अनुमत फ्रंटएंड मूल | `http://localhost:5173,http://localhost:3000` |
| `OGI_USE_SQLITE` | PostgreSQL के बजाय SQLite का उपयोग करें | `true` |
| `OGI_DB_PATH` | SQLite डेटाबेस फ़ाइल पथ | `ogi.db` |
| `OGI_DATABASE_URL` | PostgreSQL कनेक्शन स्ट्रिंग | `postgresql://postgres:postgres@localhost:5432/ogi` |
| `OGI_REDIS_URL` | RQ/जॉब्स के लिए Redis कनेक्शन स्ट्रिंग | `redis://localhost:6379/0` |
| `OGI_RQ_QUEUE_NAME` | ट्रांसफ़ॉर्म जॉब्स के लिए कतार का नाम | `transforms` |
| `OGI_TRANSFORM_TIMEOUT` | प्रति-ट्रांसफ़ॉर्म जॉब टाइमआउट सेकंड में | `300` |
| `OGI_AGENT_WORKER_POLL_INTERVAL_SEC` | AI अन्वेषक कार्यकर्ता के लिए पोल अंतराल | `2.0` |
| `OGI_AGENT_CLAIM_TIMEOUT_SEC` | AI अन्वेषक चरण पुनर्प्राप्ति के लिए स्टेल-क्लेम टाइमआउट | `120` |
| `OGI_AUTO_RUN_MIGRATIONS` | स्थानीय गैर-SQLite ऐप स्टार्टअप पर Alembic स्वचालित रूप से चलाएं | `true` |
| `OGI_RUN_DB_MIGRATIONS` | कंटेनर एंट्रीपॉइंट में DB माइग्रेशन चलाएं | `false` |
| `OGI_DB_MIGRATION_RETRIES` | एंट्री-पॉइंट माइग्रेशन पुनः प्रयास गणना | `30` |
| `OGI_DB_MIGRATION_DELAY_SECONDS` | एंट्री-पॉइंट माइग्रेशन पुनः प्रयासों के बीच विलंब | `2` |
| `OGI_PLUGIN_DIRS` | प्लगइन खोज निर्देशिकाएं | `plugins,../plugins` |
| `OGI_DEPLOYMENT_MODE` | डिप्लॉयमेंट मोड (`self-hosted` या `cloud`) | `self-hosted` |
| `OGI_CLOUD_BILLING_ENABLED` | क्लाउड-केवल सपोर्टर बिलिंग और ट्रांसफ़ॉर्म कूलडाउन प्रवर्तन सक्षम करें | `false` |
| `OGI_FREE_TRANSFORM_COOLDOWN_SECONDS` | मुक्त क्लाउड-उपयोगकर्ता ट्रांसफ़ॉर्मर रन के बीच कूलडाउन | `1800` |
| `OGI_PAID_TRANSFORM_COOLDOWN_SECONDS` | भुगतान क्लाउड-उपयोगकर्ता ट्रांसफ़ॉर्मर रन के बीच कूलडाउन | `0` |
| `OGI_STRIPE_SECRET_KEY` | Checkout और पोर्टल सत्रों के लिए Stripe सर्वर-साइड गुप्त कुंजी | सेट नहीं |
| `OGI_STRIPE_WEBHOOK_SECRET` | Stripe वेबहुक हस्ताक्षर गुप्त | सेट नहीं |
| `OGI_STRIPE_SUPPORTER_PRICE_ID` | सपोर्टर योजना के लिए Stripe आवर्ती मूल्य ID | सेट नहीं |
| `OGI_STRIPE_SUPPORTER_AMOUNT_CENTS` | सपोर्टर योजना के लिए प्रदर्शन राशि | `300` |
| `OGI_STRIPE_SUPPORTER_CURRENCY` | सपोर्टर योजना के लिए प्रदर्शन मुद्रा | `usd` |
| `OGI_BILLING_SUCCESS_URL` | वैकल्पिक Stripe Checkout सफलता रीडायरेक्ट | अनुरोध से व्युत्पन्न |
| `OGI_BILLING_CANCEL_URL` | वैकल्पिक Stripe Checkout रद्द रीडायरेक्ट | अनुरोध से व्युत्पन्न |
| `OGI_BILLING_PORTAL_RETURN_URL` | वैकल्पिक Stripe बिलिंग पोर्टल वापसी URL | अनुरोध से व्युत्पन्न |
| `OGI_REGISTRY_REPO` | ट्रांसफ़ॉर्म रजिस्ट्री GitHub रेपो | `opengraphintel/ogi-transforms` |
| `OGI_REGISTRY_CACHE_TTL` | रजिस्ट्री कैश TTL सेकंड में | `3600` |
| `OGI_TRANSFORM_SETTING_MAX_OVERRIDES` | ट्रांसफ़ॉर्म सेटिंग्स के लिए वैकल्पिक वैश्विक अधिकतम ओवरराइड मैप | खाली |
| `OGI_GITHUB_TOKEN` | रजिस्ट्री/API दर सीमाओं के लिए वैकल्पिक GitHub टोकन | सेट नहीं |
| `OGI_SUPABASE_URL` | Supabase प्रोजेक्ट URL | सेट नहीं |
| `OGI_SUPABASE_ANON_KEY` | Supabase अनाम/सार्वजनिक कुंजी | सेट नहीं |
| `OGI_SUPABASE_SERVICE_ROLE_KEY` | Supabase सेवा-भूमिका कुंजी | सेट नहीं |
| `OGI_SUPABASE_JWT_SECRET` | Supabase JWT गुप्त | सेट नहीं |
| `OGI_SUPABASE_REDIRECT_URL` | फ्रंटएंड प्रमाणीकरण प्रवाह द्वारा उपयोग किया गया रीडायरेक्ट URL | सेट नहीं |
| `OGI_ADMIN_EMAILS` | रजिस्ट्री/प्लगइन प्रबंधन के लिए व्यवस्थापक उपयोगकर्ता | सेट नहीं |
| `OGI_TELEMETRY_ENABLED` | स्थापना-स्तरीय टेलीमेट्री सक्षम या अक्षम करें | `true` |
| `OGI_TELEMETRY_LEVEL` | टेलीमेट्री स्तर (`basic` या `full`) | `full` |
| `OGI_API_KEY_ENCRYPTION_KEY` | एन्क्रिप्टेड API कुंजी भंडारण के लिए Fernet कुंजी | सेट नहीं लेकिन दृढ़ता से अनुशंसित |
| `OGI_API_KEY_INJECTION_ALLOW_COMMUNITY_PLUGINS` | सामुदायिक प्लगइन्स को संग्रहीत API कुंजियाँ प्राप्त करने की अनुमति दें | `true` |
| `OGI_API_KEY_INJECTION_TRUSTED_TIERS_ONLY` | संग्रहीत कुंजी इंजेक्शन केवल विश्वसनीय स्तरों तक सीमित करें | `false` |
| `OGI_API_KEY_INJECTION_ALLOWED_TIERS` | जब केवल-विश्वसनीय मोड सक्षम हो तो अनुमत स्तर | `official,verified` |
| `OGI_API_KEY_SERVICE_ALLOWLIST` | संग्रहीत कुंजी इंजेक्शन के लिए वैकल्पिक अनुमत सेवाएं | खाली |
| `OGI_API_KEY_SERVICE_BLOCKLIST` | संग्रहीत कुंजी इंजेक्शन के लिए वैकल्पिक अवरुद्ध सेवाएं | खाली |
| `OGI_LLM_PROVIDER` | डिफ़ॉल्ट AI अन्वेषक प्रदाता फ़ॉलबैक | `openai` |
| `OGI_LLM_MODEL` | डिफ़ॉल्ट AI अन्वेषक मॉडल फ़ॉलबैक | `gpt-4.1-mini` |
| `OGI_EXPOSE_ERROR_DETAILS` | 500 प्रतिक्रियाओं में आंतरिक विवरण शामिल करें | `false` |
| `OGI_SANDBOX_ENABLED` | सैंडबॉक्स निष्पादन मोड सक्षम करें | `false` |
| `OGI_SANDBOX_TIMEOUT` | सैंडबॉक्स टाइमआउट सेकंड में | `30` |
| `OGI_SANDBOX_MEMORY_MB` | सैंडबॉक्स मेमोरी सीमा MB में | `256` |
| `OGI_SANDBOX_ALLOWED_TIERS` | क्लाउड सैंडबॉक्स मोड में अनुमत स्तर | `official,verified` |
| `OGI_BOOT_REQUIREMENTS_ENABLE` | बूट-समय प्लगइन निर्भरता स्थापना सक्षम करें | `true` |
| `OGI_BOOT_REQUIREMENTS_FILE` | बूट आवश्यकताएं फ़ाइल पथ | `/app/plugins/requirements.txt` |
| `OGI_BOOT_LOCK_FILE` | बूट लॉक फ़ाइल पथ | `/app/plugins/ogi-lock.json` |
| `OGI_BOOT_REQUIREMENTS_STRICT` | यदि प्लगइन आवश्यकताएं गायब हैं तो स्टार्टअप विफल करें | `false` |
| `OGI_BOOT_REQUIREMENTS_CACHE_DIR` | बूट आवश्यकता निर्माण के लिए अस्थायी/कैश निर्देशिका | `/tmp/ogi-boot` |
| `OGI_FRONTEND_PORT` | स्थानीय Docker फ्रंटएंड पोर्ट मैपिंग | `3000` |
| `OGI_IMAGE_TAG` | compose/Coolify-शैली डिप्लॉय के लिए प्रोड इमेज टैग | `latest` |
| `OGI_BACKEND_IMAGE` | वैकल्पिक बैकएंड इमेज ओवरराइड | `ghcr.io/khashashin/ogi-backend` |
| `OGI_WORKER_IMAGE` | वैकल्पिक वर्कर इमेज ओवरराइड। डिफ़ॉल्ट बैकएंड इमेज पर होता है क्योंकि वर्कर और बैकएंड एक ही इमेज बिल्ड साझा करते हैं। | `ghcr.io/khashashin/ogi-backend` |
| `OGI_FRONTEND_IMAGE` | वैकल्पिक फ्रंटएंड इमेज ओवरराइड | `ghcr.io/khashashin/ogi-frontend` |
| `OGI_CLI_BEARER_TOKEN` | प्रमाणीकरण-सक्षम बैकएंड के लिए वैकल्पिक CLI बियरर टोकन | सेट नहीं |
पूरी सूची के लिए [`.env.example`](https://github.com/khashashin/ogi/blob/HEAD/.env.example) देखें।
</details>
## विकास
### परीक्षण चलाना```bash
# Backend
cd backend
OGI_DB_PATH=":memory:" OGI_USE_SQLITE=true uv run pytest
# Frontend
cd frontend
pnpm test
cd backend uv run ruff check # Linting uv run mypy # Type checking
cd frontend pnpm lint # ESLint
### CI Pipeline
हर पुल अनुरोध पर [CI वर्कफ़्लो](https://github.com/khashashin/ogi/blob/HEAD/.github/workflows/ci.yml) चलता है:
- **बैकएंड:** रफ लिंट, mypy टाइप चेक, pytest
- **फ्रंटएंड:** vitest, eslint, vite build
## योगदान
PR का स्वागत है! यदि आपको कोई बग मिले या कोई विचार हो, तो [एक इश्यू खोलें](https://github.com/khashashin/ogi/issues)।
नए ट्रांसफ़ॉर्म के लिए, [ogi-transforms](https://github.com/opengraphintel/ogi-transforms) में योगदान करें।
### आरंभ करना
1. रिपॉजिटरी को फोर्क करें
2. एक फीचर ब्रांच बनाएं (`git checkout -b feature/my-feature`)
3. अपने बदलाव करें
4. परीक्षण और लिंटिंग चलाएं
5. एक पुल अनुरोध सबमिट करें
## कानूनी और जिम्मेदार उपयोग
OGI एक सामान्य-उद्देश्य वाला OSINT और ग्राफ़ विश्लेषण उपकरण है। **आप इसके उपयोग के लिए पूरी तरह से जिम्मेदार हैं।** पूर्ण कानूनी नोटिस के लिए [LEGAL.md](https://github.com/khashashin/ogi/blob/HEAD/LEGAL.md) देखें।
- **तृतीय-पक्ष सेवा की शर्तों का अनुपालन करें।** जो ट्रांसफ़ॉर्म बाहरी सेवाओं (DNS, WHOIS, वेब स्क्रैपिंग, यूज़रनेम लुकअप, आदि) से क्वेरी करते हैं, उनका उपयोग उन सेवाओं की शर्तों के अनुसार होना चाहिए। उन साइटों की स्वचालित या बल्क क्वेरी करना जो इसे प्रतिबंधित करती हैं, उनकी शर्तों का उल्लंघन हो सकता है।
- **डेटा सुरक्षा कानून का सम्मान करें।** यदि आप EU में हैं या EU निवासियों के डेटा को प्रोसेस करते हैं, तो GDPR आप पर डेटा नियंत्रक के रूप में लागू होता है। व्यक्तिगत डेटा (नाम, ईमेल पते, IP पते, आदि) एकत्र करना, संग्रहीत करना या प्रोसेस करना कानूनी आधार की आवश्यकता है। OGI स्वयं आपके स्थानीय इंस्टेंस से परे डेटा संग्रहीत नहीं करता है — आप जो कुछ भी एकत्र और बनाए रखते हैं, उसके लिए आप जिम्मेदार हैं।
- **केवल कानूनी उद्देश्यों के लिए उपयोग करें।** OGI वैध सुरक्षा अनुसंधान, जांच, खतरा खुफिया, और शैक्षिक उपयोग के लिए है। इसका उपयोग व्यक्तियों को परेशान करने, अनधिकृत पहुंच बनाने, या लागू कानून का उल्लंघन करने के लिए न करें।
- **फ़ाइल प्रारूप संगतता।** OGI MTGX ग्राफ़ एक्सचेंज प्रारूप के आयात का समर्थन करता है। यह पूरी तरह से डेटा अंतर-संचालन के लिए प्रदान किया गया है और इस प्रारूप का उपयोग करने वाले उपकरणों के निर्माताओं के साथ किसी संबद्धता या समर्थन का संकेत नहीं देता है।
> **अस्वीकरण:** OGI बिना किसी प्रकार की वारंटी के "जैसा है" प्रदान किया जाता है। लेखक इस सॉफ़्टवेयर के उपयोग से उत्पन्न किसी भी दुरुपयोग या क्षति के लिए उत्तरदायी नहीं हैं।
## लाइसेंस
यह प्रोजेक्ट [GNU Affero General Public License v3.0](https://github.com/khashashin/ogi/blob/HEAD/LICENSE) के अंतर्गत लाइसेंस प्राप्त है।
---
<div align="center">
**[बग रिपोर्ट करें](https://github.com/khashashin/ogi/issues) • [फीचर अनुरोध करें](https://github.com/khashashin/ogi/issues) • [चर्चाएँ](https://github.com/opengraphintel/ogi-transforms/discussions)**
OGI समुदाय द्वारा 💜 से बनाया गया
</div>
| Transform Hub | Export / Import |
|---|
![]() | ![]() |
| latest |
| Node.js | 20+ |
| pnpm | latest |
| सेवा | विवरण | पोर्ट |
|---|
backend | FastAPI एप्लिकेशन सर्वर | 8000 |
worker | RQ एसिंक जॉब वर्कर | - |
agent-worker | AI अन्वेषक वर्कर | - |
frontend | nginx के माध्यम से React ऐप | 80 |
db | PostgreSQL 16 | 5432 |
redis | Redis 7 (जॉब कतार) | 6379 |
| सेवा | विवरण | पोर्ट |
|---|
backend | FastAPI एप्लिकेशन सर्वर | 8000 |
worker | RQ एसिंक जॉब वर्कर | - |
agent-worker | AI अन्वेषक वर्कर | - |
frontend | nginx के माध्यम से React ऐप | 80 |
redis | Redis 7 (जॉब कतार) | 6379 |
docker-compose.prod.yml OGI_DATABASE_URL के माध्यम से एक बाहरी PostgreSQL डेटाबेस की अपेक्षा करता है।
| चर | डिफ़ॉल्ट | विवरण |
|---|
OGI_BOOT_REQUIREMENTS_ENABLE | true | बूट-टाइम इंस्टॉल सक्षम/अक्षम करें |
OGI_BOOT_REQUIREMENTS_FILE | /app/plugins/requirements.txt | आवश्यकताएँ फ़ाइल का पथ |
OGI_BOOT_LOCK_FILE | /app/plugins/ogi-lock.json | लॉक फ़ाइल का पथ |
OGI_BOOT_REQUIREMENTS_STRICT | false | यदि आवश्यकताएँ गायब हों तो स्टार्टअप विफल |
OGI_BOOT_REQUIREMENTS_CACHE_DIR | /tmp/ogi-boot | उत्पन्न आवश्यकताओं के लिए टेम्प/कैश निर्देशिका |
| परत | प्रौद्योगिकी |
|---|
| बैकएंड | Python 3.14+, FastAPI, SQLModel, asyncpg / aiosqlite |
| फ्रंटएंड | React 19, TypeScript 5.9, Sigma.js (graphology), Zustand, Tailwind CSS 4 |
| डेटाबेस | PostgreSQL 16 (primary) / SQLite (local fallback) |
| प्रमाणीकरण और रीयलटाइम | Supabase Auth + JWT + Realtime (optional in local mode) |
| कार्य कतार | Redis 7 + RQ (async transforms) |
| AI रनटाइम | Provider-backed AI Investigator worker with audited transform orchestration |
| पैकेज प्रबंधक | uv (backend), pnpm (frontend) |
| तैनाती | Docker, nginx, GHCR |