دليل النشر

استضافة Supabase على خادم VPS

انشر على VPS Cloud →

قواعد البيانات9 دقيقة قراءة

استضافة Supabase على خادم VPS

Supabase هو البديل مفتوح المصدر لـ Firebase المبني على PostgreSQL: قاعدة بيانات، ومصادقة، وتخزين، وedge functions، وواجهة برمجية مُولّدة تلقائيًا. استضافته ذاتيًا على خادم VPS تمنحك خلفية (backend) كاملة مُستضافة ذاتيًا، دون حد أقصى للمشاريع ولا فوترة حسب الاستخدام، مع بياناتك في قاعدة Postgres الخاصة بك.

لماذا تستضيف Supabase ذاتيًا على خادم VPS

ليس Supabase صندوقًا أسود: بل هو مجموعة من الخدمات مفتوحة المصدر (PostgreSQL، وGoTrue للمصادقة، وPostgREST للواجهة البرمجية، وRealtime، وStorage، وKong كبوابة) منسّقة معًا. تفرض النسخة السحابية الفوترة لكل مشروع ولكل مستخدم نشط، وتوقف المشاريع المجانية غير النشطة مؤقتًا. باستضافتها ذاتيًا على خادم VPS، تحصل على خلفية كخدمة (backend-as-a-service) كاملة دون هذه القيود، مع وصول مباشر إلى PostgreSQL لإجراء الترحيلات والإضافات (pgvector وPostGIS) والضبط. وهذا مثالي لوكالة تستضيف عدة تطبيقات لعملاء، أو منتج SaaS ناشئ يريد التحكم في تكاليفه، أو أي مشروع يتطلب سيادة البيانات. تتولى بنفسك التحديثات والنسخ الاحتياطي، مقابل حرية كاملة.

الفوائد الملموسة لـ Supabase مُستضاف ذاتيًا

  • خلفية كاملة: قاعدة بيانات Postgres وAuth وStorage وRealtime وواجهة REST/GraphQL في حزمة واحدة.
  • وصول مباشر إلى PostgreSQL الأساسي: ترحيلات SQL، وإضافات، وسياسات RLS دون حدود.
  • لا إيقاف مؤقت ولا فوترة لكل مستخدم نشط شهريًا.
  • Studio مضمّن: واجهة إدارة عبر الويب لإدارة الجداول والمصادقة وحاويات التخزين (buckets).
  • إضافات الذكاء الاصطناعي عبر pgvector لـ RAG والبحث الدلالي، مُفعّلة بحرية.
  • مشاريع متعددة على خادم VPS واحد: عملي لوكالة أو استوديو تطوير.

المتطلبات المادية والبرمجية

يُطلق Supabase المُستضاف ذاتيًا نحو عشرة حاويات (Postgres وKong وGoTrue وPostgREST وRealtime وStorage وStudio وMeta وImgproxy...)، لذا فهو حزمة أكثر استهلاكًا للموارد من قاعدة بيانات بسيطة. احسب حدًا أدنى من معالجين افتراضيين (2 vCPU) و4 غيغابايت من RAM لبيئة اختبار، والأفضل 4 vCPU مع 8 غيغابايت من RAM و80 غيغابايت من SSD للإنتاج. على الصعيد البرمجي: Ubuntu 22.04/24.04 LTS، وDocker وDocker Compose v2، واسم نطاق يشير إلى خادم VPS (مثل: api.mysaas.com) لكشف البوابة عبر HTTPS، ووكيل عكسي مثل Caddy أو Traefik أو Nginx لإدارة SSL. خطّط أيضًا لتوليد أسرار قوية (JWT_SECRET، ومفتاحا anon وservice_role).

نشر Supabase مُستضاف ذاتيًا باستخدام Docker

01

استنساخ المستودع الرسمي وتهيئة البيئة

احصل على مجلد docker من مستودع Supabase، وانسخ .env.example إلى .env، ثم ولّد أسرارًا فريدة: POSTGRES_PASSWORD وJWT_SECRET، والمفتاحين ANON_KEY / SERVICE_ROLE_KEY المشتقين من JWT. لا تنشر أبدًا بالقيم النموذجية.

