دليل النشر

‎Supabase‎ مقابل ‎Appwrite‎ : مقارنة ‎BaaS‎ مفتوح المصدر

انشر على VPS Cloud ←

مقارنة

‎Supabase‎ مقابل ‎Appwrite‎ : مقارنة ‎BaaS‎ مفتوح المصدر

مقارنات12 دقيقةً للقراءةعدد الخطوات: 8

‎Supabase‎ و‎Appwrite‎ هما أشهر منصتَي ‎BaaS‎ مفتوحتَي المصدر لاستبدال ‎Firebase‎ دون الاعتماد على سحابة احتكارية. كلتاهما تُنشَران بـ‎Docker‎ على خادم ‎VPS‎، لكنهما تختلفان في البنية التقنية ومتطلبات الموارد وحالات الاستخدام المثلى.

المحتويات· ‏ما هو ‎BaaS‎ ولماذا الاستضافة الذاتية؟1/14
  1. 01‏ما هو ‎BaaS‎ ولماذا الاستضافة الذاتية؟
  2. 02‏‎Supabase‎ مقابل ‎Appwrite‎ — مقارنة بـ 12 معياراً
  3. 03‏نشر ‎Supabase‎ على خادم ‎VPS‎
  4. 04‏نشر ‎Appwrite‎ على خادم ‎VPS‎
  5. 05‏المصادقة — مقارنة مزودي الهوية وضبط ‎OAuth‎
  6. 06‏الدوال البلا خادم — ‎Deno‎ مقابل 30+ بيئة تشغيل
  7. 07الوقت الفعلي وتخزين الملفات
  8. 08‏‎Appwrite‎: خطأ 503 عند أول تشغيل — انتظر اكتمال الترحيلات
  9. 09‏‎Supabase‎: خطأ 502 من البوابة عند الإقلاع — سلوك طبيعي
  10. 10‏‎Appwrite 2.0‎: الترحيل من 1.x — الإجراء والتغييرات الجذرية
  11. 11‏‎Supabase 0.8.0‎: من ‎Kong‎ إلى ‎Envoy‎ — التأثير والترحيل
  12. 12‏دليل الاختيار — ‎Supabase‎ أم ‎Appwrite‎ لمشروعك؟
  13. 13الأخطاء الشائعة وحلولها
  14. 14‏الخلاصة : منصتان ممتازتان وفلسفتان مختلفتان

‏ما هو ‎BaaS‎ ولماذا الاستضافة الذاتية؟

‏‎Backend-as-a-Service (BaaS)‎ يجمع في منتج واحد كل ما تحتاجه التطبيقات الحديثة: قاعدة بيانات، ومصادقة، وتخزين ملفات، ودوال بلا خادم، وتواصل فوري. ‎Supabase‎ و‎Appwrite‎ هما الحلّان الأكثر نضجاً في هذا المجال. الاستضافة الذاتية تمنحك سيطرة تامة على البيانات وتُلغي الرسوم المتغيرة وتُتيح الامتثال لمتطلبات إقامة البيانات.

‏‎Supabase‎ مقابل ‎Appwrite‎ — مقارنة بـ 12 معياراً

مرّر الجدول أفقيًا

