
إطار عمل مفتوح المصدر لتحليل الروابط واستخبارات المصادر المفتوحة (OSINT)
إطار عمل مفتوح المصدر لتحليل الروابط المرئية وجمع المعلومات الاستخباراتية من المصادر المفتوحة (OSINT). مجاني، قابل للاستضافة الذاتية، ومدعوم من المجتمع.
المميزات • لقطات الشاشة • البدء السريع • Docker • محور التحويلات • الهندسة • المساهمة
ملاحظة: هذا المشروع في تطور نشط. يتمتع بقدرات أساسية قوية وتغطية اختبارية، ونواصل تحسين التوثيق والتعزيز وعمق الميزات مع كل إصدار. المساهمات وتقارير الأخطاء والملاحظات مرحب بها جدًا.
docker compose up| الاستقصاء المرئي | إثراء الكيان |
|---|---|
![]() | ![]() |
| محور التحويلات | التصدير / الاستيراد |
|---|---|
![]() | ![]() |
| الأداة | الإصدار |
|---|---|
| Python | 3.14+ |
| uv | latest |
| Node.js | 20+ |
| pnpm | latest |
cd backend uv sync uv run uvicorn ogi.main:app --reload
ستكون واجهة API متاحة على `http://localhost:8000`.
لتنفيذ التحويل محليًا، يجب أن يكون Redis وعامل التحويل (transform worker) قيد التشغيل أيضًا. Redis وحده لا يكفي.
ابدأ 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 فقط `redis` خارج Docker Compose
إذا قمت بتشغيل الخلفية باستخدام 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
افتح http://localhost:5173. هذا كل شيء.
### AI Investigator
AI Investigator هو سير عمل اختياري مدعوم من مزود يمكنه تخطيط تسلسلات التحويل، وطلب الموافقات، وتلخيص تقدم التحقيق داخل مساحة العمل.
- افتح علامة التبويب `AI Investigator` داخل مشروع
- قم بتكوين مزود ونموذج في مربع حوار إعدادات المحقق
- قم بتخزين مفاتيح API الخاصة بالمزود في `API Keys`
- قم بتشغيل عملية `agent-worker` المنفصلة بجانب الخادم الخلفي
التنفيذ الحالي يدعم تكوين مزود لكل مستخدم وعامل مخصص ينفذ خطوات التحقيق بشكل مستقل عن خادم API الرئيسي.
### واجهة سطر الأوامر
طريقتان مدعومتان لتشغيل واجهة سطر الأوامر:
**موصى به** (لا يتطلب تنشيط):```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.
إذا كنت ترغب في استخدام مجموعة Docker المحلية الكل في واحد مع Postgres وRedis المدمجين، استخدم:```bash docker compose up -d
استخدم ملف compose للإنتاج فقط عندما يكون لديك بالفعل مثيل 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 Cloud. إنه رابط إحالة، لذا قد يحصل مشرف OGI أيضًا على رصيد Hetzner Cloud إذا كان الإحالة مؤهلاً. بعد إنشاء خادم، استخدم أوامر نشر Docker أعلاه لتشغيل OGI.
يأتي OGI بقيم قصوى معقولة لكل تحويل مثل max_results, max_links, max_urls, و max_content_chars، ولكن هذه الحدود أصبحت الآن قابلة للتجاوز بشكل مركزي بحيث يمكن للنشرات السحابية فرضها دون ترميز الحدود المحلية بشكل ثابت.