00:00:00في عالم مثالي، يجب أن تكون مشاركة المستضيفات المحلية (localhosts) سهلة، ولكن بطريقة ما تتحول إلى
00:00:05معضلة كبيرة.
00:00:06تفتح ngrok، فتصطدم بالحدود، وتحصل على رابط عشوائي، والآن ما كان ينبغي أن يستغرق 10 ثوانٍ فقط
00:00:11تسبب في تعطل كل شيء.
00:00:12أو الأسوأ من ذلك، أنك تريد مشاركة شيء ما مع شخص واحد ولكنك لا تريده أن يصبح
00:00:16عاماً.
00:00:17هذا هو zrock.
00:00:18إنه بديل مفتوح المصدر لـ ngrok مع خاصية "انعدام الثقة" المبنية على OpenZiti، والآن المزيد
00:00:24من المطورين ينتقلون إليه لأنه يعالج الجزء المزعج حقاً في عملية النفق (tunneling).
00:00:33إذاً، ما هو zrock؟
00:00:34بشكل أساسي، يتيح لك مشاركة تطبيقك المحلي، أو ملفاتك، أو حتى خدمات TCP و UDP بشكل علني
00:00:40أو خاص دون فتح منافذ، أو العبث بجهاز التوجيه، أو الحاجة إلى عنوان IP عام.
00:00:45وكل شيء مشفر من الطرف إلى الطرف، لذا الفكرة هي أنه يمكنك عرض ما تحتاجه فقط دون
00:00:50كشف أكثر مما تحتاجه بالفعل.
00:00:52إنه مجاني، وقابل للاستضافة الذاتية، ولأنه مبني على شبكة "انعدام الثقة"، فإن بياناتك
00:00:58لا تلمس الإنترنت العام إلا إذا أردت ذلك.
00:01:01لكنه أيضاً أكثر سلاسة، وهذا ما يعجبني.
00:01:03أشياء مثل النطاقات المخصصة، وأداء أفضل، وواجهة مستخدم جديدة.
00:01:07لكن لا يهم أي من ذلك إذا لم يكن سريعاً، لذا دعوني أريكم.
00:01:10إذا كنت تستمتع بالأدوات مفتوحة المصدر ونصائح البرمجة لتسريع سير عملك، فتأكد من الاشتراك
00:01:15في قناة Better Stack.
00:01:16لدينا فيديوهات تصدر طوال الوقت.
00:01:18حسناً، إعداد نظيف، لدي تطبيق Next.js بسيط يعمل على localhost.
00:01:23لا شيء معقد، مجرد صفحة افتراضية بسيطة.
00:01:26لذا قد تتوقع أن يستغرق هذا عدة خطوات، أليس كذلك؟
00:01:30منافذ، إعدادات، وربما بعض التجهيزات، ولكن شاهد هذا.
00:01:34أولاً أتأكد من تفعيل بيئة zrock الخاصة بي.
00:01:37هذا إعداد لمرة واحدة باستخدام أمر "zrock enable".
00:01:40بعد ذلك يمكنني تشغيل أمر واحد هنا.
00:01:44هذا كل ما في الأمر حقاً.
00:01:45لا توجد ملفات إعداد، ولا تجهيزات إضافية، وبشكل فوري تحصل على رابط https عام.
00:01:51يمكنني فتحه هنا، ونعم، إنه يعمل ببساطة.
00:01:55التطبيق متاح الآن على الإنترنت.
00:01:57لا يوجد توجيه للمنافذ (port forwarding).
00:01:58لا توجد تغييرات في جدار الحماية.
00:02:00في هذه المرحلة أصبح عاماً، ولكن هذا هو المكان الذي يمكن أن تبدأ فيه الأمور بالسير بشكل خاطئ.
00:02:05لذا لنوقف ذلك.
00:02:06Control C. الآن لنقم بالنسخة التي يريدها معظم المطورين حقاً.
00:02:10مشاركة خاصة، لنفس التطبيق، على نفس الجهاز، ولكن الآن بسلوك مختلف تماماً.
00:02:17بدلاً من رابط عام، نحصل على رمز (token)، وهذا هو الفرق الجوهري هنا، لأنه
00:02:23الآن الدخول ليس مفتوحاً.
00:02:25بل يتم منحه فعلياً باستخدام هذا الرمز.
00:02:28لذا يمكن لأي شخص أثق به تشغيل "zrock access private" مع الرمز الذي أعطيته إياه، وعندها
00:02:34فقط يمكنهم الوصول إليه.
00:02:36لا توجد برامج بوت تفحص نقطة النهاية الخاصة بك، ولا زيارات عشوائية تضرب تطبيقك، لا شيء من هذا القبيل.
00:02:42إنه مجرد وصول محكم.
00:02:44لذا بدلاً من كشف تطبيقك، فقد سمحت بالوصول إليه بشكل انتقائي بناءً على من تريد،
00:02:49وهذا هو الفرق الكبير بين الاثنين، والأمر لا يقتصر على التطبيقات فقط.
00:02:53نفس الفكرة تعمل مع الملفات والمجلدات أيضاً.
00:02:56يمكنني مشاركة أدلة كاملة كقرص قابل للتصفح باستخدام وضع الخلفية "drive".
00:03:02الأمر ليس مجرد إنشاء نفق، بل هو مشاركة محكمة.
00:03:04هذا هو ما يمنحه لنا zrock حقاً.
00:03:06الآن، لماذا يهم كل هذا؟
00:03:08لأن معظم أدوات الأنفاق تجبرك على تقديم تنازلات.
00:03:12ngrok مصقول، لكن الخطة المجانية فيه محدودة.
00:03:15أنفاق Cloudflare رائعة، لكنها تأتي مع إعدادات وخطوات إضافية.
00:03:19Tailscale ممتاز، لكنه قد يبدو مبالغاً فيه إذا كنت تريد مجرد مشاركة سريعة.
00:03:24لذا ينتهي بك الأمر بالاختيار بين السرعة والخصوصية والتحكم، وهذه هي المشكلة التي يحلها zrock.
00:03:29لا يوجد إعداد لجدار الحماية، رائع.
00:03:32لا توجد مشاكل في الـ NAT، حسناً هذا جيد.
00:03:35المشاركة الخاصة هي في الواقع خاصة، وهذا ما نريده هنا.
00:03:38دعم UDP لأشياء مثل خوادم الألعاب، و VOIP، وإنترنت الأشياء، ومشاركة ملفات مدمجة.
00:03:44هذا هو عمل المطورين اليومي.
00:03:46اختبار الـ Webhook، أليس كذلك؟
00:03:48كل هذه الأشياء جيدة حقاً ويمكننا استخدام zrock من أجلها.
00:03:52لذا بسرعة، دعونا نقارن بين zrock و ngrok.
00:03:54ngrok يبدو كمنتج مصقول، لأنه في الحقيقة كذلك.
00:03:58بينما zrock يبدو كأداة تمتلكها أنت بالفعل.
00:04:00هذا هو الفرق الرئيسي.
00:04:02ngrok مملوك لشركة، و zrock مفتوح المصدر.
00:04:05إنه قابل للاستضافة الذاتية.
00:04:06إذا كنت تهتم بالتحكم والخصوصية، فهذا أمر ضخم.
00:04:10ثم هناك المشاركة الخاصة.
00:04:12في ngrok، هي أقرب لكونها إضافة.
00:04:15ليست مدمجة بشكل أساسي.
00:04:16في zrock، هي جزء من الفكرة الجوهرية لكل شيء.
00:04:19البروتوكولات تهم أيضاً.
00:04:22ngrok يركز في الغالب على HTTP و TCP.
00:04:26بينما يدعم zrock كليهما مع دعم UDP أيضاً.
00:04:29لأكون منصفاً، لا يزال لدى ngrok ميزة إعادة تشغيل الطلبات وفحصها.
00:04:35بينما لا يملكها zrock.
00:04:36وقد يهم هذا الأمر في بعض الأحيان.
00:04:37zrock جيد.
00:04:38لكنه ليس مثالياً.
00:04:39الناس يحبونه لأنه يبدو بسيطاً.
00:04:41والخصوصية تأتي أولاً.
00:04:43هذا شيء عظيم.
00:04:44وإذا قمت باستضافته ذاتياً، فستحصل على تحكم كامل في كل شيء.
00:04:47ومع ذلك لا يزال يأتي مع تنازلات، مثل أي أداة مفتوحة المصدر.
00:04:50هناك منحنى تعليمي إذا تعمقت فيه، خاصة في جانب الاستضافة الذاتية.
00:04:55لا يوجد فحص طلبات مدمج مثل ngrok.
00:04:58واعتماداً على إعداداتك، قد تلاحظ القليل من التأخير (latency).
00:05:01ولكن حتى مع هذه السلبيات، فهو لا يزال الأنسب لمعظم المطورين.
00:05:05لذا، هل zrock يستحق العناء؟
00:05:06حسناً، هذا هو السؤال هنا.
00:05:08إذا كان ألمك يكمن في مشاركة شيء ما بسرعة، فنعم، إنه يستحق بالتأكيد.
00:05:12خاصة إذا لم نضطر للتخلي عن التحكم أو الخصوصية.
00:05:15zrock يحل ذلك.
00:05:16إذا كنت تستمتع بأدوات البرمجة مفتوحة المصدر والنصائح مثل هذه، فتأكد من الاشتراك في
00:05:20قناة Better Stack.
00:05:21سنراكم في فيديو آخر.