المعيار‎Supabase‎‎Appwrite‎
قاعدة البيانات‎PostgreSQL‎‎MariaDB‎ (≤ 1.8)، ‎PostgreSQL‎ (2.0+)
الذاكرة الدنيا4 ‏جيجابايت2 ‏جيجابايت
الذاكرة الموصى بها للإنتاج8 ‏جيجابايت4 ‏جيجابايت
عدد الحاويات~13~19
المنفذ الرئيسي‏8000 (‎Envoy‎ منذ 0.8.0، ‎Kong‎ قبله)‏80 / 443 (‎Traefik‎)
منفذ الإدارة‏3000 (‎Studio‎)‏80 / لوحة تحكم (‎Traefik‎)
الخدمات المدمجة‏‎Auth, PostgREST, Realtime, Storage, Edge Functions, Studio‎‏‎Auth, Databases, Storage, Functions, Messaging, Realtime‎
‏مزودو ‎Auth‎‏15+ مزود‏30+ مزود
بيئة تشغيل الدوال‎Deno‎ ‏فقط‏30+ بيئة تشغيل (‎Node, Python, PHP, Go, Dart, Ruby, Bun…‎)
‏حزم ‎SDK‎ للعميل‏‎JS, Python, Swift, Kotlin, Flutter, C#‎‏‎JS, iOS, Android, Flutter, React Native, Web‎
الوقت الفعلي‏‎WebSocket‎ عبر خدمة ‎Realtime‎‏‎WebSocket‎ عبر ‎Appwrite Realtime‎
الرخصة‎Apache 2.0‎‎BSD 3-Clause‎

‏نشر ‎Supabase‎ على خادم ‎VPS‎

  1. ‏الخطوة 1 — متطلبات الخادم

    ‏جهّز خادم ‎VPS‎ بما لا يقل عن 4 ‏جيجابايت ذاكرة عشوائية (8 ‏جيجابايت في الإنتاج)، مع ‎Docker‎ و‎Docker Compose‎. افتح المنفذ 8000 (‏بوابة ‎API‎) والمنفذ 3000 (‎Studio‎).

  2. ‏الخطوة 2 — استنساخ المستودع وضبط الإعدادات

    ‏استنسخ المستودع بـ git clone --depth 1 https://github.com/supabase/supabase، ادخل إلى supabase/docker وانسخ .env.example إلى .env. عيّن POSTGRES_PASSWORD وJWT_SECRET وANON_KEY وSERVICE_ROLE_KEY.

  3. ‏الخطوة 3 — تشغيل المنظومة

    ‏نفّذ docker compose up -d. يستغرق الإقلاع الكامل 60 إلى 120 ثانية. مع ‎Supabase 0.8.0+‎، يخدم ‎Envoy‎ (وليس ‎Kong‎) المنفذ 8000. انتظر حتى تكون جميع الحاويات في حالة healthy.

  4. ‏الخطوة 4 — التحقق

    ‏ادخل إلى ‎Studio‎ على http://IP_VPS:3000. اختبر استدعاء ‎API‎ بسيطاً بـ curl http://IP_VPS:8000/rest/v1/ -H "apikey: ANON_KEY_YOUR". استجابة ‎JSON‎ فارغة {} تؤكد أن ‎PostgREST‎ يستجيب.

‏نشر ‎Appwrite‎ على خادم ‎VPS‎

  1. ‏الخطوة 1 — متطلبات الخادم

    ‏‎Appwrite‎ أخفّ عند الإقلاع: 2 ‏جيجابايت تكفي للاختبار، لكن 4 ‏جيجابايت موصى بها للإنتاج. حاوياتها الـ 19 تتضمن ‎Traefik‎ كوسيط عكسي. افتح المنفذين 80 و443.

  2. ‏الخطوة 2 — تشغيل المُثبِّت التفاعلي

    ‏نفّذ docker run -it --rm --volume /var/run/docker.sock:/var/run/docker.sock --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw --entrypoint="install" appwrite/appwrite:latest. ‏سيطلب منك النطاق والمنافذ ويولّد ملف docker-compose.yml.

  3. ‏الخطوة 3 — انتظار ترحيلات قاعدة البيانات

    ‏عند أول إقلاع، تُنفّذ ‎Appwrite‎ ترحيلات قاعدة البيانات. تستغرق 2 إلى 5 دقائق. لا تُعد تشغيل الحاويات. تابع بـ docker compose logs -f appwrite.

  4. ‏الخطوة 4 — إنشاء حساب المسؤول

    ‏ادخل إلى http://نطاقك/console. أنشئ حساب المسؤول الأول، ثم أول مشروع.

