توثيق Nibleaf

تهيئة عملية نشر لبيئة الإنتاج

اضبط المصادر العامة، والأسرار المستقلة، وتخزين الكائنات، والبريد الإلكتروني، وتوجيه النطاق، والثقة بالوكيل، ووصول المشغّلين إلى Nibleaf المستضاف ذاتيًا.

  • 3 دقيقة قراءة
  • آخر تحديث 22‏/08‏/2026

انسخ .env.production.example من الإصدار الذي تنشره؛ فهو قالب الإعدادات المرجعي. ثبّت صورةً محددة، واضبط المصادر العامة التي يمكن للمتصفح الوصول إليها، وأنشئ أسرارًا مستقلة، وأبقِ الخدمات الداخلية خاصة.

ضبط المصادر العامة

APP_URL هو مصدر لوحة التحكم الذي يتعامل معه المتصفح، وأساس المصادقة في عملية النشر المعتادة. لا تضف شرطة مائلة في نهايته. أبقِ NIBLEAF_BIND=127.0.0.1 عندما يعمل وكيل عكسي على المضيف نفسه.

يتيح SITE_BASE_DOMAIN مضيفين للمشاريع مثل project.docs.example.com؛ ويتطلب DNS بحرف بدل وشهادة TLS بحرف بدل. أما CUSTOM_DOMAIN_CNAME_TARGET فهو اسم مضيف تديره أنت ويمكن لنطاقات العملاء أن تشير إليه. اترك ميزات النطاق الاختيارية فارغة إلى أن يصبح مسار DNS وTLS الخاص بها جاهزًا.

إنشاء أسرار مستقلة

أنشئ الأسرار على المضيف المستهدف:

bash
openssl rand -hex 32
openssl rand -base64 24

استخدم قيمًا عشوائية منفصلة للمصادقة، وواجهة API الداخلية، وPostgres، وتخزين الكائنات. لا تنسخ قيمًا من مثال، أو من عملية نشر تطويرية، أو من طلب دعم، أو من بيئة أخرى. ترفض نقطة دخول بيئة الإنتاج أسرار المصادقة التجريبية المعروفة.

يتطلب Git ثنائي الاتجاه مفتاح تشفير بترميز base64 حجمه 32 بايت بالضبط، وسرًا منفصلًا لواجهة API وعامل المعالجة (worker) لا يقل عن 32 محرفًا:

bash
openssl rand -base64 32
openssl rand -hex 32

انشر GIT_CREDENTIAL_ENCRYPTION_KEY وGIT_WORKER_SECRET في الخدمات التي يسردها ملف Compose الخاص بالإصدار. اقرأ حدود تدوير مفتاح Git قبل تفعيل اتصال بمستودع في بيئة الإنتاج.

تهيئة تخزين الكائنات

يستخدم الخادم STORAGE_ENDPOINT للطلبات الداخلية. ويستخدم متصفح الكاتب عناوين URL موقّعة مسبقًا بالاعتماد على STORAGE_PUBLIC_ENDPOINT، لذلك يجب أن يكون ذلك المصدر متاحًا للعامة وأن يطابق الطريقة التي تُوقّع بها الطلبات. أما STORAGE_PUBLIC_URL فهو الأساس المستخدم عندما تشير الصفحات المنشورة إلى الأصول.

بالنسبة إلى maxio المضمّن، وجّه اسم مضيف التخزين العام إلى المنفذ 9000 في maxio عبر TLS. وبالنسبة إلى R2 أو S3 أو Backblaze B2 أو أي مزوّد آخر متوافق، تأكد من اتساق نقطة النهاية، والمنطقة، وسلوك نمط المسار، وبيانات الاعتماد، والحاوية، ومصادر CORS، وعنوان URL العام. ارفع صورة حقيقية وافتحها قبل دعوة الكتّاب.

تهيئة التسجيل والبريد

تتطلب بيئة الإنتاج التحقق من البريد الإلكتروني افتراضيًا. اضبط EMAIL_FROM على مُرسِل تم التحقق منه، وهيّئ Postmark أو SMTP_URL. أرسل رسالة تحقق ورسالة إعادة تعيين كلمة المرور إلى صندوق بريد خارجي؛ فلا يستطيع فحص سلامة الحاوية إثبات وصول الرسالة.

بعد إنشاء حسابات المالكين المقصودين، اضبط DISABLE_SIGNUP=true إذا كان ينبغي إغلاق التسجيل. تظل الحسابات الحالية قادرة على تسجيل الدخول.

الحفاظ على عنوان العميل خلف الوكيل

مرّر المضيف الأصلي ومخطط HTTPS. لا تهيّئ TRUSTED_PROXY_HOPS إلا بعد التقاط سلسلة التمرير العامة الفعلية وتهيئة مدخل الشبكة لتجاهل ترويسات التمرير غير الموثوقة. تسمح القيمة المرتفعة أكثر من اللازم للعملاء بالتأثير في العنوان المستخدم لتحديد المعدل؛ أما القيمة المنخفضة أكثر من اللازم فتجمع حركة المرور تحت الوكيل.

حماية واجهات المشغّلين

لا تربط بمنفذ على المضيف في ملف Compose الخاص ببيئة الإنتاج إلا خدمة التطبيق. أبقِ Postgres وDragonfly وواجهة API وعامل المعالجة (worker) وإدارة maxio وتطبيق الإدارة الاختياري ضمن شبكة Docker أو واجهة loopback أو شبكة VPN خاصة.

اضبط WORKBENCH_USER وWORKBENCH_PASS كليهما حتى عندما لا يكون منفذ عامل المعالجة 4312 منشورًا. استخدم نفق SSH عندما يحتاج المشغّل إلى لوحة تحكم المهام.

راجع مرجع متغيّرات البيئة كاملًا، ثم نفّذ قائمة تحقق بيئة الإنتاج. وإذا كان الموقع سيكون خاصًا، فأكمل إجراء استعادة وصول القرّاء قبل إرسال الدعوات.