
محرك كشط مستضاف ذاتيًا — يتجاوز أي تحدٍّ JavaScript وكابتشا: Cloudflare، Turnstile، reCAPTCHA، hCaptcha، GeeTest. بديل FlareSolverr وByparr وبديل متوافق مباشرةً مع حزمة *arr الخاصة بك.
كشط الويب المستضاف ذاتيًا للتطبيقات ووكلاء الذكاء الاصطناعي. اجلب الصفحات عبر واجهة API الأصلية، أو اربط عميل MCP لقراءة Markdown نظيف، واستخراج بيانات منظمة، والتقاط لقطات شاشة، وفحص نشاط المتصفح.
يبدأ TRAWL بطلب HTTP سريع، ويعيد استخدام جلسات المتصفح التي تم حلها، ويتصاعد إلى Camoufox ووكيل سكني اختياري عندما يتطلب الموقع مزيدًا من العمل. يتعامل مع تحديات JavaScript المدعومة وCAPTCHAs، ويمنحك لوحة تحكم محلية لرؤية ما نجح، وما فشل، وما استغرق وقتًا.
لمستخدمي FlareSolverr الحاليين، تعمل نقطة النهاية المتوافقة /v1 مع Prowlarr وأدوات *arr الأخرى. تم تصميم التوجيه التكيفي وإعادة استخدام الجلسات في TRAWL لطلبات أسرع وأكثر موثوقية؛ تُظهر معايير مختارة على نفس الجهاز استجابات أسرع من FlareSolverr وByparr، مع اختلاف النتائج حسب الموقع وحالة الجلسة.