‏المصادقة — مقارنة مزودي الهوية وضبط ‎OAuth‎

‏تدعم كلتا المنصتَين المصادقة بالبريد الإلكتروني/كلمة المرور ورقم الهاتف. تدعم ‎Appwrite‎ أكثر من 30 مزود ‎OAuth2‎ مقابل 15+ لـ‎Supabase‎.

‏ملاحظة مهمة لـ‎Appwrite 2.0‎: تُفيد المشكلة رقم #13547 بأن إعادة تعيين كلمة المرور والدعوات عبر البريد الإلكتروني معطوبة في ‎Appwrite 2.0‎ المستضافة ذاتياً. اختبر هذه المسارات في بيئة اختبار قبل ترحيل إنتاجك.

‏الدوال البلا خادم — ‎Deno‎ مقابل 30+ بيئة تشغيل

‏تعمل دوال ‎Supabase Edge Functions‎ حصرياً على ‎Deno‎. تدعم دوال ‎Appwrite‎ أكثر من 30 بيئة تشغيل: ‎Node.js‎ و‎Python‎ و‎PHP‎ و‎Ruby‎ و‎Go‎ و‎Dart‎ والمزيد. هذه المرونة ميزة كبيرة للفرق المتعددة اللغات.

‏ملاحظة ‎Appwrite 2.0‎: تم حذف المتغيرَين _APP_LOGGING_PROVIDER و_APP_LOGGING_CONFIG_REALTIME في الإصدار 2.1.0. احذفهما من .env قبل الترقية.

الوقت الفعلي وتخزين الملفات

‏الوقت الفعلي. تستخدم كلتا المنصتَين ‎WebSockets‎. تكشف ‎Supabase‎ عن تغييرات ‎PostgreSQL‎ في الوقت الفعلي عبر خدمة ‎Realtime‎ (‏استنساخ منطقي). يغطي ‎Appwrite Realtime‎ أحداث المستندات والملفات والفرق.

‏التخزين. تستخدم ‎Supabase Storage‎ واجهة برمجية متوافقة مع ‎S3‎ مع سياسات وصول ‎RLS‎ من ‎PostgreSQL‎. توفر ‎Appwrite Storage‎ نظام أذونات بالفريق/المستخدم أبسط في الإعداد.

‏‎Appwrite‎: خطأ 503 عند أول تشغيل — انتظر اكتمال الترحيلات

‏إذا أظهرت لوحة تحكم ‎Appwrite‎ خطأ 503، لا تُعد تشغيل الحاويات. تنفّذ ‎Appwrite‎ ترحيلات قاعدة بيانات تلقائياً عند أول إقلاع، وتستغرق العملية من 2 إلى 5 دقائق. تابع التقدم بـ docker compose logs -f appwrite وانتظر رسالة Migrations completed.

‏‎Supabase‎: خطأ 502 من البوابة عند الإقلاع — سلوك طبيعي

‏قد تُعيد بوابة ‎API‎ (‎Kong‎ حتى 0.7.x، ‎Envoy‎ منذ 0.8.0) أخطاء 502 خلال الـ 30-60 ثانية الأولى بعد docker compose up -d. هذا سلوك طبيعي ومؤقت. انتظر حتى يُظهر docker compose ps جميع الحاويات في حالة healthy.

‏‎Appwrite 2.0‎: الترحيل من 1.x — الإجراء والتغييرات الجذرية