02

تهيئة عناوين URL وكلمة مرور Studio

في .env، عيّن SITE_URL وAPI_EXTERNAL_URL وSUPABASE_PUBLIC_URL بنطاقك، واحمِ Supabase Studio بـ DASHBOARD_USERNAME وDASHBOARD_PASSWORD: فإن Studio يمنح وصولاً إداريًا كاملاً إلى مشروعك.

03

إطلاق الحزمة

ابدأ بـ docker compose up -d، ثم تابع بدء تشغيل الخدمات عبر docker compose ps. تستغرق التهيئة الأولى لـ Postgres وتطبيق الترحيلات الداخلية دقيقة إلى دقيقتين؛ تحقق من عدم وجود أخطاء في docker compose logs.

04

وضع وكيل عكسي مع SSL

ضع Caddy أو Traefik أمام Kong (المنفذ 8000 للبوابة) لكشف واجهتك البرمجية عبر HTTPS. يحصل Caddy على شهادات Let's Encrypt ويجدّدها تلقائيًا: يكفي كتلة بسيطة mysaas.com { reverse_proxy localhost:8000 }. لا تكشف Postgres (5432) للعموم أبدًا.

05

تفعيل سياسات RLS

سجّل الدخول إلى Studio، وأنشئ جداولك، ثم فعّل Row Level Security على كل منها وحدّد سياساتك. بدون RLS، يكشف مفتاح anon جميع بياناتك: وهذه هي النقطة الأمنية الأولى في Supabase مُستضاف ذاتيًا.

06

النسخ الاحتياطي لـ Postgres والتخزين

جدوِل pg_dump يوميًا لقاعدة البيانات وأرشف وحدة التخزين Storage (حاويات الملفات) إلى تخزين خارجي. اختبر الاستعادة الكاملة على خادم VPS للتجهيز (staging) قبل الاعتماد عليها في الإنتاج.

Supabase مقابل Appwrite: أي BaaS مُستضاف ذاتيًا تختار؟

المعيارSupabaseAppwrite
قاعدة البياناتPostgreSQL أصلي، SQL كاملMariaDB داخليًا، واجهة برمجية للمستندات/المجموعات
نموذج البياناتعلائقي، RLS في Postgresمستندات ومجموعات، صلاحيات حسب القواعد
واجهة برمجية مُولّدة تلقائيًاREST (PostgREST) + GraphQLREST وGraphQL وحزم SDK متعددة
المصادقةGoTrue وOAuth وروابط سحرية (magic links)مصادقة مدمجة، وOAuth، وفرق، وJWT
بصمة المواردأثقل (~10 حاويات)معتدلة، حزمة أكثر إحكامًا
البحث الشعاعي / الذكاء الاصطناعيأصلي عبر pgvectorغير أصلي، يجب توفيره خارجيًا
مثالي لـالتطبيقات العلائقية، وRAG، وSQL المتقدمتطبيقات الجوال/الويب الموجّهة للمستندات
منحنى التعلّممريح إذا كنت تعرف SQLسريع لمطوّري الواجهة الأمامية/الجوال

حدّث Supabase بحذر: بما أن الصور موسومة بالإصدارات في ملف docker-compose.yml، خذ دائمًا pg_dump كاملاً ولقطة للخادم VPS قبل تنفيذ docker compose pull && docker compose up -d. تمسّ بعض ترقيات الإصدارات المخطط الداخلي للخدمات. للإنتاج، اعزل Postgres على وحدة تخزين مخصصة عالية IOPS وفعّل pgvector منذ البداية إذا كنت تخطط للبحث الدلالي: فإضافته لاحقًا تفرض ترحيلاً للمخطط.

استضِف خلفية Supabase الخاصة بك ذاتيًا

يستضيف خادم ServOrbit Cloud VPS مع قالب Docker المُهيّأ مسبقًا وذاكرة RAM سخية حزمة Supabase بالكامل: Postgres وAuth وStorage وAPI، عبر HTTPS.

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

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