تستخدم لقطة الشاشة حركة مرور توضيحية. تعرض لوحة التحكم الخاصة بك على http://localhost:8191/dashboard فقط الطلبات التي تعالجها نسخة TRAWL الخاصة بك. راجع دليل القياسات للإعداد.
git clone https://github.com/germondai/trawl cd trawl cp .env.example .env
docker compose up -d
curl http://localhost:8191/health
يستغرق التشغيل الأول من 15 إلى 30 ثانية بينما تُهيَّأ مجموعة المتصفحات. عمليات التشغيل اللاحقة سريعة.
### كتالوجات تطبيقات NAS
هل تفضّل التثبيت بنقرة واحدة؟ TRAWL متاح من كتالوجات تطبيقات
المجتمع لكلٍّ من TrueNAS وUnraid:
- [TrueNAS Community Apps](https://apps.truenas.com/catalog/trawl_community/) —
افتح **Apps → Discover Apps** وابحث عن **TRAWL**.
- [Unraid Community Apps](https://ca.unraid.net/apps/trawl-1o4q23p06utr4h) —
افتح تبويب **Apps** وابحث عن **Trawl**.
شكرًا للمساهمين في مجتمع TrueNAS وUnraid الذين حزّموا هذه التكاملات
ونشروها.
## API
### متوافق مع FlareSolverr (`/v1`)```bash
curl -X POST http://localhost:8191/v1 \
-H 'Content-Type: application/json' \
-d '{"cmd":"request.get","url":"https://nowsecure.nl","maxTimeout":60000}'
/scrape)تُرجع بيانات وصفية أغنى: tier، timings، sessionCached، قائمة كاملة بملفات تعريف الارتباط.```bash
curl -X POST http://localhost:8191/scrape
-H 'Content-Type: application/json'
-d '{"url":"https://nowsecure.nl","maxTimeout":60000}'
### أدوات MCP (`/mcp`)
اضبط `MCP_ENABLED=true` لكشف أدوات Streamable HTTP المستقلة عن العميل الخاصة بـ TRAWL
من أجل المحتوى القابل للقراءة، وHTML، والاستخراج المنظم، ولقطات الشاشة، وتشخيصات المتصفح لأي
تطبيق أو وكيل ذكاء اصطناعي متوافق مع MCP. تقوم بتحميل عناوين URL عامة معروفة؛ ولا يوفر TRAWL
البحث على الويب أو الترتيب. راجع
[دليل تكامل MCP](https://github.com/germondai/trawl/blob/dev/apps/docs/integrations/mcp.md).
### ربط Prowlarr / Jackett
اضبط عنوان URL الخاص بـ FlareSolverr على:```
http://localhost:8191 # running on the same host
http://trawl:8191 # running via Docker Compose on the same network
تربط بعض المواقع تصريح Cloudflare الخاص بها ببصمة الاتصال الكاملة لمتصفح الحل. لا يمكن لتدفق /v1 المساعدة في ذلك: يحتفظ Prowlarr فقط بملف تعريف الارتباط (cookie) ووكيل المستخدم (user-agent) ويعيد جلب الصفحة باستخدام عميل HTTP الخاص به، مما يجعل Cloudflare تعيد التحدي — فملف تعريف الارتباط غير قابل للنقل. بالنسبة لتلك المفهرسات، فعّل الوكيل الأمامي (forward proxy) الخاص بـ TRAWL وأضفه إلى Prowlarr كـ وكيل HTTP:```env
MITM_ENABLED=true
MITM_PORT=8192
MITM_CA_DIR=/data/proxy-ca # persist the CA (mount a volume)
MITM_MAX_TIER=4 # cap escalation (e.g. 3 to stay off residential)
MITM_ALWAYS_SCRAPE=false # opt in to bypass the proxy's direct Tier 0 probe
بشكل افتراضي، يستمع المستمع على `0.0.0.0` حتى يتمكن العملاء على شبكة Docker الجسرية من الوصول إليه؛ اضبط `MITM_HOST=127.0.0.1` لتقييده على loopback على مضيف bare-metal.
1. ثبّت CA الخاص بالوكيل في مخزن الثقة الخاص بالعميل حتى يقبل الشهادات لكل مضيف:
`curl http://<trawl-host>:8191/proxy-ca.crt` → أضفه إلى مخزن CA الخاص بحاوية Prowlarr
(على سبيل المثال سكربت linuxserver `/custom-cont-init.d` ينسخه إلى
`/usr/local/share/ca-certificates/` ويشغّل `update-ca-certificates`).
2. Prowlarr → Settings → Indexer Proxies → **HTTP**، المضيف `<trawl-host>`، المنفذ `8192`.
أعطه وسمًا إذا كان يجب أن يستخدمه فهارس محددة فقط.
تستخدم الطلبات العادية مسار HTTP/TLS مباشرًا. يتم تخزين استجابات HTML وJSON والنص الصغيرة مؤقتًا
لكشف التحديات؛ التحديات المكتشفة تتصاعد عبر نفس خط الأنابيب متعدد المستويات مثل
`POST /scrape`. تُبَثّ الفيديوهات والاستجابات الثنائية الكبيرة مباشرةً. تُمرَّر طلبات النطاق
من البداية إلى النهاية ويمكن أن تتصاعد عندما تكون استجابتها تحديًا مكتشفًا؛ تستخدم ترقيات WebSocket
ترحيلًا مباشرًا دون تصعيد المتصفح.
راجع [توثيق الوكيل](https://github.com/germondai/trawl/blob/dev/apps/docs/proxy/overview.md) الكامل للحصول على تفاصيل التوجيه،
والحركة المدعومة، والقيود، وتثبيت CA، وأمثلة العملاء.
> ⚠️ يمكن لوكيل MITM انتحال هوية أي مضيف لعميل يثق في CA الخاص به. لا تعرّضه إلا على
> واجهة خاصة (localhost / شبكة Docker خاصة)، وليس علنًا أبدًا.
### تثبيت شهادة CA الخاصة بالوكيل
يولّد الوكيل تلقائيًا CA جذريًا عند التشغيل الأول. تُحفظ شهادته ومفتاحه الخاص
ضمن `MITM_CA_DIR` (الافتراضي `/data/proxy-ca`). تُصدر الشهادات لكل مضيف وتُخزَّن مؤقتًا
في الذاكرة أثناء تشغيل TRAWL؛ لا تحتاج إلى تثبيت منفصل لأنها موقّعة بواسطة
الجذر الدائم. يجب على كل عميل يستخدم الوكيل أن يثق بذلك الجذر. بدونه، يفشل HTTPS مع
`ERR_CERT_AUTHORITY_INVALID` (المتصفحات) أو `PKIX path building failed` (Java).
نزّل CA مرة واحدة لكل عميل:```bash
curl http://<trawl-host>:8191/proxy-ca.crt -o trawl-ca.crt
# or in a Docker setup where the API isn't reachable from outside:
docker cp trawl:/data/proxy-ca/ca.crt ./trawl-ca.crt
sudo security add-trusted-cert -d -r trustRoot
-k /Library/Keychains/System.keychain ./trawl-ca.crt
security find-certificate -c "TRAWL MITM Proxy CA"
sudo security delete-certificate -c "TRAWL MITM Proxy CA"
/Library/Keychains/System.keychain
#### لينكس (Debian/Ubuntu — على مستوى النظام لـ curl وwget وapt، إلخ)```bash
sudo cp trawl-ca.crt /usr/local/share/ca-certificates/trawl-ca.crt
sudo update-ca-certificates
# Verify
awk '/BEGIN/{c++} c==2' /etc/ssl/certs/ca-certificates.crt | grep -c "TRAWL MITM"
sudo cp trawl-ca.crt /etc/pki/ca-trust/source/anchors/trawl-ca.crt sudo update-ca-trust
#### مخازن الثقة في Firefox و NSS
تحتاج تثبيتات Firefox التي لا تستخدم جذور نظام التشغيل إلى استيراد NSS لكل ملف تعريف:```bash
# Firefox 115+ uses a file-backed NSS DB; older versions use the legacy libnssdb format.
# The certutil command is the same either way.
certutil -A -n "TRAWL MITM" -t "CT,C,C" -i trawl-ca.crt \
-d sql:$HOME/.mozilla/firefox/<profile-dir>
# Or via Firefox UI: Settings → Privacy & Security → Certificates → View Certificates →
# Authorities → Import… → check "Trust this CA to identify websites".
# Profile dir location: about:profiles in Firefox.
يستخدم Chrome مخزن ثقة النظام على macOS وWindows، لكن لديه مخزنه الخاص على Linux:```bash
#### Java (بما في ذلك JDownloader)```bash
# Find the JRE cacerts file for your client.
# JDownloader: <install>/jre/lib/security/cacerts
keytool -importcert -alias trawl -file trawl-ca.crt \
-keystore "<path-to-cacerts>" -storepass changeit
# If `keytool` reports "Certificate already exists in keystore", use -delete first:
# keytool -delete -alias trawl -keystore "<path-to-cacerts>" -storepass changeit
Prowlarr وSonarr وRadarr هي تطبيقات .NET، وليست تطبيقات Java. بالنسبة
لتثبيتاتها المعتمدة على Docker، أضف CA إلى مخزن الثقة في نظام Linux الخاص بالحاوية. من الأنماط
الشائعة في LinuxServer استخدام سكربت /custom-cont-init.d:```yaml
volumes:
التحقق من صحة المدخلات: التحقق من صحة جميع المدخلات قبل معالجتها لمنع هجمات الحقن.
تحديد المعدل: تنفيذ حدود على معدل الطلبات لمنع إساءة الاستخدام وهجمات حجب الخدمة.
التسجيل والمراقبة: تسجيل الأحداث الأمنية ومراقبتها للكشف عن الأنشطة المشبوهة والاستجابة لها.
التشفير: استخدام التشفير لحماية البيانات الحساسة أثناء النقل وفي حالة السكون.
إدارة الأسرار: تخزين الأسرار وبيانات الاعتماد بشكل آمن، باستخدام متغيرات البيئة أو خدمات إدارة الأسرار المخصصة.
تحديث التبعيات: الحفاظ على تحديث التبعيات لمعالجة الثغرات الأمنية المعروفة.
مراجعات الكود: إجراء مراجعات منتظمة للكود لتحديد المشكلات الأمنية المحتملة ومعالجتها.
اختبار الاختراق: إجراء اختبارات اختراق منتظمة لتحديد نقاط الضعف في التطبيق.
الاستجابة للحوادث: وضع خطة استجابة للحوادث للتعامل مع الحوادث الأمنية بفعالية.
الامتثال: ضمان الامتثال للوائح والمعايير الأمنية ذات الصلة.```bash
#!/usr/bin/with-contenv bash
cp /config/trawl-ca.crt /usr/local/share/ca-certificates/trawl-ca.crt
update-ca-certificates
يقوم LinuxServer بتشغيل البرامج النصية في /custom-cont-init.d/ عند بدء تشغيل الحاوية. تتطلب عملاء Java مثل
JDownloader استيراد keytool المنفصل الموضح أعلاه.
يتضمن JDownloader بيئة JRE الخاصة به؛ يجب استيراد CA إليها.
Settings → Advanced → Java Path (في JDownloader) أو ابحث في دليل التثبيت:
C:\Program Files\JDownloader 2\jre\lib\security\cacerts/Applications/JDownloader 2.app/Contents/app/jre/lib/security/cacerts<install>/jre/lib/security/cacertskeytool -importcert أعلاه على هذا الملف.Import-Certificate -FilePath .\trawl-ca.crt ` -CertStoreLocation Cert:\LocalMachine\Root
Get-ChildItem Cert:\LocalMachine\Root | Where-Object { $_.Subject -like "TRAWL MITM" } | Remove-Item
#### إزالة CA (التنظيف)
لكل طريقة تثبيت مسار إزالة متناظر. ابحث في مخزن الثقة الخاص بك عن
`TRAWL MITM Proxy CA` (الاسم الشائع CA's CN) واحذف ذلك الإدخال. توجد شهادة CA والمفتاح أيضًا في
`<MITM_CA_DIR>/ca.crt` و `ca.key` على مضيف TRAWL. حذف أي منهما يؤدي إلى قيام TRAWL
بإنشاء جذر جديد عند بدئه التالي، لذا يجب على العملاء الحاليين تثبيت الشهادة الجديدة.
## المستويات```
Request
│
▼
Tier 1: Plain HTTP fetch ────── success ──→ return (< 100ms)
│ blocked
▼
Tier 2: Cached session ─────── success ──→ return (~500ms)
│ cache miss / expired
▼
Tier 3: Fresh challenge solve ─ success ──→ cache + return
│ IP flagged
▼
Tier 4: Residential proxy ──── success ──→ cache + return (15–45s)
│ failed
▼
error
| الملف | الوصف |
|---|---|
docker-compose.yml | Scraper + Redis (افتراضي) |
docker-compose.minimal.yml | Scraper فقط، بدون Redis |
docker-compose.prod.yml | الإنتاج: restart: always، حد الذاكرة، فحص الحالة |
| وسم الصورة | مبني من | وقت التشغيل | حالة الاستخدام |
|---|
جميع الوسوم موجودة على نفس حزمة ghcr.io/germondai/trawl — تتشارك السجل لكنها تختلف في مصدر Dockerfile أو وسائط البناء. اختر الوسم الذي يناسب عتادك ومخرجاتك:```yaml
image: ghcr.io/germondai/trawl:latest
image: ghcr.io/germondai/trawl:baseline
ملاحظة Synology: العديد من وحدات Synology NAS (DSM 7.x على J4125 / أجهزة أقدم) تأتي بنواة 4.4.x، وهي نواة لا يستطيع وقت تشغيل Bun الحديث التعامل معها بالكامل. يتطلب Bun القياسي نواة 5.1+ (يُوصى بـ 5.6+)؛ بينما يتراجع بناء baseline بأمان حتى النواة 3.10. وسم `:baseline` منشور لتلك الحالة — **مؤكد أنه يعمل** على Synology DS920+ (Celeron J4125، DSM 7.3.2، النواة 4.4.302): تبدأ الحاوية بشكل نظيف، ويُبلّغ `/health` عن حالة سليمة، ويحل تحديات Cloudflare المباشرة عبر `/v1` (انظر [#1](https://github.com/germondai/trawl/issues/1)). منشور بواسطة مسارات عمل GitHub Actions المستقلة: دفع وسم إصدار مثل `v1.7.0` ينشئ `:1.7.0` و`:latest` و`:1.7.0-baseline` و`:baseline`؛ بينما ينشئ البناء الليلي اليومي عند 02:00 UTC وسمي `:nightly` و`:nightly-<dev-sha>` من أحدث التزام على `dev`.
## الإصدارات والترقيم
يتبع TRAWL [الترقيم الدلالي](https://semver.org/). دفع وسم git مسبوق بـ `v` (مثل
`v1.0.0`) يُشغّل `publish.yml`، الذي يبني ويدفع وسم Docker المطابق غير المسبوق
(`ghcr.io/germondai/trawl:1.0.0`) إلى جانب `:latest`. يُبنى الوسم المتحرك `:nightly` والوسوم
الثابتة `:nightly-<shortsha>` من أحدث مراجعة `dev` موثّقة كل يوم عند 02:00 UTC
أو عند التشغيل اليدوي؛ ولا تنشر عمليات دفع الفروع أي صور.
انظر [صفحة الإصدارات](https://github.com/germondai/trawl/releases) للحصول على سجل الإصدارات
الكامل و[CHANGELOG.md](https://github.com/germondai/trawl/blob/dev/CHANGELOG.md) لمعرفة ما تغيّر في كل إصدار.
لنشر التزام سابق محدد يحتوي على إصلاح رئيسي دون انتظار إصدار tip-of-`main`
التالي، ضع وسمًا على ذلك الـ SHA بالضبط وادفعه — يبني `publish.yml` من مرجع الوسم، وليس من
الطرف الحالي لـ `main`:```bash
git tag -a v1.0.1 <sha> -m "..."
git push origin v1.0.1
يدعم TRAWL بروكسيات HTTP، وبروكسيات HTTP الموثّقة، وبروكسيات SOCKS5. تقرأ ملفات Compose
القياسية إعدادات البروكسي من ملف .env المحلي:```ini
PROXY_URL=http://user:[email protected]:8080
RESIDENTIAL_PROXY_URL=socks5://user:[email protected]:1080
## ما هو Kitploit؟
[Kitploit](https://www.kitploit.com/) هو دليل مخصص لأدوات الأمن السيبراني مفتوحة المصدر. يقدم مجموعة منسقة من أدوات الاختراق الأخلاقي، وتحليل الثغرات الأمنية، والاستجابة للحوادث، والاستطلاع، والتحليل الجنائي الرقمي، وغيرها من أدوات الأمن السيبراني.```bash
docker compose up -d
اترك أي من القيمتين فارغة لتعطيل طبقة الوكيل تلك. يمكن فصل نقاط النهاية المتعددة بفواصل؛ ويمكن لمجموعات أكبر استخدام متغير *_LIST_FILE المقابل. راجع
الإعدادات → الوكلاء
للاطلاع على أمثلة المجموعات والملفات المُثبَّتة.
يتطلب الترقية من إصدار سابق إعادة تسمية عدة متغيرات بيئية. راجع دليل ترحيل الإعدادات للاطلاع على التعيين الكامل من القديم إلى الجديد وسلوك الاشتراك الاختياري في Redis.
مبني على حزمة حديثة وسريعة افتراضيًا: Bun + Elysia لواجهة API، وRedis للتخزين المؤقت، وCamoufox (Firefox المُحصَّن) لأتمتة المتصفح، وNuxt لواجهة الويب — بلا أعباء Node/Express القديمة.
صُنع بـ ❤️ بواسطة @germondai
|
Bright Data - أقوى منصة لـ Web Unlocker وSERP API وأدوات كشط الويب. لماذا Bright Data؟ • Web Unlocker - تجاوز أي حماية ضد البوتات • SERP API - نتائج Google وBing والمزيد في الوقت الفعلي • Scraping Browser وكاشطات مخصصة • شبكة وكلاء سكنية ضخمة • مصممة للتوسع والموثوقية ابدأ مجانًا مع Bright Data! |
|
NodeMaven - مزود الوكلاء الأكثر كفاءة لكشط الويب والأتمتة مع أعلى جودة IP في السوق. لماذا NodeMaven؟ • استهداف ZIP • وقت تشغيل 99.9% • تصفية IP: جميع الوكلاء لديهم درجة احتيال <97% • لا يتطلب KYC • أدوات مجانية فريدة: Proxy Bandwidth Checker، وMeta Tag Checker، وIP Lookup وغيرها! أكواد خاصة لمستخدمي TRAWL: • TRAWL35 - خصم 35% على الوكلاء المحمولين والسكنيين• TRAWL40 - خصم 40% على وكلاء ISP (الثابتة)
|
|
Thordata - وكلاء سكنيون متميزون لجمع البيانات. يساعد Thordata المطورين على بناء سير عمل موثوق للكشط والأتمتة وبيانات الذكاء الاصطناعي باستخدام عناوين IP سكنية عالية الجودة. 🌍 أكثر من 100 مليون IP حقيقي | أكثر من 195 دولة 🔄 جلسات متغيرة وثابتة | استهداف جغرافي دقيق ⚡ تزامن عالٍ | اتصالات مستقرة قلّل الحظر واجمع البيانات على نطاق واسع بثقة. 🎁 لمستخدمي TRAWL: • تجربة مجانية لمدة 3 أيام + خصم 10% بالكود: TRAWL10
|
ghcr.io/germondai/trawl:latest | apps/api/Dockerfile | Bun 1.4.2 (حديث، AVX2) | الافتراضي المدمج — بصمات Linux |
ghcr.io/germondai/trawl:baseline | apps/api/Dockerfile.baseline | Bun 1.4.2 baseline (بدون AVX2) | معالجات أقدم / أنوية أقدم (Synology NAS، J4125، حقبة Atom) |
| المتغير | الافتراضي | الوصف |
|---|
BROWSER_POOL_SIZE | 1 | نسخ Camoufox Firefox الجاهزة؛ ارفعها لحل المتصفحات المتزامنة |
LOG_LEVEL | info | سجلات التشغيل: error، warn، info، debug، أو silent |
METRICS_DASHBOARD_ENABLED | false | تمكين لوحة المعلومات المحلية صراحةً دون رمز؛ اربط منفذها بـ 127.0.0.1 |
METRICS_DASHBOARD_TOKEN | — | احمِ لوحة المعلومات ونقطة نهاية JSON والبث المباشر برمز من 32 حرفًا أو أكثر |
METRICS_DB_PATH | /data/metrics/trawl.sqlite | مسار SQLite لسجل المقاييس المحلي (ثبّت /data/metrics بشكل دائم) |
BROWSER_ACQUIRE_TIMEOUT_MS | 15000 | المدة التي يستقصي فيها acquire() متصفحًا متاحًا قبل إرجاع HTTP 429 |
BROWSER_RECYCLE_AFTER_CONTEXTS | 8 | الاستبدال التدريجي بعد هذا العدد من سياقات الطبقة 3/4؛ اضبط 0 للتعطيل |
BROWSER_MAX_CONTENT_PROCESSES | 2 | حدّد عمليات محتوى Firefox لكل متصفح (dom.ipc.processCount)؛ يقلل الذاكرة/المعالج |
SCRAPE_MIN_TIER | 1 | أدنى طبقة مسموح بها عالميًا (1 HTTP، 2 متصفح مخزّن مؤقتًا، 3 جديد، 4 سكني) |
SESSION_CACHE_DRIVER | redis | خلفية ذاكرة التخزين المؤقت للجلسة: redis أو memory أحادي العملية |
REDIS_SESSION_TTL_SECONDS | 3600 | مدة صلاحية الجلسة في Redis أو الذاكرة (بالثواني) |
MEMORY_SESSION_CACHE_MAX_ENTRIES | 1000 | الحد الأقصى للمدخلات المحدودة بـ LRU لمشغل الذاكرة |
REDIS_URL | — | سلسلة اتصال Redis؛ فارغة أو غير مضبوطة تعطّل ذاكرة Redis المؤقتة |
REDIS_CONNECT_TIMEOUT_MS | 5000 | الحد الأقصى لوقت كل محاولة اتصال بـ Redis |
REDIS_RETRY_DELAY_MS | 5000 | التأخير قبل إعادة الاتصال بعد فشل بدء التشغيل؛ 0 يعطّل إعادة المحاولة |
SCRAPE_PROXY_SELECTION | failover | سياسة المجموعة: failover الثابتة، roundrobin لكل طلب، أو random |
PROXY_URL | — | وكيل HTTP أو SOCKS5 اختياري للطبقة 3، أو مجموعة مفصولة بفواصل |
PROXY_LIST_FILE | — | ملف يحتوي على عنوان URL واحد لوكيل الطبقة 3 في كل سطر |
RESIDENTIAL_PROXY_URL | — | يمكّن تصعيد وكيل الطبقة 4 |
RESIDENTIAL_PROXY_LIST_FILE | — | ملف يحتوي على عنوان URL واحد لوكيل الطبقة 4 في كل سطر |
STT_URL | — | نقطة نهاية Whisper المحلية لـ reCAPTCHA (اختياري) |
PORT | 8191 | منفذ استماع API |
MITM_ENABLED | false | تمكين وكيل HTTP/HTTPS المتجاوز للتحديات |
MITM_PORT | 8192 | منفذ استماع الوكيل الأمامي |
MITM_HOST | 0.0.0.0 | عنوان الربط؛ 127.0.0.1 للاسترجاع المحلي فقط |
MITM_CA_DIR | /data/proxy-ca | دليل شهادة CA الجذرية والمفتاح الخاص الدائم |
MITM_MAX_TIER | 4 | حدّد التصعيد المستخدم بواسطة الوكيل (مثل 3 للبقاء بعيدًا عن السكني) |
MITM_ALWAYS_SCRAPE | false | تخطَّ الطبقة 0 للوكيل؛ يعطّل مسار البث المباشر للوسائط/الملفات الكبيرة |
MITM_DEBUG | false | سجّل سطرًا واحدًا لكل طلب عبر الوكيل (تُسجَّل الأخطاء دائمًا) |
| الطبقة | التقنية |
|---|
| وقت التشغيل | Bun |
| API | Elysia |
| المتصفح | Camoufox Firefox (عبر camoufox-js) |
| ذاكرة الجلسة المؤقتة | Redis 8.8 |
| صفحة الهبوط | Nuxt 4 |
| التوثيق | VitePress |