استضافة Firecrawl ذاتيا: دليل عملي للتثبيت وحساب التكلفة
دليل عملي لاستضافة Firecrawl ذاتيا من إصدار مثبت، مع حفظ دليل اختبار الكشط ومقارنة الميزات وتكلفة 30 يوما مع Firecrawl Cloud قبل اختيار طريقة النشر.

تمنحك استضافة Firecrawl ذاتيا تحكما في الشيفرة والبنية التحتية، لا خدمة مُدارة بلا تكلفة. ثبّت الإصدار v2.11.162، وأثبت نجاح طلب فعلي إلى /v2/scrape، واحفظ الدليل، ثم احسب تكلفة التشغيل. في ورقة حساب 30 يوما أدناه، تبلغ تكلفة Firecrawl Cloud $0 لمعالجة 1,000 صفحة أساسية و$44 لمعالجة 10,000 صفحة، بينما يصل نموذج الاستضافة الذاتية إلى $725.20 في الشهر الأول عند احتساب 6 ساعات عمل مفترضة بوضوح للمشغّل.
الخلاصة: Firecrawl Cloud أوفر عند هذا الحجم
اختر استضافة Firecrawl ذاتيا عندما يكون الوصول إلى الشيفرة أو التحكم في البنية التحتية أو الالتزام بحدود شبكة محددة مبررا لامتلاك المنظومة. أما إذا كان المطلوب فقط تحويل عناوين URL عامة إلى محتوى منظم، فاختر Cloud. ويصل Firecrawl إلى النتيجة نفسها في دليل الاستضافة الذاتية: تمثل Cloud أسرع مسار مدعوم إلى بيئة الإنتاج، بينما تجعل الاستضافة الذاتية فريقك مسؤولا عن تشغيل المنظومة.
أرقام الاستضافة الذاتية ميزانية تقديرية وليست وعدا بمعدل معالجة محدد. لا ينشر Firecrawl حدا أدنى موثقا لمواصفات المضيف، ولم تتمكن هذه البيئة من اختبار قدرة الجهاز المذكور على تحمّل أي من الحجمين. المبرر الصادق لدفع التكلفة الإضافية هو التحكم. أما الوفورات فلا بد من إثباتها على صفحاتك الفعلية، وبمستوى التزامن ومعدل الإخفاق لديك.
ماذا تمنحك الاستضافة الذاتية فعليا؟
تحصل على محرك Firecrawl الأساسي داخل بنية تحتية تديرها أنت، ومعه مسؤولية تشغيل كل خدمة يعتمد عليها. يمكن تشبيه Cloud بمطبخ تجاري يعمل بطاقم كامل، بينما تمنحك الاستضافة الذاتية مخطط المطبخ. المخطط مفيد وقابل للفحص والتعديل، لكنه لا يشمل الطهاة أو فحوص السلامة أو مراقبة التبريد أو نوبة العمل الليلية.
تدعم الحزمة الافتراضية للإصدار المثبت مسارات scrape وcrawl وmap وsearch الأساسية، وتشمل المعالجة عبر Fetch وPlaywright. وتعتمد أيضا على خدمات مثل PostgreSQL وRedis وRabbitMQ، في حين لا تتحقق نقطة الجاهزية من عمل السلسلة كاملة.
هذا الفرق مهم، لأن {"status":"ok"} لا يثبت سوى استجابة نقطة HTTP واحدة. ولا يثبت أن الصفحة خرجت من المضيف، ثم عُرضت ومُررت عبر خدمات المعالجة وأُعيدت بصيغة Markdown. الحد الأدنى للدليل القابل للاعتماد هو نجاح عملية كشط فعلية.
تثبيت إصدار Firecrawl المناسب لهذا الدليل
استخدم Firecrawl v2.11.162، لا فرع main المتغير باستمرار. أُنشئت علامة الإصدار في 30 يوليو 2026، وتشير إلى الالتزام 7666c1f9ae8720a6bba271e0f60b6a217f8a5210. يضمن تثبيت الإصدار أن الشيفرة وملف Compose وتعليمات الإعداد تشير جميعها إلى النسخة نفسها.
المتطلبات الرسمية هي Git، وDocker Engine أو Docker Desktop، وDocker Compose v2، وcurl، ومنفذ 3002 متاح، وقدرة كافية لدى المضيف لبناء عدة خدمات وتشغيلها. ولا ينشر Firecrawl حدا أدنى موثقا لمواصفات الجهاز.
ثبّت مصدر الشيفرة
استنسخ مستودع Firecrawl وانتقل إلى
v2.11.162. وسجّل الالتزام الناتج كي يستطيع أي مشغّل لاحقا إعادة إنشاء النشر نفسه.أنشئ بيئة الأساس
عطّل مصادقة قاعدة البيانات لهذا التقييم داخل شبكة موثوقة فقط، وأبقِ اسم قاعدة PostgreSQL على
postgres، واستخدم كلمة مرور عشوائية لا تقل عن 32 حرفا. لا تُضمّن ملف.envفي أي التزام.ابنِ كل خدمة وافحصها
شغّل حزمة Compose، ثم راجع
docker compose ps --all. يجب أن تكون الخدمات طويلة التشغيل قيد العمل، وأن تكون مهام التهيئة التي تعمل مرة واحدة قد اكتملت.أثبت نجاح كشط فعلي
تحقق من الجاهزية، ثم استدعِ
/v2/scrapeللعنوانhttps://example.com. لا تتوقف عند استجابة الجاهزية.
git clone https://github.com/firecrawl/firecrawl.git
cd firecrawl
git checkout v2.11.162
git rev-parse HEAD
db_password="$(openssl rand -hex 32)"
printf 'USE_DB_AUTHENTICATION=false\nPOSTGRES_USER=postgres\nPOSTGRES_PASSWORD=%s\nPOSTGRES_DB=postgres\n' \
"$db_password" > .env
docker compose up --build -d
docker compose ps --all
curl --fail --silent --show-error --max-time 5 \
http://localhost:3002/v0/health/readiness
curl --fail-with-body --silent --show-error --max-time 75 \
-X POST http://localhost:3002/v2/scrape \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com","formats":["markdown"],"timeout":60000}'لا ينجح اختبار الكشط إلا إذا احتوت الاستجابة على success: true، ومحتوى بتنسيق Markdown، وبيانات وصفية تتضمن statusCode: 200. قد تختلف تفاصيل البيانات الوصفية بحسب الهدف. إذا نجح فحص الجاهزية وفشل الكشط، فافحص سجلات API وPlaywright، لأن إشارة الجاهزية الخضراء لم تختبر هذه المسارات.

