
كراول هو خادم خداع ويب قابل للتخصيص وخفيف الوزن وسحابي أصلي، ومضاد للزواحف، يقوم بإنشاء تطبيقات ويب مزيفة تحتوي على ثغرات سهلة الاستغلال باستخدام بيانات شرك واقعية ومولدة عشوائياً وقوالب HTML مولدة بالذكاء الاصطناعي.
خادم honeypot ويب حديث وقابل للتخصيص مصمم لاكتشاف وتتبع النشاط الضار من المهاجمين وزاحفي الويب من خلال صفحات ويب خادعة، وبيانات اعتماد مزيفة، ورمزات كناري.
نصيحة: قم بزحف مسارات robots.txt لمتعة إضافية
Krawl هو خادم خداع سحابي أصلي مصمم لاكتشاف وتأخير وتحليل المهاجمين الخبيثين وزاحفي الويب والماسحات الآلية.
يقوم بإنشاء تطبيقات ويب مزيفة واقعية مليئة بالثمار المنخفضة مثل لوحات الإدارة، وملفات التكوين، وبيانات اعتماد مزيفة مكشوفة لجذب وتحديد النشاط المشبوه.

من خلال إهدار موارد المهاجم، يساعد Krawl في التمييز بوضوح بين السلوك الضار والزاحفين الشرعيين.
يتميز بـ:
robots.txt لاصطياد الماسحاتيمكنك بسهولة تعريض Krawl إلى جانب خدماتك الأخرى لحمايتها من زاحفي الويب والمستخدمين الخبيثين باستخدام وكيل عكسي. لمزيد من التفاصيل، راجع توثيق الوكيل العكسي.

يوفر Krawl لوحة تحكم شاملة، يمكن الوصول إليها عبر مسار سري عشوائي يتم إنشاؤه عند بدء التشغيل أو عبر مسار مخصص يتم تكوينه عبر KRAWL_DASHBOARD_SECRET_PATH. هذا يبقي لوحة التحكم مخفية عن المهاجمين الذين يقومون بمسح honeypot الخاص بك.
يتم تنظيم لوحة التحكم في ستة علامات تبويب:



بالإضافة إلى ذلك، بعد المصادقة باستخدام كلمة مرور لوحة التحكم، تصبح علامتا تبويب محميتان متاحتين:
لمزيد من التفاصيل، راجع توثيق لوحة التحكم.
يدعم Krawl نمطين للنشر، يتم التحكم بهما بواسطة إعداد mode في config.yaml أو متغير البيئة KRAWL_MODE.
المستقل: مثالي لبيئات التطوير أو الخوادم المنزلية ذات أعداد الطلبات المنخفضة. لا حاجة لأي إعدادات إضافية، فقط قم بتشغيل Krawl وسيعمل.
القابل للتوسع: مصمم لبيئات الإنتاج أو honeypots عالية الحركة. مخطط Helm الافتراضي يستخدم هذا النمط.
للحصول على إعدادات مفصلة وأمثلة Docker Compose وإعداد Kubernetes/Helm وإرشادات الترحيل خطوة بخطوة، راجع توثيق أنماط النشر.
يحتفظ Krawl بقائمة banlist.txt محدثة بانتظام لعناوين IP من المهاجمين الذين قاموا بتفعيل مصائد honeypot الخاصة به. يتم نشر القائمة أسبوعيًا وتكون متاحة للتنزيل، مما يساعد المجتمع على حظر الجهات الفاعلة الخبيثة المعروفة بشكل استباقي حتى بدون استخدام Krawl.
يمكن أيضًا جلب قائمة الحظر مباشرة من: https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw.
قم بتشغيل Krawl في النمط المستقل باستخدام أحدث صورة:```bash
docker run -d
-p 5000:5000
-e KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard"
-e KRAWL_DASHBOARD_PASSWORD="my-secret-password"
-v krawl-data:/app/data
--name krawl
ghcr.io/blessedrebus/krawl:latest
قم بالوصول إلى الخادم على `http://localhost:5000`
### Docker Compose
أنشئ ملف `docker-compose.yaml` باستخدام أحد وضعي النشر.
**Standalone**: فقط Krawl server مع Sqlite storage:```yaml
services:
krawl:
image: ghcr.io/blessedrebus/krawl:latest
container_name: krawl-server
ports:
- "5000:5000"
environment:
- CONFIG_LOCATION=config.yaml
# - KRAWL_DASHBOARD_PASSWORD=my-secret-password
volumes:
- ./config.yaml:/app/config.yaml:ro
- krawl-data:/app/data
restart: unless-stopped
volumes:
krawl-data:
قابل للتوسع: مع PostgreSQL وRedis:
[!CAUTION] المثال أدناه يستخدم كلمات مرور افتراضية (
krawl/krawl). قم بتغييرها قبل النشر في الإنتاج.```yaml services: postgres: image: postgres:16-alpine environment: POSTGRES_DB: krawl POSTGRES_USER: krawl POSTGRES_PASSWORD: krawl volumes: - postgres_data:/var/lib/postgresql/data restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U krawl -d krawl"] interval: 10s timeout: 5s retries: 5
redis: image: redis:7-alpine volumes: - redis_data:/data restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5
krawl: image: ghcr.io/blessedrebus/krawl:latest container_name: krawl-server ports: - "5000:5000" environment: - CONFIG_LOCATION=config.yaml - KRAWL_MODE=scalable - KRAWL_POSTGRES_HOST=postgres - KRAWL_POSTGRES_PORT=5432 - KRAWL_POSTGRES_USER=krawl - KRAWL_POSTGRES_PASSWORD=krawl - KRAWL_POSTGRES_DATABASE=krawl - KRAWL_REDIS_HOST=redis - KRAWL_REDIS_PORT=6379 # - KRAWL_DASHBOARD_PASSWORD=my-secret-password volumes: - ./config.yaml:/app/config.yaml:ro restart: unless-stopped depends_on: postgres: condition: service_healthy redis: condition: service_healthy
volumes: postgres_data: redis_data:
للنشر، فقط قم بتشغيل```bash
docker compose up -d
ملفات compose الجاهزة للإنتاج متاحة أيضًا في دليل docker/. للتطوير (بناء من المصدر مع إعادة تحميل تلقائية)، استخدم ملفات compose الموجودة في جذر المشروع.
لمزيد من التفاصيل حول كلا الوضعين، راجع أوضاع النشر.
يتوفر Krawl أيضًا أصلاً على Kubernetes. يمكن التثبيت إما عبر المانيفست أو باستخدام مخطط Helm.
مخطط Helm يضع الوضع القابل للتوسع كإعداد افتراضي مع PostgreSQL وRedis مضمنين:```bash
helm install krawl oci://ghcr.io/blessedrebus/krawl-chart --version 2.2.0
-n krawl-system --create-namespace
--set postgres.password=your-password
--set redis.password=your-redis-password
--set dashboardPassword=your-dashboard-password
--set config.dashboard.secret_path=/my-secret-dashboard
ملفات أمثلة القيم الأدنى متاحة لكلا الوضعين:
- [`values-minimal.yaml`](https://github.com/blessedrebus/krawl/blob/HEAD/helm/values-minimal.yaml) ---> قابل للتوسع (افتراضي)
- [`values-standalone.yaml`](https://github.com/blessedrebus/krawl/blob/HEAD/helm/values-standalone.yaml) ---> مستقل
انظر [أوضاع النشر](https://github.com/blessedrebus/krawl/blob/HEAD/docs/deployment-modes.md) و[وثائق المخطط](https://github.com/blessedrebus/krawl/blob/HEAD/helm/README.md) للحصول على التهيئة الكاملة وتعليمات الترحيل.
### Uvicorn (Python)
شغّل Krawl مباشرة باستخدام Python 3.13+ و uvicorn للتطوير المحلي أو الاختبار:```bash
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 5000 --app-dir src --no-server-header
الوصول إلى الخادم على http://localhost:5000
يستخدم Krawl تسلسل هرمي للإعدادات حيث تأخذ متغيرات البيئة الأولوية على ملف الإعدادات. يُوصى بهذا الأسلوب لنشر Docker والتخصيص السريع خارج الصندوق.
يمكنك استخدام ملف config.yaml للإعدادات المتقدمة، مثل نشر Docker Compose أو Helm chart.
على سبيل المثال```bash
export CONFIG_LOCATION="config.yaml" export KRAWL_CANARY_TOKEN_URL="http://your-canary-token-url"
export KRAWL_LINKS_PER_PAGE_RANGE="5,25"
export KRAWL_HTTP_RISKY_METHODS_THRESHOLD="0.2" export KRAWL_VIOLATED_ROBOTS_THRESHOLD="0.15"
export KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard" export KRAWL_DASHBOARD_PASSWORD="my-secret-password"
مثال على Docker run مع env variables (standalone mode):```bash
docker run -d \
-p 5000:5000 \
-e KRAWL_MODE=standalone \
-e KRAWL_PORT=5000 \
-e KRAWL_DELAY=100 \
-e KRAWL_DASHBOARD_PASSWORD="my-secret-password" \
-e KRAWL_CUSTOM_TEMPLATE_PATH="/templates/custom_page.html" \
-e KRAWL_CANARY_TOKEN_URL="http://your-canary-token-url" \
--name krawl \
ghcr.io/blessedrebus/krawl:latest
يستخدم Krawl نظامًا قائمًا على السمعة لتصنيف عناوين IP للمهاجمين ويوفر طريقتين لتصدير قوائم IP لتكامل جدار الحماية.
يقوم نقطة النهاية /api/export-ips بالاستعلام مباشرة من قاعدة البيانات وتدعم التصفية حسب فئة IP (attacker, bad_crawler, regular_user, good_crawler) وتنسيق الإخراج (raw, iptables, nftables):```bash
curl "https://your-krawl-instance//api/export-ips?categories=attacker&fwtype=raw"
يتيح هذا الحظر التلقائي للحركة المرورية الضارة عبر منصات متنوعة:
* [OPNsense وpfSense](https://ipv64.net/v64_blocklist_integration_guide)
* [RouterOS](https://rentry.co/krawl-routeros)
* [IPtables](https://github.com/blessedrebus/krawl/blob/HEAD/plugins/iptables/README.md) و[Nftables](https://github.com/blessedrebus/krawl/blob/HEAD/plugins/nftables/README.md)
* [Fail2Ban](https://github.com/blessedrebus/krawl/blob/HEAD/plugins/fail2ban/README.md)
للاطلاع على معلمات API الكاملة والأمثلة وإضافة تنسيقات جدار حماية مخصصة، راجع [وثائق Firewall Exporters](https://github.com/blessedrebus/krawl/blob/HEAD/docs/firewall-exporters.md).
## سمعة IP
يستخدم Krawl [مهامًا تحلل الحركة المرورية الأخيرة لبناء وتحديث درجة سمعة IP باستمرار](https://github.com/blessedrebus/krawl/blob/HEAD/src/tasks/analyze_ips.py). يتم تشغيلها بشكل دوري وتقييم كل عنوان IP نشط بناءً على مؤشرات سلوكية متعددة لتصنيفه كمهاجم أو زاحف أو مستخدم عادي. الحدود قابلة للتخصيص بالكامل.

يتضمن التحليل:
- **استخدام طرق HTTP الخطرة** (مثل نسب POST، PUT، DELETE)
- **انتهاكات Robots.txt**
- **شذوذ في توقيت الطلبات** (أنماط متقطعة أو غير منتظمة)
- **اتساق User-Agent**
- **كشف عناوين URL الهجومية** (مثل أنماط حقن SQL، XSS)
كل إشارة تساهم في نموذج تسجيل مرجح يعين فئة سمعة:
- `attacker`
- `bad_crawler`
- `good_crawler`
- `regular_user`
- `unknown` (للبيانات غير الكافية)
يتم تخزين الدرجات والمقاييس الناتجة في قاعدة البيانات ويستخدمها Krawl لتشغيل لوحات المعلومات وتتبع السمعة وإجراءات التخفيف التلقائية مثل حظر IP أو تكامل جدار الحماية.
## صفحات خداع مولدة بالذكاء الاصطناعي
يمكن لـ Krawl إنشاء صفحات خداع واقعية تلقائيًا باستخدام نماذج الذكاء الاصطناعي من **OpenRouter** أو **OpenAI** APIs. تنشئ هذه الميزة صفحات honeypot فريدة وقابلة للتصديق أثناء الطيران لخداع المهاجمين دون الحاجة إلى إنشاء صفحات يدوية.
**الميزات الرئيسية:**
- **التوليد الديناميكي**: ينشئ صفحات HTML فريدة لأي مسار طلب
- **التخزين المؤقت الذكي**: يخزن الصفحات المولدة لتجنب استدعاءات API المكررة
- **تحديد المعدل اليومي**: التحكم في تكاليف API بحدود طلب قابلة للتكوين
- **مزودون متعددون**: دعم لـ OpenRouter (خيارات مجانية) وOpenAI
- **التراجع الأنيق**: يتراجع إلى honeypot القياسي عند التعطيل أو بلوغ الحد
- **خدمة المخبأ**: خدمة الصفحات المولدة سابقًا حتى عند تعطيل الذكاء الاصطناعي
**الإعداد السريع:**```yaml
ai:
enabled: true
provider: "openrouter"
openai_base_url: "your-custom-base-url"
api_key: "your-api-key"
model: "nvidia/nemotron-3-super-120b-a12b:free"
timeout: 60
max_daily_requests: 10
للحصول على التكوين والاستخدام المفصل، راجع وثائق التوليد بالذكاء الاصطناعي.
يمكنك أيضًا المساهمة بقوالب الخداع عن طريق فتح طلب سحب (PR)، راجع المساهمة بقوالب الخداع.
إذا تم نشر Krawl خلف وكيل مثل NGINX، فيجب إعادة توجيه رأس الخادم باستخدام التكوين التالي في وكيلك:```bash location / { proxy_pass https://your-krawl-instance; proxy_pass_header Server; }
## المقاييس والمراقبة
Krawl يعرض مقاييس [Prometheus](https://prometheus.io/) في `/<dashboard_secret_path>/metrics` (مفعلة افتراضياً) ويأتي مع لوحة تحكم [Grafana](https://grafana.com/) جاهزة للاستيراد في [`grafana-dashboard.json`](https://github.com/blessedrebus/krawl/blob/HEAD/grafana-dashboard.json).
انظر [وثائق المراقبة](https://github.com/blessedrebus/krawl/blob/HEAD/docs/monitoring.md) للحصول على قائمة المقاييس الكاملة، خطوات استيراد Grafana، وإعداد التجميع لـ Prometheus / Kubernetes (`ServiceMonitor`).
## وثائق إضافية
| الموضوع | الوصف |
|-------|-------------|
| [توليد الذكاء الاصطناعي](https://github.com/blessedrebus/krawl/blob/HEAD/docs/ai_generation.md) | تكوين صفحات خداع مولّدة بالذكاء الاصطناعي باستخدام OpenRouter أو OpenAI |
| [صفحات الخداع](https://github.com/blessedrebus/krawl/blob/HEAD/docs/deception_pages.md) | إدارة واستيراد وتصدير صفحات الخداع؛ العمليات المجمعة والتصفية حسب التاريخ |
| [أنماط النشر](https://github.com/blessedrebus/krawl/blob/HEAD/docs/deployment-modes.md) | الوضع المستقل (SQLite) مقابل الوضع القابل للتوسع (PostgreSQL + Redis)، التكوين، وترحيل البيانات |
| [وعاء العسل](https://github.com/blessedrebus/krawl/blob/HEAD/docs/honeypot.md) | نظرة عامة كاملة على صفحات وعاء العسل: تسجيلات الدخول المزيفة، قوائم الدليل، ملفات بيانات الاعتماد، فخاخ SQLi/XSS/XXE/حقن الأوامر، والمزيد |
| [لوحة التحكم](https://github.com/blessedrebus/krawl/blob/HEAD/docs/dashboard.md) | الوصول إلى لوحة التحكم للمراقبة في الوقت الفعلي واستكشافها |
| [API](https://github.com/blessedrebus/krawl/blob/HEAD/docs/api.md) | واجهات برمجة التطبيقات الخارجية التي يستخدمها Krawl لبيانات IP، السمعة، والموقع الجغرافي |
| [الوكيل العكسي](https://github.com/blessedrebus/krawl/blob/HEAD/docs/reverse-proxy.md) | كيفية نشر Krawl خلف NGINX أو استخدام نطاقات فرعية خادعة |
| [نسخ احتياطي لقاعدة البيانات](https://github.com/blessedrebus/krawl/blob/HEAD/docs/backups.md) | تفعيل وتكوين مهمة التفريغ التلقائي لقاعدة البيانات |
| [رمز الكناري](https://github.com/blessedrebus/krawl/blob/HEAD/docs/canary-token.md) | إعداد مشغّلات تنبيه خارجية عبر canarytokens.org |
| [قائمة الكلمات](https://github.com/blessedrebus/krawl/blob/HEAD/docs/wordlist.md) | تخصيص أسماء المستخدمين وكلمات المرور وقوائم الدليل المزيفة |
| [الهندسة المعمارية](https://github.com/blessedrebus/krawl/blob/HEAD/docs/architecture.md) | نظرة عامة تقنية على قاعدة الكود، خط أنابيب الطلب، مخطط قاعدة البيانات، والمهام الخلفية |
| [مصدرات جدار الحماية](https://github.com/blessedrebus/krawl/blob/HEAD/docs/firewall-exporters.md) | تصدير قوائم حظر IP بتنسيقات raw أو iptables أو nftables عبر REST API |
| [المقاييس والمراقبة](https://github.com/blessedrebus/krawl/blob/HEAD/docs/monitoring.md) | نقطة نهاية مقاييس Prometheus، مرجع المقاييس المكشوفة، لوحة تحكم Grafana، وتجميع ServiceMonitor |
## المساهمة
المساهمات مرحب بها! يرجى:
1. عمل Fork للمستودع
2. إنشاء فرع ميزة
3. إجراء تغييراتك
4. تقديم طلب سحب (اشرح التغييرات!)
## إخلاء مسؤولية
> [!CAUTION]
> هذا نظام خداع/وعاء عسل. انشره في بيئات معزولة وراقب بعناية للأحداث الأمنية. استخدمه بمسؤولية ووفقاً للقوانين واللوائح المعمول بها.
## تاريخ النجوم
<img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" width="600" alt="Star History Chart" />
| مستقل | قابل للتوسع |
|---|
| قاعدة البيانات | SQLite (وضع WAL) | PostgreSQL |
| ذاكرة التخزين المؤقت | قاموس Python في الذاكرة | Redis (TTL متعدد المستويات) |
| النسخ | 1 (مثيل واحد) | 1+ (توسع أفقي) |
| التبعيات الخارجية | لا شيء | PostgreSQL + Redis |
| الأفضل لـ | التطوير، الخوادم المنزلية، أقل من 500 ألف طلب | الإنتاج، التوفر العالي، أكثر من 500 ألف طلب |
| متغير البيئة | الوصف | القيمة الافتراضية |
|---|
CONFIG_LOCATION | المسار إلى ملف إعدادات yaml | config.yaml |
KRAWL_PORT | منفذ استماع الخادم | 5000 |
KRAWL_DELAY | تأخير الاستجابة بالميلي ثانية | 100 |
KRAWL_SERVER_HEADER | رأس HTTP Server للخداع | "" |
KRAWL_LINKS_LENGTH_RANGE | نطاق طول الرابط كـ min,max | 5,15 |
KRAWL_LINKS_PER_PAGE_RANGE | الروابط لكل صفحة كـ min,max | 10,15 |
KRAWL_CHAR_SPACE | الأحرف المستخدمة لتوليد الرابط | abcdefgh… |
KRAWL_MAX_COUNTER | القيمة الأولية للعداد | 10 |
KRAWL_CANARY_TOKEN_URL | رابط رمز الكناري الخارجي | لا شيء |
KRAWL_CANARY_TOKEN_TRIES | عدد الطلبات قبل إظهار رمز الكناري | 10 |
KRAWL_DASHBOARD_SECRET_PATH | مسار لوحة التحكم المخصص | يتم إنشاؤه تلقائيًّا |
KRAWL_DASHBOARD_PASSWORD | كلمة مرور لوحات التحكم المحمية | يتم إنشاؤها تلقائيًّا |
KRAWL_DASHBOARD_CACHE_WARMUP | حساب بيانات لوحة التحكم مسبقًا كل 5 دقائق لتحميل الصفحات الفوري | true |
KRAWL_DASHBOARD_WARMUP_PAGES | عدد الصفحات للتسخين المسبق لكل لوحة جدول | 10 |
KRAWL_DASHBOARD_WARMUP_AGGREGATION | حساب التجميعات الكاملة top_paths/top_ua لخدمة بدون استعلامات | false |
KRAWL_DASHBOARD_TOP_N_MIN_COUNT | الحد الأدنى لعدد الوصول للوحات المسارات/وكلاء المستخدم الأعلى (اضبط على 1 لتعطيل) | 5 |
KRAWL_PROBABILITY_ERROR_CODES | احتمالية استجابة خطأ (0-100%) | 0 |
KRAWL_DATABASE_PATH | موقع ملف قاعدة البيانات | data/krawl.db |
KRAWL_DATABASE_PERSIST_SUSPICIOUS_ONLY | الاحتفاظ فقط بالطلبات المشبوهة في سجل الوصول | false |
KRAWL_BACKUPS_PATH | المسار حيث يتم حفظ نسخ قاعدة البيانات | backups |
KRAWL_BACKUPS_CRON | تعبير cron للتحكم بجدولة مهمة النسخ الاحتياطي | */30 * * * * |
KRAWL_BACKUPS_ENABLED | قيمة منطقية لتمكين مهمة تفريغ قاعدة البيانات | true |
KRAWL_DATABASE_RETENTION_DAYS | الأيام للاحتفاظ بالبيانات في قاعدة البيانات | 30 |
KRAWL_TARPIT_ENABLED | مصيدة وكلاء AI باستجابات بطيئة ونص عشوائي | false |
KRAWL_TARPIT_DELAY_SECONDS | تأخير إضافي بالثواني يضاف لكل استجابة عند تفعيل المصيدة | 5 |
KRAWL_HTTP_RISKY_METHODS_THRESHOLD | عتبة اكتشاف طرق HTTP الخطرة | 0.1 |
KRAWL_VIOLATED_ROBOTS_THRESHOLD | عتبة انتهاكات robots.txt | 0.1 |
KRAWL_UNEVEN_REQUEST_TIMING_THRESHOLD | عتبة معامل الاختلاف للتوقيت | 0.5 |
KRAWL_UNEVEN_REQUEST_TIMING_TIME_WINDOW_SECONDS | النافذة الزمنية لتحليل توقيت الطلب بالثواني | 300 |
KRAWL_USER_AGENTS_USED_THRESHOLD | عتبة اكتشاف وكلاء مستخدم متعددين | 2 |
KRAWL_ATTACK_URLS_THRESHOLD | عتبة اكتشاف روابط الهجوم | 1 |
KRAWL_INFINITE_PAGES_FOR_MALICIOUS | خدمة صفحات لا نهائية لعناوين IP الخبيثة | true |
KRAWL_MAX_PAGES_LIMIT | الحد الأقصى لعدد الصفحات للمتصفحات | 250 |
KRAWL_BAN_DURATION_SECONDS | مدة الحظر بالثواني لعناوين IP المقيدة | 600 |
KRAWL_AI_ENABLED | تمكين صفحات الخداع المولدة بالذكاء الاصطناعي | false |
KRAWL_AI_PROVIDER | مزود الذكاء الاصطناعي ("openrouter" أو "openai") | "openrouter" |
KRAWL_AI_OPENAI_BASE_URL | رابط قاعدة OpenAI اختياري لنقاط نهاية API مخصصة | "https://api.openai.com/v1" |
KRAWL_AI_API_KEY | مفتاح API لمزود الذكاء الاصطناعي | لا شيء |
KRAWL_AI_MODEL | نموذج الذكاء الاصطناعي المستخدم لتوليد الصفحات | "nvidia/nemotron-3-super-120b-a12b:free" |
KRAWL_AI_TIMEOUT | مهلة الطلب بالثواني لاستدعاءات API للذكاء الاصطناعي | 60 |
KRAWL_AI_MAX_DAILY_REQUESTS | الحد الأقصى لعدد الصفحات المولدة بالذكاء الاصطناعي يوميًا (0 = غير محدود) | 0 |
KRAWL_AI_PROMPT | قالب المطالبة المخصص لتوليد صفحات الذكاء الاصطناعي | المطالبة الافتراضية |
KRAWL_CUSTOM_TEMPLATE_PATH | المسار داخل الحاوية لقالب HTML مخصص. يجب أن يتضمن القالب العناصر النائبة {counter} و {content}. | /templates/custom_page.html |
| الوضع القابل للتوسع | ||
KRAWL_MODE | وضع النشر (standalone أو scalable) | standalone |
KRAWL_POSTGRES_HOST | اسم مضيف PostgreSQL | localhost |
KRAWL_POSTGRES_PORT | منفذ PostgreSQL | 5432 |
KRAWL_POSTGRES_USER | اسم مستخدم PostgreSQL | krawl |
KRAWL_POSTGRES_PASSWORD | كلمة مرور PostgreSQL | krawl |
KRAWL_POSTGRES_DATABASE | اسم قاعدة بيانات PostgreSQL | krawl |
KRAWL_REDIS_HOST | اسم مضيف Redis | localhost |
KRAWL_REDIS_PORT | منفذ Redis | 6379 |
KRAWL_REDIS_DB | رقم قاعدة بيانات Redis | 0 |
KRAWL_REDIS_PASSWORD | كلمة مرور Redis | لا شيء |
KRAWL_REDIS_CACHE_TTL | TTL بالثواني لبيانات تسخين لوحة التحكم | 600 |
KRAWL_REDIS_HOT_TTL | TTL بالثواني لبيانات المسار السريع (معلومات الحظر، فئات IP) | 30 |
KRAWL_REDIS_TABLE_TTL | TTL بالثواني لجداول لوحة التحكم المقسمة إلى صفحات | 120 |