تخطَّ إلى المحتوى
نسخة تجريبية

الاتصال

حالما تصل النسخة إلى حالة تعمل، تجد في لوحة الاتصال كل ما تحتاجه: المضيف والمنفذ واسم قاعدة البيانات والمستخدم وكلمة المرور، إضافة إلى رابط اتصال جاهز للنسخ.

نسخ عامة ونسخ خاصة

تختار نوع الوصول عند إنشاء النسخة:

  • عامة — يمكن الوصول إلى النسخة عبر الإنترنت على عنوان ومنفذ خاصّين بها. اختر كيف يُوصَل إليها: عنوان مخصّص — عنوان عائم خاص بها على منفذ المحرّك الأصلي — أو عنوان مشترك يستخدم عنوان مساحة العمل الداخل مع منفذ لكل مثيل. العنوان المخصّص خيار في الخطط المدفوعة، أما الخطة المجانية فتستخدم عنوانًا مشتركًا. وفي الحالتين تُنهي البوابة الاتصال الوارد وتفتح اتصالاً جديداً داخل شبكتك الخاصة، فلا يُكشف معها أي شيء آخر على المنصّة.
  • خاصة — لا عنوان عام ولا منفذ عام. لا يصل إليها إلا ما يعمل على شبكة مساحة العمل نفسها.

الأمثلة أدناه تكتب المضيف باسم توضيحي لسهولة القراءة. أما العنوان والمنفذ اللذان تستجيب عليهما نسختك فعليًا فهما الظاهران في لوحة الاتصال الخاصة بها — انسخهما من هناك.

النسخة العامة يمكن الوصول إليها من حاسوبك ومن CI ومن تطبيقك دون إعداد VPN أو نفق.

TLS

تعمل معظم المحرّكات مع تفعيل TLS وتثبيت شهادة: يحمل PostgreSQL وMySQL sslmode=require وssl-mode=REQUIRED، ويستخدم Valkey مخطّط rediss://، ويستخدم RabbitMQ مخطّط amqps://، ويوفّر FerretDB وQdrant نقاط وصول عبر TLS فقط.

الشهادة حالياً موقّعة ذاتياً — وإصدار شهادة من المنصّة لكل اسم مضيف مدرج في خارطة الطريق. وإلى ذلك الحين لا تُعطّل التحقّق من الشهادة لتجاوزها (tlsAllowInvalidCertificates أو curl -k أو --insecure): فالاتصال غير المتحقَّق منه مشفّر ضد من يتنصّت فقط، لا ضد من يستطيع الوقوف بينك وبين الخادم وتقديم شهادته الخاصة. ثبّت شهادة الخادم بدلاً من ذلك. اجلبها مرة واحدة من شبكة تثق بها، واحتفظ بالملف مع إعدادات تطبيقك:

bash
openssl s_client -connect docs-c3d4.db.sahabti.app:40018 -servername docs-c3d4.db.sahabti.app </dev/null 2>/dev/null | openssl x509 -out docs-c3d4.pem
openssl x509 -in docs-c3d4.pem -noout -fingerprint -sha256   # دوّن البصمة؛ لا ينبغي أن تتغيّر دون سابق إنذار

الشهادة الموقّعة ذاتياً المثبَّتة يُتحقَّق منها تماماً كما يُتحقَّق من شهادة صادرة عن سلطة شهادات — فالعميل لا يقبل سوى تلك الشهادة بعينها. ومثالا FerretDB وQdrant أدناه يمرّران الملف المثبَّت.

أما MariaDB وMemcached فهما الاستثناء: يعمل MariaDB دون TLS، ويعمل Memcached دون TLS ودون مصادقة. أنشئهما كخوادم خاصة وصِل إليهما من أحمال على شبكة مساحة العمل نفسها — فعزل الشبكة هو ما يحميهما، لا شيء في المحرّك ذاته. فخادم MariaDB عام يرسل بيانات الاعتماد والبيانات نصاً صريحاً، وخادم Memcached عام مفتوح لكل من يعثر على المنفذ.

لكل محرّك

انسخ القيم الدقيقة من لوحة الاتصال؛ والأوامر أدناه تبيّن الشكل العام فقط.

PostgreSQL

bash
psql "host=orders-c3d4.db.sahabti.app port=40012 dbname=orders user=orders sslmode=require"

MySQL

bash
mysql -h orders-c3d4.db.sahabti.app -P 40013 -u orders -p --ssl-mode=REQUIRED orders

MariaDB — دون TLS؛ خوادم خاصة فقط، يُوصَل إليها باسمها الداخلي من داخل شبكة مساحة العمل.

bash
mariadb -h orders.acme.internal -P 3306 -u orders -p orders

FerretDB — متوافق مع بروتوكول MongoDB، مع تفعيل TLS. يثبّت tlsCAFile الشهادة التي جلبتها أعلاه.

bash
mongosh "mongodb://app:[email protected]:40018/?tls=true&tlsCAFile=docs-c3d4.pem"

Qdrant — REST/gRPC عبر TLS. يثبّت --cacert الشهادة، ويبقى التحقّق مفعّلاً.

bash
curl --cacert search-c3d4.pem https://search-c3d4.db.sahabti.app:40019/collections

Valkey

bash
valkey-cli -h cache-c3d4.db.sahabti.app -p 40015 -a "$PASSWORD" --tls

Memcached — دون مصادقة ودون TLS؛ خوادم خاصة فقط، يُوصَل إليها باسمها الداخلي من داخل شبكة مساحة العمل.

bash
nc cache.acme.internal 11211

RabbitMQ — مع تفعيل TLS؛ وبروتوكول AMQP غير المشفّر معطّل.

text
amqps://app:[email protected]:40017

بيانات الاعتماد

في محرّكات SQL يمكنك تحديد اسم قاعدة البيانات والمستخدم وكلمة المرور عند الإنشاء؛ واترك كلمة المرور فارغة ليولّدها النظام. وتظهر كلمات المرور في لوحة الاتصال، فكل من يصل إلى مساحة العمل يمكنه قراءتها — ولهذا توجد الأدوار.

أما تدوير بيانات الاعتماد الأساسية من لوحة التحكّم فغير متاح بعد. غيّرها داخل المحرّك نفسه (ALTER USER، SET PASSWORD) واحتفظ بنسختك؛ فاللوحة تظل تعرض القيمة التي جُهّزت بها النسخة.

ومع PostgreSQL وMySQL يمكنك تجنّب المشكلة أصلاً: امنح كل تطبيق وكل زميل حساباً خاصاً به من تبويب مستخدمو قاعدة البيانات في صفحة النسخة، واحذفه عند الانتهاء بدل تدوير كلمة مرور واحدة مشتركة. انظر أدوات قواعد البيانات.

النسخ الاحتياطي

يمكن أخذ نسخة احتياطية من مثيلات PostgreSQL واستعادتها من لوحة التحكّم — راجع النسخ الاحتياطي. أما بقية المحرّكات فما زالت تملك نقطة وصولها العامة، فتعمل أدواتها الخاصة معها في هذه الأثناء:

bash
pg_dump "host=orders-c3d4.db.sahabti.app port=40012 dbname=orders user=orders sslmode=require" > orders.sql

وحذف النسخة نهائي، والاستعادة تقرأ النسخة المصدر، فخذ نسخة احتياطية قبل ذلك.

الخطوات التالية