احفظ سجل تحقق يمكن تسليمه إلى مهندس آخر
لا يُعد الإعداد متحققا منه ما لم تبقَ أدلته الخام بعد انتهاء جلسة الطرفية. يبدأ النص أدناه من المستودع المثبت، وينشئ مجلدا يحمل طابعا زمنيا ويضم مواصفات المضيف، والإصدار الدقيق، ووقت البناء، وحالة الحاويات، وناتج الجاهزية، و10 استجابات كشط خام، وملخصا، ولقطة واحدة للموارد، وناتج إعادة التشغيل، وعملية كشط ناجحة ثانية.
يستخدم عنوان URL العاشر نطاق .invalid المحجوز، كي تتضمن العينة إخفاقا مقصودا من دون الاعتماد على تعطل موقع حقيقي. أما الأهداف التسعة الأخرى فهي صفحات عامة ثابتة. ثبّت jq قبل تشغيل النص لأنه ينشئ JSON للطلبات ويقرأ حقول النتائج.
#!/usr/bin/env bash
set -euo pipefail
base_url="${FIRECRAWL_BASE_URL:-http://localhost:3002}"
stamp="$(date -u +%Y%m%dT%H%M%SZ)"
out="firecrawl-verification-${stamp}"
mkdir -p "$out/responses"
actual_release="$(git describe --tags --exact-match)"
[[ "$actual_release" == "v2.11.162" ]] || {
printf 'Expected v2.11.162, found %s\n' "$actual_release" >&2
exit 1
}
{
printf 'checked_at_utc=%s\n' "$(date -u +%FT%TZ)"
printf 'release=%s\n' "$actual_release"
printf 'commit=%s\n' "$(git rev-parse HEAD)"
printf 'cpus=%s\n' "$(getconf _NPROCESSORS_ONLN)"
awk '/MemTotal/ {printf "memory_kib=%s\n", $2}' /proc/meminfo
uname -a
docker version
docker compose version
} > "$out/host.txt" 2>&1
setup_start="$(date +%s)"
docker compose up --build -d > "$out/compose-up.log" 2>&1
printf '%s\n' "$(( $(date +%s) - setup_start ))" > "$out/setup-seconds.txt"
docker compose ps --all --format json > "$out/containers-before.json"
curl --fail --silent --show-error --max-time 5 \
"$base_url/v0/health/readiness" > "$out/readiness.json"
targets=(
https://example.com
https://example.org
https://example.net
https://httpbin.org/html
https://www.iana.org/help/example-domains
https://www.rfc-editor.org/rfc/rfc9110
https://www.w3.org/TR/PNG/iso_8859-1.txt
https://docs.python.org/3/
https://www.firecrawl.dev/
https://fixture-failure.invalid/
)
printf 'index\turl\tcurl_exit\tsuccess\tstatus_code\n' > "$out/summary.tsv"
i=0
for target in "${targets[@]}"; do
i=$((i + 1))
response="$out/responses/$(printf '%02d' "$i").json"
payload="$(jq -n --arg url "$target" \
'{url:$url,formats:["markdown"],timeout:60000}')"
if curl --silent --show-error --max-time 75 -X POST \
"$base_url/v2/scrape" -H 'Content-Type: application/json' \
-d "$payload" > "$response"; then curl_exit=0; else curl_exit=$?; fi
success="$(jq -r '.success // false' "$response" 2>/dev/null || printf false)"
status="$(jq -r '.data.metadata.statusCode // .error // "none"' \
"$response" 2>/dev/null || printf unreadable)"
printf '%s\t%s\t%s\t%s\t%s\n' \
"$i" "$target" "$curl_exit" "$success" "$status" >> "$out/summary.tsv"
done
docker stats --no-stream --format json > "$out/container-stats.json"
docker compose restart > "$out/restart.log" 2>&1
for attempt in $(seq 1 60); do
if curl --fail --silent --max-time 5 "$base_url/v0/health/readiness" \
> "$out/readiness-after-restart.json"; then break; fi
sleep 2
done
docker compose ps --all --format json > "$out/containers-after.json"
jq -n '{url:"https://example.com",formats:["markdown"],timeout:60000}' | \
curl --fail-with-body --silent --show-error --max-time 75 \
-X POST "$base_url/v2/scrape" -H 'Content-Type: application/json' -d @- \
> "$out/restart-scrape.json"
jq -e -s 'all(.[]; .success == true and .data.metadata.statusCode == 200)' \
"$out/responses/01.json" "$out/restart-scrape.json" >/dev/null
printf 'Saved verification record: %s\n' "$out"لا تنشر ادعاء بالنجاح استنادا إلى هذا السجل قبل نجاح الكشط الأول والكشط الذي يلي إعادة التشغيل. واحتفظ أيضا بكل استجابة فاشلة. فالإخفاق دليل يتعلق بنظام DNS، أو الاتصال الصادر، أو أساليب مكافحة الروبوتات، أو حالة الهدف، أو الحزمة نفسها؛ وحذفه يجعل السجل أقل فائدة.
تعرّف إلى حدود حزمة الاستضافة الذاتية الافتراضية
تتضمن استضافة Firecrawl الذاتية المسارات الأساسية، لا كل واجهات منتجات Firecrawl. لا تضف خدمة إلا عندما تستدعيها حاجة مقاسة، وليس لمجرد وجود خيار إعداد لها.
للتعرف إلى خيارات البحث والاسترجاع السحابي خارج نطاق قرار النشر هذا، يعرض دليل مقارنة واجهات API للبحث بالذكاء الاصطناعي مجموعة أوسع من المزودين. أما أدوات الكشط البديلة فهي قرار شراء منفصل.
من يستفيد أكثر من استضافة Firecrawl ذاتيا؟
الفرق الأكثر ملاءمة هي التي تملك بالفعل قدرة متخصصة في تشغيل المنصات ومتطلبا واضحا للتحكم. انخفاض سعر الصفحة وحده لا يكفي عند الأحجام الصغيرة.
الحالات غير الملائمة واضحة بالقدر نفسه. فريق منتج من شخصين يريد نقطة كشط موثوقة واحدة سيشتري مشروعا تشغيليا لا يحتاج إليه. كما أن الفريق الذي يعتمد على Agent أوBrowser أوInteract أو لقطات الشاشة أو إجراءات الصفحة أو الكشط المتقدم المُدار يبدأ من الجانب الخطأ لحدود الميزات.
ورقة حساب 30 يوما: للتحكم فاتورة حقيقية
عند 1,000 و10,000 صفحة أساسية، يكون Firecrawl المُدار أقل تكلفة وفق افتراضات صريحة ومحافظة. تستخدم ميزانية الاستضافة الذاتية DigitalOcean Basic Droplet بمواصفات 8 vCPUs وذاكرة 16 GiB وقرص SSD بسعة 320 GiB مقابل $96 شهريا، إضافة إلى Volume دائم بسعة 100 GiB مقابل $10 ومخصص نسخ احتياطي أسبوعي قدره $19.20. وكانت هذه الأسعار مدرجة لدى DigitalOcean في 22 سبتمبر 2026.
اختيار 16 GiB ليس حدا أدنى رسميا. بل هو افتراض للميزانية يستند إلى ملف Compose المثبت، الذي يضع حدا قدره 8 GiB لخدمة API و4 GiB لخدمة Playwright، بينما تظل قاعدة البيانات وذاكرة التخزين المؤقت وقائمة الانتظار والعمليات الأخرى بحاجة إلى مساحة. ولا يمكن تحديد حجم المضيف إلا باختبار حمل عمل فعلي.
وقت المشغّل هو البند الأكبر. تفترض ورقة الحساب 4 ساعات للإعداد وساعتين للصيانة خلال أول 30 يوما، بمعدل تكلفة شامل قدره $100 للساعة. هذا افتراض وليس سعرا سائدا في السوق؛ استبدله برقمك الفعلي.
تحتسب Firecrawl Cloud رصيدا واحدا لكل صفحة أساسية تُكشط. تشمل الخطة Free رصيد 1,000 مقابل $0. ولمعالجة 10,000 صفحة مع الفوترة الشهرية، تبلغ تكلفة Hobby $19 مقابل 5,000 رصيد، ثم تأتي أرصدة Hobby الإضافية البالغة 5,000 عبر 5 زيادات قيمة كل منها $5، ليصبح الإجمالي $44. يخفض سعر Hobby السنوي التكلفة الشهرية الفعلية إلى $41، لكنه يتطلب فوترة سنوية.

لا يشمل هذا النموذج الضرائب أو مزودي LLM الاختياريين أو رسوم الوكلاء أو Fire-engine أو التوافر العالي أو نقل البيانات الزائد أو المراجعة القانونية أو معالجة الحوادث. كما أنه لا يفترض لجهاز الاستضافة الذاتية قدرة معالجة لم تُثبت بعد. وفي مثال لشهر لاحق، يؤدي حذف ساعات الإعداد الأربع إلى خفض تكلفة الاستضافة الذاتية إلى $325.20، لكنها تظل أعلى من Cloud عند كلا الحجمين المدروسين.
لا تعني النتيجة أن الاستضافة الذاتية لا يمكن أن توفر المال مطلقا. بل إن الوفورات لا تبدأ إلا بعد أن يثبت الاختبار المعياري السعة، ويصبح الحجم كافيا لتوزيع تكلفة البنية التحتية الثابتة ووقت المشغّل على عدد أكبر من الصفحات الناجحة. وعند 10,000 صفحة، يجب أن يبرر متطلب التحكم فارق الشهر الأول البالغ $681.20 في ورقة الحساب هذه.
3 منتجات تستحق البناء لسد الفجوة
تتمثل أقوى فرصة في حزمة التحقق، لأنها تحول إعدادا غامضا إلى أدلة من دون منافسة Firecrawl نفسه. أعادت لقطة البحث المباشرة الوحيدة 8 عمليات بحث ذات صلة و9 أسئلة ضمن People Also Ask. تركز 5 من عمليات البحث ذات الصلة على Docker أو Docker Compose أو الاستخدام المجاني أو المقارنة مع Cloud أو مفاتيح API، بينما تسأل الأسئلة صراحة عن تكلفة Firecrawl وأمانه.
1. حزمة جاهزية الاستضافة الذاتية والتحقق منها
المنتج عبارة عن أداة CLI محلية مع تقرير موجه لقادة الهندسة. تتحقق من الإصدار والمضيف وحالة Compose ومسار الكشط الفعلي والإخفاق المتوقع وسلوك إعادة التشغيل ونواقص الإنتاج، ثم تنشئ أرشيفا موقّعا للمراجعة.
إشارة الطلب مباشرة: تشمل عمليات البحث ذات الصلة على Google العبارات Firecrawl self-host Docker وFirecrawl self-host docker compose وFirecrawl self-host API key. أصغر نسخة قابلة للبيع هي أمر واحد وعينة ثابتة وتقرير HTML وضوابط لإخفاء البيانات الحساسة. أما القيد فهو اختلاف البيئات؛ يمكن للتقرير إثبات ما جرى تشغيله، لكنه لا يستطيع ضمان سلوك كل هدف أو إصدار مستقبلي بالطريقة نفسها.
2. حاسبة تكلفة Cloud مقابل الاستضافة الذاتية
المنتج حاسبة للنشر تستقبل عدد الصفحات الناجحة والخيارات والتزامن ومعدل تكلفة المشغّل وهدف الاستعادة والميزات المطلوبة. وتعرض أرصدة Cloud إلى جانب تكلفة البنية التحتية والعمل، مع إظهار جميع الافتراضات.
تتضمن لقطة البحث Firecrawl self-hosted vs cloud، بينما تشمل أسئلة People Also Ask كلا من Is Firecrawl expensive? وIs there a free version of Firecrawl available?. نقاط الأسعار المباشرة واضحة: $0 مقابل 1,000 رصيد Cloud، و$19 شهريا مقابل 5,000 رصيد Hobby، و$5 لكل 1,000 رصيد Hobby إضافي. أبسط منتج قابل للتطبيق هو جدول أسعار مرتبط بالإصدار مع تصدير لورقة الحساب. أما القيد فهو سعة الاستضافة الذاتية: من دون اختبار معياري لدى المشتري، يجب أن تعرض الحاسبة نطاقا بدلا من نقطة تعادل زائفة.
3. مخطط تحصين بيئة الإنتاج
المنتج وحدة بنية تحتية ذات خيارات محددة للفرق التي اجتازت التقييم وتحتاج الآن إلى المصادقة وTLS واستمرارية البيانات والنسخ الاحتياطي واختبارات الاستعادة والمراقبة والأسرار وضبط الاتصال الصادر.
تنقسم إشارة الطلب بين سؤال People Also Ask الوارد بصيغة Is Firecrawl safe to use? وعملية البحث ذات الصلة Firecrawl self-host API key. يسرد دليل Firecrawl نفسه كل قرار إنتاجي ناقص، لذا تكمن القيمة في التنفيذ والأدلة، لا في الادعاء أن المسؤوليات لم تكن موثقة. أبسط منتج قابل للتطبيق هو هدف سحابي واحد مدعوم، وشيفرة بنية تحتية مثبتة الإصدار، وتنبيهات، واختبار عملي للاستعادة. أما القيد فهو المسؤولية القانونية؛ فلا تستطيع وحدة قابلة لإعادة الاستخدام اعتماد الوضع الأمني أو الامتثالي لدى العميل.
الحدود والخلاصة الصريحة
لا تستضف Firecrawl ذاتيا لتوفير $19 قبل قياس العمل التشغيلي. يعطّل خط الأساس مصادقة API، ولا يتضمن TLS، ولا يضيف تخزينا دائما إلى PostgreSQL وRedis وRabbitMQ، ولا يوفر توافرا عاليا. وتعريضه لشبكة غير موثوقة سيحوّل اختصارا مخصصا للتقييم إلى خطأ أمني.
لا تفترض أن الحزمة الافتراضية تطابق ميزات Cloud واحدة بواحدة. تتطلب تنسيقات LLM مزودا. ويأتي Fire-engine بصورة منفصلة. ولا تتوفر لقطات الشاشة والإجراءات في المسارات الافتراضية. كما تظل Agent وBrowser وInteract ولوحات المعلومات وضوابط المؤسسات ضمن واجهات Cloud، أو تتطلب خدمات يجري التحقق منها بصورة مستقلة.
لا تحدد حجم بيئة الإنتاج اعتمادا على حدود Compose أو ورقة الحساب هذه. فحد الذاكرة ليس توصية بمواصفات المضيف. شغّل العينة الثابتة، وأضف صفحات تمثل حمل عملك الفعلي، وقِس التزامن وفئات الإخفاق، ثم اختبر استعادة النسخة الاحتياطية والتراجع عن الترقية.
أقوى مبرر للمضي قدما هو وجود متطلب للتحكم لا تستطيع Cloud تلبيته للفريق. أما أضعف مبرر فهو كلمة "مجاني".
خطوة يوم الاثنين
امنح مهندسا واحدا نافذة تقييم مدتها ساعتان على مضيف خاص ومؤقت. ثبّت v2.11.162، وشغّل اختبار الكشط الرسمي لمرة واحدة، ونفّذ نص التحقق المحفوظ، وتوقف إذا لم تنجح عملية الكشط بعد إعادة التشغيل. بعد ذلك، استبدل معدل المشغّل البالغ $100 في ورقة الحساب بمعدلك الشامل، واكتب جملة واحدة تسمّي متطلب التحكم. إن كانت الجملة مبهمة، فاستخدم Cloud. وإن كانت محددة، فخطط لضوابط الإنتاج قبل زيادة الحجم.
هل Firecrawl مكلف؟
يعتمد ذلك على طريقة النشر وحجم الصفحات. تبلغ تكلفة Firecrawl Cloud مقدار $0 لأول 1,000 رصيد صفحة أساسية شهريا. في ورقة الحساب هذه، تكلف معالجة 10,000 صفحة أساسية $44 ضمن Hobby بالفوترة الشهرية مع الدفع حسب الاستخدام، بينما يبلغ مثال الشهر الأول للاستضافة الذاتية $725.20 مع افتراض 6 ساعات للمشغّل. ولا تصبح الاستضافة الذاتية مجدية ماليا إلا عندما يبرر اختبارك المعياري ومتطلبات التحكم العمل الثابت اللازم لها.
هل تتوفر نسخة مجانية من Firecrawl؟
نعم. يوفر Firecrawl مسارا مفتوح المصدر للنشر، كما توفر Firecrawl Cloud خطة Free تتضمن 1,000 رصيد شهريا. يلغي المصدر المفتوح رسوم خطة Firecrawl، لا تكلفة الحوسبة والتخزين والأمان والمراقبة والترقيات والاستعادة ووقت المشغّل.
هل استخدام Firecrawl آمن؟
لا يكون خط الأساس التقييمي آمنا إلا داخل شبكة موثوقة مع ضوابط مناسبة للمضيف والشبكة. فهو يعطّل مصادقة قاعدة البيانات ولا يتضمن تصميما للمصادقة في بيئة الإنتاج، أو TLS، أو تخزينا دائما، أو توافرا عاليا، أو آلية للاستعادة. وتعتمد السلامة على تنفيذ تلك الضوابط واختبارها قبل تعريض الخدمة للاتصال الخارجي.
كيف تستضيف Firecrawl ذاتيا باستخدام Docker Compose؟
ثبّت Git وDocker وDocker Compose v2 وcurl. انتقل إلى v2.11.162، وأنشئ ملف .env الأساسي الذي يضم القيم الأربع، وشغّل docker compose up --build -d، وافحص كل خدمة، وتحقق من الجاهزية، ثم اشترط استجابة ناجحة لطلب POST /v2/scrape. احفظ النتائج الخام وكرر الكشط بعد إعادة التشغيل.
هل تحتاج استضافة Firecrawl الذاتية إلى مفتاح API؟
يعتمد التقييم داخل الشبكة الموثوقة الإعداد USE_DB_AUTHENTICATION=false، ولذلك لا تستخدم طلباته المحلية مفتاح API. وهذا ليس تصميما للإنتاج على شبكة عامة. يوضح Firecrawl أن مصادقة الإنتاج تحتاج إلى تصميم متكامل ومدعوم للهوية وقاعدة البيانات، إضافة إلى ضوابط الشبكة وTLS. ولا يكفي متغير بيئة واحد.
إذا كنت تريد نشرا مثبت الإصدار وقابلا للمراقبة ومبنيا حول متطلبات التحكم لديك، فراجع أنظمة الذكاء الاصطناعي للإنتاج.
- آخر تحديث
- 22 سبتمبر 2026
- التصنيف
- Build







