[{"data":1,"prerenderedAt":257},["ShallowReactive",2],{"\u002Fblog\u002Fsub-store-cloudflare\u002F:ar":3,"\u002Fblog\u002Fsub-store-cloudflare\u002F-surround:ar":152,"blog-all-posts:ar":153},{"id":4,"title":5,"author":6,"body":10,"date":135,"description":136,"extension":137,"image":138,"locale":139,"meta":140,"minRead":141,"navigation":142,"original":142,"path":143,"pinned":144,"seo":145,"source":138,"sourceUrl":138,"stem":146,"tags":147,"updated":138,"__hash__":151},"blog\u002Fblog\u002Fsub-store-cloudflare.ar.md","نقلتُ تجميع اشتراكات «المطارات» إلى Cloudflare",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":127},"minimark",[13,17,28,33,36,39,52,55,58,62,65,86,89,93,96,99,107,114,118,121,124],[14,15,16],"p",{},"أستخدم مزوّدي البروكسي («المطارات») منذ ثلاث أو أربع سنوات، وخلالها بنيت لنفسي في بعض الأحيان عقد VPS. وطالما كان هناك أمرٌ مزعج: ثلاث أو خمس اشتراكات في يدي، مع بعض الخوادم التي بنيتها بنفسي، تتناثر في العميل فيُضاف كل منها على حدة، وقواعد توزيع الحركة يجب إعادة ضبطها في كل عميل. تبديل الجهاز، أو تبديل العميل، أو تركيب الأداة لأحد أفراد العائلة — فيبدأ الطقس من جديد.",[14,18,19,20,27],{},"ثم فكرت: لا داعي لإدارة الاشتراكات متناثرةً داخل العميل. اجمعها في رابط واحد، واجعَل القواعد مثبتةً في الخادم، وليكتفِ العميل بالاشتراك — فيصبح الأمر نقيّاً. كنتُ أستخدم نهج Sub-Store من قبل، لكنه يعمل على خادمك الخاص، ووجدت صيانته مرهقة. لهذا كتبت هذه المرة نسخة تعمل على Cloudflare بنفسي، اسمها sub-store-cloudflare، ومصدرها مفتوح على ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fgithub.com\u002Frealchendahuang\u002Fsub-store-cloudflare",[25],"nofollow","GitHub",".",[29,30,32],"h2",{"id":31},"إنه-في-الحقيقة-يفعل-شيئاً-واحداً","إنه في الحقيقة يفعل شيئاً واحداً",[14,34,35],{},"أن يعجن عدة مصادر اشتراك في اشتراك واحد.",[14,37,38],{},"وبالتحديد، يمكنك أن تحشر فيه أشياء منها:",[40,41,42,46,49],"ul",{},[43,44,45],"li",{},"روابط اشتراك عدة مزوّدي بروكسي",[43,47,48],{},"نص العقد من خادم VPS الخاص بك (vless وtrojan وss وvmess كلها مقبولة)",[43,50,51],{},"لصق عقدة مؤقتة هنا أيضاً جائز",[14,53,54],{},"بعد دخولها، يسحبها Worker ويزيل المكرر، يفلترها وفق القواعد التي تحددها، ثم يعيد تسميتها، ويضيف الأعلام، ويحلّ النطاقات عند الحاجة. ويخرج ما بعد ذلك في اشتراك مركّب؛ ويكفي للعميل أن يشترك في هذا الرابط الواحد.",[14,56,57],{},"أما قواعد التوجيه فوضعتها في الخادم. فيه قوالب Mihomo شائعة مدمجة: acl4ssr، وقوائم loyalsoldier البيضاء والسوداء، وai-streaming وما شابه؛ وتوزيع الحركة ومجموعات القواعد كلها مُضبطة في السحابة. ارمِ الاشتراك في عملاء مثل mihomo\u002Fclash أو surge أو sing-box أو shadowrocket، فينزل محصولاً جاهزاً بقواعد التوجيه جملة، دون أن تكتب هناك قواعد يدوياً أو تداوم على روابط مجموعات القواعد.",[29,59,61],{"id":60},"لماذا-وضعه-على-cloudflare-تحديداً","لماذا وضعه على Cloudflare تحديداً",[14,63,64],{},"السبب واقعي جداً:",[40,66,67,74,80],{},[43,68,69,73],{},[70,71,72],"strong",{},"لا خادم."," Workers + D1، وحصتهما المجانية تكفي للفرد؛ فيُحذف ثمن الخادم وصيانته.",[43,75,76,79],{},[70,77,78],{},"نطاق workers.dev نفسه خارج الجدار."," اتصال العميل به لجلب الاشتراك ناجحٌ من ذاته؛ فلا توجد لعبة «الخادم في الخارج واشتراك العقد يحتاج مفتاحاً» المراوغة.",[43,81,82,85],{},[70,83,84],{},"بعد النشر تحصل على واجهة إدارة ويب وطرف تنزيل."," فحتى عند تبديل العميل في الهاتف يمكنك فتح صفحة ويب لتعديل الإعدادات.",[14,87,88],{},"أبقيت الحزمة التقنية صغيرةً عمداً: Worker + Static Assets + D1 + Worker Secrets. وKV وR2 وDurable Objects وQueue وCron كلها خارج المسار الأساسي؛ فكل ما يمكن الاستغناء عنه، نستغني عنه.",[29,90,92],{"id":91},"النشر-عمداً-عبر-مسارين","النشر عمداً عبر مسارين",[14,94,95],{},"المسار الأول لمن يريد الاستخدام: اضغط زر Deploy to Cloudflare في المستودع، يسحب Cloudflare المستودع ويثبّت Worker وD1 ويسألك عن رمزين (tokens)، وبعد النشر يمنحك رابط إدارة يحمل رمزاً. خطوة بخطوة، دون لمس سطر الأوامر.",[14,97,98],{},"المسار الثاني لي ولعشّاق التجريب: تثبيت بضغطة واحدة عبر وكيل ذكاء اصطناعي.",[14,100,101,102,106],{},"المستودع يحوي بروتوكول الوكيل (AGENTS.md + SKILL داخل agent). اكتب مصادر الاشتراك والاشتراك المركّب المطلوب وقوالب القواعد التي تريدها في ملف إعداد محلي، ثم شغّل ",[103,104,105],"code",{},"pnpm run install:cloudflare","، وسيتفحص الوكيل تسجيل دخول Cloudflare، وينشئ قاعدة البيانات، ويكتب secrets، ويهاجر، وينشر، ويستورد الإعدادات، ويتحقق من الروابط، ثم يسلمك رابط الإدارة ورابط التنزيل.",[14,108,109,110,113],{},"وأنا شخصياً دخلت من هذا المسار، لذلك أنصح به أكثر، فهو أراح البال. وعند الاستخدام مع Codex \u002F Claude Code، ما عليك سوى نسخ المطالبة في ",[103,111,112],{},"agent\u002Finstall.prompt.md"," من المستودع.",[29,115,117],{"id":116},"لمن-هذا","لمن هذا",[14,119,120],{},"بقولٍ صريح: من يملك أكثر من مزوّد بروكسي، وأضاف إليها بضع عقد يبنيها بنفسه، ويريد جمعها في اشتراك واحد لاستخدامه الخاص — فهذا هو الجمهور المستهدف للمشروع. أما من لديه مزوّد واحد يكتفي به، فحقاً لا داعي للخوض في هذا.",[14,122,123],{},"الكود مفتوح بالكامل، بترخيص AGPL. تصميم الواجهة الأمامية يحيي نهج Sub-Store الأصلي؛ فالأصل يعمل في حاوية ويغطي منظومة عملاء أوسع، وأنا صنعت شكلاً أصغر متوافقاً مع Cloudflare بطبيعته، يسهل تعديله ونشره مباشرة، لا أنه إعادة استنساخ بنداً ببند.",[14,125,126],{},"من يهتم فليتصفح المستودع؛ README مكتوب بشكل وافٍ، واتبع الخطوات للنشر.",{"title":128,"searchDepth":129,"depth":129,"links":130},"",2,[131,132,133,134],{"id":31,"depth":129,"text":32},{"id":60,"depth":129,"text":61},{"id":91,"depth":129,"text":92},{"id":116,"depth":129,"text":117},"2026-06-28","اشتراكات عدة مزوّدي بروكسي مع عقد مبنية ذاتياً تُعجن في اشتراك واحد؛ قواعد توزيع الحركة تُضبط في الخادم، بينما يكتفي العميل بالاشتراك.","md",null,"ar",{},4,true,"\u002Fblog\u002Fsub-store-cloudflare",false,{"title":5,"description":136},"blog\u002Fsub-store-cloudflare.ar",[148,149,150],"Cloudflare","تجاوز الرقابة","مشروع مفتوح المصدر","GXkEeJWFLguzddRoiK6kOFVX0QlDAEd8fAsRjuG3nRo",[138,138],[154,163,171,180,187,195,202,210,218,224,231,233,240,248],{"path":155,"title":156,"description":157,"date":158,"minRead":159,"tags":160},"\u002Fblog\u002Fagent-harness-selection","بعد خوض تجربة Pi Agent وOMP وCodex وZCode، لماذا اخترت في النهاية OpenCode + OpenChamber","مراجعة تجربة الاختيار بين بيئات الوكيل (Agent Harness): بمعايير تجربة الواجهة الرسومية وقيود المورّد وحرية إعادة التطوير، استُبعدت Pi Agent وOMP وCodex وZCode، ووُقع الاختيار على نواة OpenCode مع واجهة OpenChamber.","2026-08-06",6,[161,162],"AI Agent","اختيار الأدوات",{"path":164,"title":165,"description":166,"date":167,"minRead":159,"tags":168},"\u002Fblog\u002Fcloudflare-broke-stack","أفضل ممارسات التطوير المستقل لعام 2026: باقة Cloudflare الشاملة للمفلسين","حزمة تقنية صفر التكلفة للمطوّر المستقل: Codex للبرمجة وGitHub لإدارة الإصدارات وStripe لاستلام الأموال؛ الواجهة الأمامية TanStack Start والخلفية Hono + Workers وقاعدة البيانات D1 والتخزين R2 والكاش KV — كلها تعمل على Cloudflare.","2026-06-15",[148,169,170],"التطوير المستقل","الحزمة التقنية",{"path":172,"title":173,"description":174,"date":175,"minRead":159,"tags":176},"\u002Fblog\u002Fdeepseek-api-web-search","البحث عبر الإنترنت مدمج في DeepSeek API — وResponses API تمنحك قدرة البحث الرسمية مجاناً","دمجت DeepSeek رسمياً البحث عبر الإنترنت في واجهة API: باستدعاء deepseek-v4-flash عبر واجهة Responses وإعلان أداة web_search فقط، لا حاجة لربط محركات بحث خارجية ولا لتقديم طلبات مفاتيح بحث.","2026-08-05",[177,178,179],"DeepSeek","API","أدوات الذكاء الاصطناعي",{"path":181,"title":182,"description":183,"date":175,"minRead":184,"tags":185},"\u002Fblog\u002Fdeepseek-v4-flash-review","تجربة متعمقة للإصدار الرسمي من DeepSeek V4 Flash: رخيص وسريع وسياق 1M وبحث مدمج","تجربة متعمقة لبضعة أيام مع الإصدار الرسمي من DeepSeek V4 Flash: رخص مطلق، سرعة البرق، سياق 1M، بحث عبر الإنترنت مدمج رسمياً، ومصدر مفتوح بالكامل. القصور الوحيد هو تعدد الوسائط، لكن يمكن تعويضه بدمج نماذج أخرى.",7,[177,186,179],"مراجعة النماذج",{"path":188,"title":189,"description":190,"date":167,"minRead":191,"tags":192},"\u002Fblog\u002Ffree-cloudflare","كيف يستنزف المستخدم المجاني كل إمكانيات Cloudflare — وإلى أي مدى تصل المجانية؟","الإصدار المجاني من Cloudflare يكفي لتشغيل بنية إنترنت شخصية متكاملة: DNS وCDN وPages وWorkers وKV وD1 وR2 والبريد وTunnel وAI Gateway وغيرها.",8,[148,193,194],"الحصة المجانية","النشر",{"path":196,"title":197,"description":198,"date":199,"minRead":191,"tags":200},"\u002Fblog\u002Fmodel-harness-decoupling","Harness الشركة الأصلية ليس دائماً الإجابة الفائزة: في عصر النماذج المفتوحة، اختر النموذج والـHarness كل واحد على حدة","تستخدم Claude فتركب Claude Code؟ في عصر النماذج المفتوحة هذا الحدس يحتاج إلى ترقية. ميزة الشركة الأصلية حقيقية، لكن تدريب نموذج جيد وبناء Harness جيد هما هندسان مختلفتان — هذه المقالة توضح لماذا أصبح اختيار النموذج والـHarness قرارين منفصلين، مع خريطة تحديد مواقع لخمسة Harnesses.","2026-09-09",[161,201,162],"Harness",{"path":203,"title":204,"description":205,"date":199,"minRead":191,"tags":206},"\u002Fblog\u002Fopencode-productive-stack","مستقر وسريع ومنتج ورخيص: توثيق كامل لطقم الأدوات الخاص بي في برمجة الذكاء الاصطناعي","OpenCode مع OpenChamber واشتراكين في DeepSeek V4 Flash: خمسة عشر مشروعاً تشغّل الكود في آن واحد والرصيد بالكاد يتحرك. تكشف هذه المقالة الإعداد الكامل: تقليم السياق، الذاكرة الطبقية، أتمتة سطح المكتب، ودروس الالتزام بالزوج الأصلي.",[207,208,209],"OpenCode","البرمجة بالذكاء الاصطناعي","الإعدادات",{"path":211,"title":212,"description":213,"date":214,"minRead":215,"tags":216},"\u002Fblog\u002Fproduct-faxin-principle","مبدأ الدافع الأصيل: لماذا يجب على المطوّر المستقل أن يتعلم فن التخلي","لماذا تنطلق؟ لمن تنطلق؟ أي مشكلة تريد حلاً لها فعلاً؟ حدّة المنتج تأتي من سعة البذل وقوة التخلي.","2026-06-20",10,[217,169],"فكر المنتج",{"path":219,"title":220,"description":221,"date":214,"minRead":191,"tags":222},"\u002Fblog\u002Fproduct-pain-vs-itch","لا تَطِر من قول المستخدم «رائع»: نقطة الألم مقابل نقطة الحكّة","الإعجاب الشفهي لا يساوي شيئاً. لقياس الطلب معيارٌ صلبٌ وحيد: ما الذي يقبل المستخدم أن يدفعه؟",[217,223],"الحكم على الطلب",{"path":225,"title":226,"description":227,"date":158,"minRead":228,"tags":229},"\u002Fblog\u002Fqwen-vision-for-deepseek","سدّ نقص تعدد الوسائط لدى DeepSeek: خطة التعرف على الصور Qwen-3.7-Flash","لا يملك DeepSeek V4 Flash تعدد وسائط، فكيف نتعامل مع صوره؟ بعد البحث، الخطة الأكثر كفاءة سعراً حالياً هي Qwen-3.7-Flash: تكلفة التعرف على صورة واحدة ضئيلة للغاية، وبدمجها مع V4 Flash يُسدّ هذا النقص.",5,[177,230,186],"تعدد الوسائط",{"path":143,"title":5,"description":136,"date":135,"minRead":141,"tags":232},[148,149,150],{"path":234,"title":235,"description":236,"date":199,"minRead":184,"tags":237},"\u002Fblog\u002Ftui-cognitive-bandwidth","واجهة TUI تقتل نطاقك المعرفي: حان وقت تحطيم «فلتر الجييك» في البرمجة بالذكاء الاصطناعي","تعشر موجة من وكلاء البرمجة بالذكاء الاصطناعي على إطلاق واجهات TUI، وإعادة التفاعل إلى نموذج الطرفية من الثمانينيات، مع تسميته «انغماساً» و«احتراماً للمبرمجين». تفكك هذه المقالة ثلاث آليات تُخفض بها TUI النطاق المعرفي بشكل منهجي، وتشرح لماذا تعد Web UI هي الحل الصحيح.",[208,238,239],"تصميم التفاعل","خواطر",{"path":241,"title":242,"description":243,"date":244,"minRead":159,"tags":245},"\u002Fblog\u002Fvalue-not-external","مناقشة ما إذا كان للأمر قيمة، هذه المناقشة نفسها بلا قيمة","قيمتنا لا يحددها أي أحد. في عصر الذكاء الاصطناعي، كيف ينبغي للإنسان أن يفهم نفسه حقاً؟","2026-06-18",[246,247],"تأملات في الذكاء الاصطناعي","خواطر إنسانية",{"path":249,"title":250,"description":251,"date":252,"minRead":253,"tags":254},"\u002Fblog\u002Fx-growth-1000-followers","أكثر من 1000 متابع في يوم وزيادة، ماذا فعلت؟","في يونيو أدرت حساب X بجدية، فزاد متابعوّ أكثر من 1000 في يوم وزيادة. هذه المقالة توثق ما فعلته حينها وما تلقيتُه من استجابات.","2026-06-16",12,[255,256],"إدارة X","نمو المحتوى",1789752317156]