‏صدر ‎Appwrite 2.0‎ في 7 سبتمبر 2026 (‏المصدر: https://appwrite.io/changelog/entry/2026-09-07). يُعدّ تحديثاً رئيسياً يُرحّل محرك الاستمرارية من ‎MariaDB‎ إلى ‎PostgreSQL‎ بصفة نهائية وغير قابلة للعكس — لا يمكن الرجوع إلى 1.x بعد الترحيل.

مسار الترحيل الإلزامي. يجب الترقية إلى 1.9.6 أولاً قبل الانتقال إلى 2.0. تخطي هذه الخطوة الوسيطة يجعل الترحيل مستحيلاً. الخطوات الموصى بها:
1. احتفظ بنسخة احتياطية كاملة من أحجام ‎Docker‎: docker compose down ثم انسخ مجلد بيانات ‎Appwrite‎.
2. رقّ إلى 1.9.6 أولاً: عدّل الصورة في docker-compose.yml إلى appwrite/appwrite:1.9.6 ثم نفّذ docker compose pull && docker compose up -d.
3. انتظر اكتمال ترحيلات 1.9.6 (docker compose logs -f appwrite | grep -i migrat).
4. رقّ إلى 2.0: غيّر الصورة إلى appwrite/appwrite:2.0 ثم أعد تشغيل docker compose pull && docker compose up -d.
5. تُنفَّذ ترحيلات ‎PostgreSQL‎ تلقائياً عند أول إقلاع لـ2.0 — لا تُوقف الحاويات أثناء هذه العملية.

التغييرات الجذرية. تُفيد المشكلة #13547 بأن إعادة تعيين كلمة المرور والدعوات معطوبة في الإصدار 2.0 المستضاف ذاتياً. اختبر هذه المسارات في بيئة اختبار قبل الترحيل. المتغيران _APP_LOGGING_PROVIDER و_APP_LOGGING_CONFIG_REALTIME محذوفان في 2.1.0 — احذفهما من .env الآن. الترحيل غير قابل للعكس.

‏‎Supabase 0.8.0‎: من ‎Kong‎ إلى ‎Envoy‎ — التأثير والترحيل

‏صدر ‎Supabase docker-compose 0.8.0‎ في 11 أغسطس 2026 (‏المصدر: https://github.com/supabase/supabase/blob/master/docker/CHANGELOG.md)، ويستبدل ‎Kong‎ بـ‎Envoy‎ كبوابة ‎API‎. هذا التغيير شفاف لمعظم عمليات النشر، لكنه يُزيل مستمع ‎TLS‎ على المنفذ 8443.

ما الذي يتغير. إذا كان الوسيط العكسي أو سكربتات التحقق من الصحة تُنفّذ طلبات ‎HTTPS‎ مباشرة إلى https://ip:8443، فستفشل هذه الطلبات صامتةً بعد الترقية. يجب إسناد إنهاء ‎TLS‎ حصراً إلى الوسيط العكسي الأمامي.

خطوات الترحيل. ابحث عن أي مرجع للمنفذ 8443 في سكربتات النشر وفحوص الصحة وقواعد جدار الحماية. استبدلها باستدعاءات على المنفذ 8000 عبر ‎HTTP‎ من الشبكة الداخلية. بعد docker compose pull && docker compose up -d، تحقق من غياب خدمة kong وحضور بوابة ‎Envoy‎ في حالة healthy.

‏دليل الاختيار — ‎Supabase‎ أم ‎Appwrite‎ لمشروعك؟

‏اختر ‎Supabase‎ إذا: تطبيقك موجّه للويب أولاً، فريقك يُتقن ‎PostgreSQL‎، أو تحتاج واجهة ‎REST API‎ تتولد تلقائياً من مخطط قاعدة البيانات.

اختر ‎Appwrite‎ إذا: تبني تطبيقاً محمولاً عبر منصات متعددة، أو فريقك يعمل بلغات متعددة ويريد اختيار بيئة تشغيل الدوال.

‏في 2026، المنصتان في تطور متسارع. ‎Appwrite 2.0‎ تتبنى ‎PostgreSQL‎ بصفة نهائية — مما يُقلّص الميزة التاريخية لـ‎Supabase‎ على هذه النقطة — بينما تُحدّث ‎Supabase‎ بوابتها بـ‎Envoy‎.

الأخطاء الشائعة وحلولها

  • ‏‎Supabase‎ — 502 ‎Bad Gateway‎: انتظر 30-60 ثانية. إذا استمر: docker compose restart supabase-rest-proxy ‏(0.8.0+) أو docker compose restart kong ‏(إصدارات أقدم).
  • ‏‎Supabase‎ — ‎Realtime could not connect to the database‎: docker compose restart realtime.
  • ‏‎Supabase‎ — ‎JWT‎ غير صالح: تحقق أن ANON_KEY وSERVICE_ROLE_KEY موقّعان بنفس JWT_SECRET في .env.
  • ‏‎Supabase 0.8.0‎ — المنفذ 8443 غير متاح: مستمع ‎Kong TLS‎ حُذف مع ‎Envoy‎. احذف الاستدعاءات المباشرة للمنفذ 8443 وأسند ‎TLS‎ إلى الوسيط العكسي الأمامي.
  • ‏‎Appwrite‎ — 503 عند الإقلاع: الترحيلات جارية (2-5 دقائق). لا تُعد تشغيل الحاويات.
  • ‏‎Appwrite‎ — docker compose down -v: خطر — يحذف جميع البيانات. لا تشغّله في الإنتاج.
  • ‏‎Appwrite‎ — timeout الدوال: ‎cold start‎ لبيئة غير مُستخدمة قد يتجاوز الحد الافتراضي. ارفع الحد في إعدادات المشروع.
  • ‏‎Appwrite 2.0‎ — ترحيل محظور: يجب المرور بـ1.9.6 قبل 2.0. تخطي هذه الخطوة يجعل الترحيل مستحيلاً. استعد نسختك الاحتياطية وابدأ من جديد.
  • ‏‎Appwrite 2.0‎ — إعادة تعيين كلمة المرور/الدعوات معطوبة: المشكلة #13547 مؤكدة في الاستضافة الذاتية. اختبر هذه المسارات قبل الإنتاج.
  • ‏‎Appwrite 2.1.0‎ — متغيرات محذوفة: احذف _APP_LOGGING_PROVIDER و_APP_LOGGING_CONFIG_REALTIME من .env قبل الترقية.

‏الخلاصة : منصتان ممتازتان وفلسفتان مختلفتان

‏تُعدّ ‎Supabase‎ و‎Appwrite‎ كلتاهما خيارات قوية لاستضافة ‎BaaS‎ مفتوح المصدر على خادم ‎VPS‎. تتألق ‎Supabase‎ بعمقها في ‎PostgreSQL‎ وواجهة ‎API‎ التلقائية ولوحة ‎Studio‎ المتطورة. تتميز ‎Appwrite‎ بخفة وزنها النسبية وتنوع بيئات تشغيل الدوال وجودة حزم تطوير التطبيقات المحمولة.

‏في سبتمبر 2026، كلتا المنصتَين تمران بتحديثات هيكلية: ‎Appwrite 2.0‎ تتبنى ‎PostgreSQL‎ بصفة نهائية، و‎Supabase 0.8.0‎ تتحول من ‎Kong‎ إلى ‎Envoy‎. خطّط لعمليات الترحيل بنسخ احتياطية كاملة وبيئات اختبار والتحقق من المسارات الحرجة — لا سيما مصادقة البريد الإلكتروني لـ‎Appwrite 2.0‎. ‏تبدأ الخطط من 99 درهم/شهر على ‏ServOrbit.

استضف منصة ‎BaaS‎ الخاصة بك على ‎VPS‎ تتحكم فيه

سواء اخترت ‎Supabase‎ أو ‎Appwrite‎، كلتا المنصتَين تستحقان خادم ‎VPS‎ سريعاً ومستقراً مع نسخ احتياطية منتظمة. تبدأ خطط ‎VPS‎ السحابية لدينا من 4 جيجابايت ذاكرة عشوائية مع لقطات يومية مدمجة.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة