توثيق Nibleaf

متغيّرات بيئة الإنتاج

ارجع إلى إعدادات صورة بيئة الإنتاج والمصدر والنطاق والأسرار والتخزين والمصادقة والبريد والوكيل وعامل المعالجة ودورة الحياة التي يستخدمها Nibleaf.

  • 6 دقيقة قراءة
  • 1 لقطة شاشة
  • آخر تحديث 22‏/08‏/2026

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

الصورة والتطبيق العام

مرجع متغيّرات بيئة الإنتاج بالعربية، ويعرض جدولًا بعناوين عربية ومعرّفات لاتينية

المتغيّرمطلوبالقيمة الافتراضيةالغرض
NIBLEAF_VERSIONنعم عمليًاv0.1.1 في القالب الحاليوسم إصدار GHCR. ثبّت إصدارًا موجودًا، وتجنب الوسوم المتحركة.
APP_URLنعملا توجدلوحة التحكم التي يتعامل معها المتصفح، ومصدر المصادقة المعتاد، من دون شرطة مائلة في النهاية.
ADMIN_URLفقط عند إتاحة الإدارةhttp://localhost:4315المصدر العام لوحدة تحكم المشغّل الاختيارية.
NIBLEAF_BINDلا127.0.0.1واجهة المضيف لمنفذ التطبيق. أبقِها على loopback عندما يكون الوكيل محليًا.
APP_PORTلا4310منفذ المضيف المرتبط بحاوية التطبيق.
BETTER_AUTH_URLلاAPP_URLتجاوز صريح لأساس المصادقة.
TRUSTED_ORIGINSلاAPP_URLمصادر المصادقة مفصولة بفواصل.
CORS_ALLOWED_ORIGINSلاAPP_URLمصادر واجهة API مفصولة بفواصل.

نطاقات التوثيق المنشور

المتغيّرمطلوبالقيمة الافتراضيةالغرض
SITE_BASE_DOMAINلافارغةيفعّل النشر على <project>.<base-domain>؛ ويتطلب DNS وTLS بحرف بدل.
CUSTOM_DOMAIN_CNAME_TARGETلاSITE_BASE_DOMAINهدف CNAME يديره المشغّل ويظهر لمالكي النطاقات المخصّصة.
CUSTOM_DOMAIN_PROVIDERلاingressاستراتيجية أتمتة النطاقات المخصّصة التي يدعمها الإصدار.
CLOUDFLARE_SAAS_ZONE_IDعند استخدام Cloudflare for SaaSفارغةمعرّف المنطقة لأسماء المضيفين المخصّصة المُدارة.
CLOUDFLARE_SAAS_API_TOKENعند استخدام Cloudflare for SaaSفارغةرمز محدود النطاق لعمليات أسماء المضيفين المخصّصة.
CLOUDFLARE_SAAS_WORKER_SCRIPTلاnibleaf-custom-domain-edgeاسم سكربت عامل الحافة.
CUSTOM_DOMAIN_EDGE_SECRETلمسار الحافة المُدارفارغةسر مشترك للمصادقة من الحافة إلى المصدر.

الأسرار المطلوبة

المتغيّرمطلوبالغرض
BETTER_AUTH_SECRETنعميوقّع حالة المصادقة. أنشئه بصورة مستقلة باستخدام openssl rand -hex 32.
POSTGRES_PASSWORDنعمكلمة مرور مستخدم قاعدة بيانات Nibleaf المضمّنة.
INTERNAL_API_SECRETموصى به بشدةيصادق تلميحات التطبيق الموثوقة المرسلة إلى واجهة API والمستخدمة لتحديد المعدل بدقة.

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

المتغيّرمطلوبالقيمة الافتراضيةالغرض
STORAGE_PROVIDERلاmaxioسلوك المزوّد مثل maxio أو r2 أو وضع آخر مدعوم ومتوافق مع S3.
STORAGE_ENDPOINTللتخزين الخارجيhttp://maxio:9000نقطة النهاية من الخادم إلى التخزين.
STORAGE_PUBLIC_ENDPOINTنعملا توجدالمصدر المتاح للمتصفح والمستخدم للطلبات الموقّعة مسبقًا.
STORAGE_ACCESS_KEY_IDنعملا توجدمعرّف الوصول إلى الحاوية.
STORAGE_SECRET_ACCESS_KEYنعملا توجدسر الحاوية. أنشئه بصورة مستقلة.
STORAGE_BUCKETلاnibleafحاوية الأصول وعمليات التصدير.
STORAGE_REGIONلاautoقيمة منطقة S3.
STORAGE_FORCE_PATH_STYLEلاtrueاستخدام عناوين URL للحاوية بنمط المسار؛ يستخدم AWS S3 عادةً false.
STORAGE_PUBLIC_URLموصى بهفارغةالأساس العام للأصول، وغالبًا ما يكون عنوان URL للحاوية أو CDN.
STORAGE_CORS_ALLOWED_ORIGINSلاAPP_URLمصادر المتصفح المسموح لها بالرفع مباشرة.
STORAGE_AUTO_CORSلاtrueالسماح لـNibleaf بتهيئة CORS المدعوم للحاوية تلقائيًا.
MAXIO_SECURE_COOKIESلاtrueاشتراط HTTPS لملفات تعريف الارتباط في وحدة تحكم maxio المضمّنة.

المصادقة والبريد الإلكتروني

المتغيّرمطلوبالقيمة الافتراضيةالغرض
DISABLE_SIGNUPلاfalseإغلاق التسجيل الجديد مع إبقاء تسجيل الدخول للحسابات الحالية.
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRETلتسجيل الدخول عبر Googleفارغةبيانات اعتماد عميل OAuth.
EMAIL_FROMللتسليمnibleaf@localhostمُرسِل تم التحقق منه لدى المزوّد.
POSTMARK_API_KEYعند استخدام Postmarkفارغةرمز الخادم؛ ويُفضّل عند ضبطه.
POSTMARK_MESSAGE_STREAMلافارغةتدفق Postmark.
SMTP_URLلاستخدام SMTP كخيار احتياطيفارغةعنوان URL الكامل لاتصال SMTP. احمه بوصفه سرًا.
EMAIL_DELIVERY_REQUIREDلاtrue في الإنتاجإرجاع حالة عامل غير سليمة وإفشال مهام البريد في قائمة الانتظار عند عدم إعداد أي مزوّد.

مصادقة Google OAuth

أنشئ عميل OAuth من نوع تطبيق ويب في Google Cloud، ثم اضبط ما يلي:

  • مصدر JavaScript المسموح: قيمة APP_URL نفسها، مثل https://nibleaf.example.com.
  • عنوان إعادة التوجيه المسموح: ${APP_URL}/api/auth/callback/google.
  • GOOGLE_CLIENT_ID وGOOGLE_CLIENT_SECRET: بيانات اعتماد العميل المطابقة.

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

عناصر التحكم الاختيارية في المنتج وحركة المرور

المتغيّرمطلوبالقيمة الافتراضيةالغرض
OPENAI_API_KEYفقط للمساعدة بالذكاء الاصطناعيفارغةيفعّل إجراءات الكتابة الصريحة بالذكاء الاصطناعي.
AI_DAILY_LIMITلاالقيمة الافتراضية للتطبيقالحد اليومي لطلبات الذكاء الاصطناعي لكل مساحة عمل؛ وتعطّل القيمة 0 إنشاء المسودات.
MARKETING_GA4_IDلافارغةمعرّف قياس GA4 لصفحات التسويق العامة في النسخة. يظهر كبيانات عامة، ولا تُحمّل «إحصاءات Google» إلا بعد موافقة الزائر الصريحة؛ حدّث إشعار الخصوصية قبل تفعيله.
RATE_LIMIT_PUBLIC_PER_MINلاالقيمة الافتراضية للتطبيقعدد طلبات تقديم الموقع العام لكل عنوان في الدقيقة.
TRUSTED_PROXY_HOPSلا0عدد الوكلاء العامين الموثوقين الذين يضيفون إلى سلسلة التمرير.

