لماذا الترحيل من Postman الآن
حتى فبراير 2026، كان Postman يتيح مشاركة المجموعات للفرق ضمن خطته المجانية. منذ تحديث مارس 2026، أصبحت مساحات العمل التعاونية حكراً على المشتركين المدفوعين، بسعر أدنى يبلغ 19 دولاراً لكل مستخدم شهرياً (خطة Basic). بالنسبة لفريق من خمسة مطورين، يمثل ذلك 95 دولاراً شهرياً أو 1140 دولاراً سنوياً، لأداة قيمتها الرئيسية مشاركة المجموعات. ولفريق من عشرة أشخاص، يتجاوز الحساب 2000 دولار سنوياً.
تغطي بديلتان مفتوحتا المصدر هذه الحاجة بدون اشتراك. يخزن Bruno المجموعات مباشرةً في مستودع Git الخاص بك — كل طلب ملف نصي قابل للإصدار ومقروء بأي أداة مراجعة كود. يوفر Hoppscotch واجهة ويب تعاونية قابلة للنشر على VPS خاص بك باستخدام Docker Compose في أقل من عشرين دقيقة. كلا المشروعين يستوردان مجموعات Postman بشكل أصلي ويحافظان على متغيرات البيئة والبرامج النصية السابقة للطلب والاختبارات الآلية.
يعتمد الاختيار بين الاثنين على سير عملك: Bruno مناسب للفرق التي تعمل بـGit ولا تحتاج إلى مزامنة فورية. Hoppscotch مناسب للفرق التي تشارك بيئات اختبار نشطة وتفضل واجهة ويب.
ما تكسبه بالترحيل
- بدون اشتراك — Bruno عميل سطح مكتب مفتوح المصدر (MIT)، وHoppscotch ينتشر على أي VPS بـDocker
- مجموعات مُصدَّرة — يخزن Bruno كل طلب في ملف
.bru: تنطبق عليه أوامرgit diffوgit blameومراجعات الكود بشكل طبيعي - استيراد مباشر من Postman — يقرأ كلا الأداتين ملفات JSON لـPostman الإصدار 2.1 ويحافظان على المتغيرات وتوثيق OAuth2 والاختبارات الآلية
- لا بيانات ترسل إلى أطراف ثالثة — Hoppscotch المستضاف ذاتياً لا يتصل بأي خوادم خارجية؛ Bruno لا يزامن طلباتك مع السحابة أبداً
- موارد خفيفة — لا يحتاج Bruno لخادم؛ Hoppscotch يعمل على 1 vCPU / 1 GB RAM للاستخدام المعتاد للفريق
- مقاعد فريق غير محدودة — يخدم نشر واحد لـHoppscotch الفريق بأكمله بغض النظر عن حجمه
المتطلبات قبل البدء
بالنسبة لـBruno، يُعنى الأمر فقط بجهاز كل مطور: يُثبَّت عميل سطح المكتب على macOS وLinux وWindows بدون خادم. تعيش المجموعات في مجلد ضمن مستودع Git الحالي. لا يلزم أي حساب ولا يتصل بأي خدمة خارجية عند التشغيل.
بالنسبة لـHoppscotch المستضاف ذاتياً، تحتاج إلى VPS بحد أدنى 1 vCPU و1 GB RAM (يوصى بـ2 GB للمثيل مع قاعدة البيانات والذاكرة المؤقتة)، مع تثبيت Docker وDocker Compose، واسم نطاق يشير إلى الخادم، وشهادة TLS (Let's Encrypt عبر Certbot أو Traefik). تحتاج أيضاً إلى وصول SSH للإعداد الأولي والتحديثات.
في كلتا الحالتين، يلزم تصدير مجموعات Postman بصيغة JSON v2.1. في Postman، اذهب إلى File → Export → Collection v2.1 لكل مجموعة. تُنزَّل البيئات بشكل منفصل من تبويب Environments. احتفظ بهذه الملفات كنسخة احتياطية.
الترحيل إلى Bruno في ست خطوات
تصدير مجموعاتك من Postman
في Postman، انقر على
… بجانب كل مجموعة، ثم Export. اختر Collection v2.1 (recommended) واحفظ ملف JSON. لمتغيرات البيئة، اذهب إلى Environments، انقر … ثم Export لكل بيئة.تثبيت Bruno
حمّل الحزمة من
usebruno.com/downloadsلنظام تشغيلك. على Debian/Ubuntu:sudo dpkg -i bruno_<version>_amd64_linux.deb. على macOS عبر Homebrew:brew install --cask bruno. Bruno موقّع ولا يتطلب حساباً.إنشاء مجموعة Bruno في مستودعك
افتح Bruno، انقر
Create Collection، اختر مجلداً في مستودع Git الخاص بك (مثلاً api-tests/). ينشئ Bruno ملف bruno.json هناك ويخزن كل طلب كملف .bru — صيغة نصية قابلة للقراءة والمقارنة.استيراد مجموعة Postman
في Bruno، انقر
Import Collection ← Postman Collection v2 / v2.1، ثم حدد ملف JSON المُصدَّر. تُحوَّل الطلبات والمجلدات والبرامج النصية السابقة للطلب واختبارات pm.test(). تُحفظ المتغيرات {{variable}} بنفس الصيغة في Bruno.استيراد متغيرات البيئة
انقر على محدد البيئة في أعلى اليمين ←
Configure ← Import. حدد ملف JSON للبيئة المُصدَّر من Postman. تحقق من أن الأسرار مُعلَّمة بـSecret في Bruno لتجنب الإيداع في Git بنص واضح.إصدار المجموعة ومشاركتها
أودع مجلد
api-tests/ في مستودعك:git add api-tests/ && git commit -m 'feat: migrate Postman collections to Bruno'. كل مطور يستنسخ المستودع ويفتح المجلد في Bruno — لا تكوين حساب، لا مساحة عمل سحابية.
نشر Hoppscotch المستضاف ذاتياً مع Docker Compose
استرداد ملف Docker Compose الرسمي
استنسخ المستودع:
git clone https://github.com/hoppscotch/hoppscotch.git && cd hoppscotch. يحتوي ملف compose.yml على ثلاثة خدمات: hoppscotch (الواجهة الأمامية + API)، وdb (PostgreSQL 15)، وhoppscotch-migrate (الترحيلات عند بدء التشغيل).تكوين متغيرات البيئة
انسخ الملف المثال:
cp .env.example .env. أدخل على الأقل:DATABASE_URL=postgresql://postgres:yourpassword@db:5432/hoppscotch، وJWT_SECRET (سلسلة عشوائية بحد أدنى 32 حرفاً)، وVITE_BASE_URL=https://api.your-domain.com، وVITE_SHORTCODE_BASE_URL=https://your-domain.com. لـOAuth2 (تسجيل الدخول عبر GitHub أو Google أو GitLab)، أدخل المفاتيح المقابلة في كتلة Auth.تشغيل الخدمات
شغّل
docker compose up -d. عند بدء التشغيل الأول، تُطبّق خدمة hoppscotch-migrate ترحيلات PostgreSQL ثم تتوقف — هذا طبيعي. تحقق بـdocker compose psمن أن hoppscotch وdb في حالة running.تكوين الوكيل العكسي وTLS
أضف مضيفاً افتراضياً في nginx يوجه المنفذ 3000 إلى
localhost:3000 والمنفذ 8080 (API الخلفي) إلى localhost:8080. احصل على شهادة Let's Encrypt:certbot --nginx -d your-domain.com -d api.your-domain.com. أعد تحميل nginx:systemctl reload nginx.إنشاء أول حساب مسؤول
افتح
https://your-domain.com في متصفحك. يتلقى أول حساب يُنشأ صلاحيات المسؤول تلقائياً. اذهب إلى https://your-domain.com/admin لإدارة المستخدمين وتفعيل أو تعطيل طرق المصادقة وتحديد سياسات الفريق.استيراد مجموعات Postman في Hoppscotch
في Hoppscotch، اذهب إلى
Collections ← Import / Export ← Import from Postman. حدد ملف JSON الإصدار 2.1. تُستورد المجموعات والمجلدات والطلبات والمتغيرات وبرامج الاختبار. شارك المجموعة مع فريقك عبر قائمة Share Collection — كل عضو متصل يملك وصولاً في الوقت الفعلي.
Insomnia، ثالث عميل API يُستشهد به كثيراً، مرّ بفترة اضطراب عام 2023: أزال فريق Kong المزامنة المحلية لصالح حساب سحابي إلزامي، قبل أن يتراجع تحت ضغط المجتمع. انقسم المشروع الآن إلى فرعين: insomnium (fork المجتمع، نظام التخزين المحلي أولاً) وInsomnia الرسمي (مفتوح النواة مع سحابة اختيارية).
Bruno مقابل Hoppscotch مقابل Insomnia — أيهما تختار
مرّر الجدول أفقيًا
| المعيار | Bruno | Hoppscotch مستضاف ذاتياً | Insomnia مفتوح النواة |
|---|---|---|---|
| النموذج | عميل سطح مكتب (MIT) | تطبيق ويب مستضاف ذاتياً (MIT) | عميل سطح مكتب (مفتوح النواة، Apache 2.0) |
| تخزين المجموعات | ملفات `.bru` في Git | قاعدة بيانات PostgreSQL على VPS خاصتك | ملفات محلية أو سحابة مدفوعة |
| التعاون في الوقت الفعلي | عبر Git (سحب/دفع) | نعم، مدمج في واجهة الويب | لا على الخطة المجانية (السحابة مطلوبة) |
| ذاكرة RAM المطلوبة | أقل من 200 ميجابايت (العميل فقط) | 1 جيجابايت كحد أدنى (الخادم) | أقل من 300 ميجابايت (العميل فقط) |
| استيراد Postman v2.1 | نعم، أصلي | نعم، أصلي | نعم، أصلي |
| OAuth2 / مصادقة متقدمة | نعم | نعم، مع مزودين قابلين للتكوين | نعم |
| اختبارات آلية (برامج نصية) | نعم (JS) | نعم (JS) | نعم (JS) |
| نشر الفريق | لا خادم — مشاركة عبر Git | Docker Compose، 1 VPS | اشتراك سحابي أو استضافة ذاتية Enterprise |
| الوصول دون اتصال | كامل | جزئي (الواجهة دون اتصال، المزامنة مستحيلة) | كامل |
ترحيل الاختبارات الآلية من Postman
تستخدم برامج Postman النصية pm.test() المكتبة العامة pm. يوفر كل من Bruno وHoppscotch واجهة برمجية متوافقة: test('اسم الاختبار', () => { ... }) مع expect() للتحقق. التحويل مباشر لتحققات رمز الحالة (pm.response.to.have.status(200) تصبح expect(response.status).toBe(200)) وتحققات نص JSON (pm.response.json() تبقى كما هي). البرامج النصية السابقة للطلب التي تعدّل متغيرات البيئة (pm.environment.set(...)) مدعومة أصلاً من كلا الأداتين.
استضافة Hoppscotch على VPS من ServOrbit
يناسب تماماً استضافة Hoppscotch خادمُ VPS مع Docker مُهيَّأ مسبقاً: يعمل مكدس hoppscotch + db (PostgreSQL 15) + nginx ضمن 1 GB RAM للاستخدام المعتاد للفريق، ويمتد إلى 2 GB عند تفعيل توليد المحاكاة أو تكامل CI. يُبسّط IPv4 المخصص تكوين DNS ويضمن عدم مشاركة حركة مرور مثيل الاختبار الخاص بك.
يتيح لك VPS مخصص لأدواتك مركزة أدوات أخرى: Gitea للكود المصدري، وWoodpecker CI للتكامل المستمر، وHoppscotch لاختبار API على نفس الخادم. تقدم ServOrbit خوادم VPS موجهة للمطورين مع Docker مُهيَّأ مسبقاً لاستضافة Hoppscotch أو أي API ابتداءً من 99 درهم/شهر.