إعدادات المشغّل ودورة الحياة

عوامل معالجة التصدير

المتغيّرمطلوبالقيمة الافتراضيةالغرض
EXPORT_CHROMIUM_PATHلملفات PDF خارج الصورة الرسمية/usr/bin/chromium-browserملف تنفيذي متوافق مع Chromium ومستخدم لتصيير PDF.
EXPORT_CONCURRENCYلا2مهام التصدير التي يعالجها عامل معالجة واحد؛ النطاق المقبول من 1 إلى 8.
EXPORT_MAX_ACTIVE_PER_PROJECTلا3عمليات التشغيل المتزامنة للمشروع التي تقبلها واجهة API.
EXPORT_MAX_DAILY_PER_PROJECTلا20الحد اليومي لعمليات التشغيل لكل مشروع.
EXPORT_MAX_PAGESلا5000الحد الأقصى للصفحات المنسوخة في لقطة تصدير واحدة غير قابلة للتغيير.
EXPORT_MAX_SNAPSHOT_BYTESلا52428800الحد الأقصى لحجم اللقطة المتسلسلة بالبايت.
EXPORT_MAX_ASSET_BYTESلا262144000الحد الأقصى لحجم الأصول المشار إليها والمنسوخة إلى أثر، بالبايت.
EXPORT_MANUAL_RETENTION_DAYSلا7مدة الاحتفاظ بعمليات التصدير التي تُنفّذ مرة واحدة.
EXPORT_DOWNLOAD_TTL_SECONDSلا300مدة صلاحية التنزيل الموقّع مسبقًا؛ النطاق المقبول من 30 إلى 900 ثانية.

تتضمن الصورة الرسمية Chromium. إذا كان WORKER_QUEUES قائمة سماح مفصولة بفواصل، فأدرج export؛ وتفعّل القيمة الفارغة كل طوابير المهام.

Git ثنائي الاتجاه

المتغيّرمطلوبالقيمة الافتراضيةالغرض
GIT_CREDENTIAL_ENCRYPTION_KEYلتفعيل Git ثنائي الاتجاهلا توجد32 بايت بالضبط بترميز base64؛ يشفّر بيانات اعتماد المزوّد وأسرار webhook.
GIT_WORKER_SECRETلتفعيل Git ثنائي الاتجاهلا توجد32 محرفًا على الأقل، مشتركة بين واجهة API وعامل المعالجة لعمليات رد النداء المبهمة.
GIT_CONCURRENCYلا2عمليات Git التي يعالجها عامل معالجة واحد.

أنشئ السرّين بصورة مستقلة. لا تدوّر مفتاح التشفير في مكانه: لا يمكن فك النص المشفّر الحالي بمفتاح جديد. اتبع إجراء تدوير تأليف Git. وإذا كان WORKER_QUEUES مضبوطًا، فأدرج git.

إعدادات المشغّل العامة

المتغيّرمطلوبالقيمة الافتراضيةالغرض
WORKBENCH_USER, WORKBENCH_PASSموصى بهمافارغةالمصادقة الأساسية لعمليات عامل المعالجة على المنفذ 4312.
NIBLEAF_RUN_SEEDلاfalseإدخال محتوى تجريبي أثناء الترحيل؛ أبقِه على false في بيئة الإنتاج.
SERVER_SHUTDOWN_TIMEOUT_MSلا25000مهلة تصريف واجهة API بالميلي ثانية.
NIBLEAF_SHUTDOWN_GRACEلا30sفترة السماح لإيقاف الحاوية؛ أبقِها أطول من مهلة الخادم.

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