يتم الإعداد بالكامل عبر متغيرات البيئة في ملف .env في جذر دليل النشر. يقرأ Docker Compose هذا الملف تلقائياً — لا حاجة إلى خيار --env-file.

المتغيرات المُعلَّمة بـ مطلوب يجب ضبطها قبل تشغيل الحاويات. بقية المتغيرات لها قيم افتراضية وهي اختيارية.


المشروع

تُعرِّف هذه المتغيرات هوية نسخة rtCloud الخاصة بك ونقطة وصولها.

المتغيرالافتراضيمطلوبالوصف
PROJECT_IDنعممعرّف فريد لهذا النشر. بدون مسافات أو أحرف خاصة. يُستخدم كبادئة للتسمية الداخلية.
PROJECT_URLنعماسم النطاق أو عنوان IP الذي يصل المستخدمون عبره إلى التطبيق (مثل rtcloud.example.com أو 192.168.1.100).
PROJECT_TYPErtsurveyلانوع المنصة المراد تفعيله. الخيارات: rtwork، rtsurvey، rthome.
PROJECT_PORT80لاالمنفذ الذي يستمع عليه التطبيق داخل الحاوية. لا تغيّره إلا إن كنت تعرف ما تفعله.
HTTP_PROTOCOLhttpsلاالبروتوكول المستخدم لبناء عناوين URL الداخلية. اضبطه على http إن لم تكن تستخدم SSL.

قاعدة البيانات

بيانات اعتماد اتصال MySQL. تُدار قاعدة البيانات تلقائياً بواسطة حاوية MySQL — تحتاج فقط إلى ضبط كلمات مرور قوية.

المتغيرالافتراضيمطلوبالوصف
MYSQL_DATABASEsmartsurveyلااسم قاعدة بيانات التطبيق.
MYSQL_USERsmartsurveyلامستخدم MySQL للتطبيق.
MYSQL_PASSWORDنعمكلمة مرور MYSQL_USER. استخدم قيمة قوية وفريدة.
MYSQL_ROOT_PASSWORDنعمكلمة مرور جذر MySQL. مطلوبة لتهيئة قاعدة البيانات وعمليات الإدارة.
MYSQL_HOSTmysqlلااسم مضيف MySQL. استخدم الافتراضي ما لم تتصل بقاعدة بيانات خارجية.
MYSQL_PORT3306لامنفذ MySQL.

حساب المسؤول

يُنشأ حساب المسؤول تلقائياً عند التشغيل الأول لقاعدة بيانات جديدة.

المتغيرالافتراضيمطلوبالوصف
ADMIN_PASSWORDadminنعمكلمة مرور المستخدم المدمج admin. اضبطها قبل التشغيل الأول. لا تأثير لها إذا كانت قاعدة البيانات موجودة مسبقاً.

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


المنافذ

تحكم في منافذ المضيف التي يرتبط بها التطبيق.

المتغيرالافتراضيالوصف
APP_PORT8080منفذ المضيف لواجهة الويب الرئيسية. غيّره إذا كان المنفذ 8080 مستخدَماً مسبقاً على خادمك.
SHINY_PORT3838منفذ المضيف لخادم Shiny التحليلي.

وقت التشغيل

المتغيرالافتراضيالوصف
RUN_ENVprodبيئة وقت التشغيل. استخدم prod لنشر الإنتاج، وdev للتطوير المحلي.
RUN_MODEadminدور الحاوية. admin يشغّل الحزمة الكاملة (ويب + طابور + cron). worker يشغّل المعالجة الخلفية فقط (للتوسع الأفقي).
TZAsia/Ho_Chi_Minhالمنطقة الزمنية للخادم. تؤثر على طوابع وقت السجلات وجداول cron وعرض التاريخ. استخدم اسم قاعدة بيانات TZ (مثل UTC، America/New_York، Europe/London).
LOG_LEVELinfoمستوى تفصيل سجل التطبيق. الخيارات: debug، info، warning، error.
COMPOSE_PROJECT_NAMErtcloudالبادئة المطبَّقة على جميع أسماء حاويات Docker والمجلدات. غيّرها عند تشغيل نسخ متعددة من rtCloud على نفس المضيف.
RESTART_POLICYunless-stoppedسلوك إعادة تشغيل حاوية Docker. الخيارات: no، always، on-failure، unless-stopped.
RTCLOUD_IMAGErtawebteam/rta-smartsurvey:survey-dockerizeصورة Docker المستخدمة. غيّر الوسم لتثبيت إصدار محدد.
REQUIRE_LICENSEfalseتفعيل التحقق من مفتاح الترخيص عند التشغيل. تواصل مع RTA للحصول على معلومات الترخيص.

الأمان

المتغيرالافتراضيالوصف
CSRF_VALIDATION_ENABLEDtrueتفعيل التحقق من رمز CSRF. أبقِه true في الإنتاج. اضبطه على false في التطوير المحلي فقط إذا واجهت أخطاء 400 CSRF token could not be verified.
GII_ENABLEDfalseتفعيل أداة إنشاء الكود في إطار Yii. لا تفعّلها أبداً في الإنتاج.

SSO — Keycloak المدمج

فعّل حاوية Keycloak المجمَّعة لنظام SSO مؤسسي كامل المزايا. يتطلب نطاقاً مع HTTPS.

المتغيرالافتراضيالوصف
EMBED_KEYCLOAKfalseاضبطه على true لتشغيل حاوية Keycloak المدمجة. يُفعِّل ملف تعريف Docker Compose embed-keycloak.
KEYCLOAK_URLعنوان URL الكامل لخادم Keycloak (مثل https://rtcloud.example.com/auth).
KEYCLOAK_REALMاسم realm في Keycloak (مثل rtsurvey).
KEYCLOAK_CLIENT_IDمعرّف عميل Keycloak لتطبيق rtCloud.
KEYCLOAK_CLIENT_SECRETسر عميل Keycloak. أنشئه من وحدة تحكم Keycloak الإدارية.
KEYCLOAK_ADMIN_USERadminاسم مستخدم مسؤول Keycloak.
KEYCLOAK_ADMIN_PASSWORDكلمة مرور مسؤول Keycloak.
KEYCLOAK_DBkeycloakاسم قاعدة بيانات Keycloak. تُنشأ تلقائياً عند التشغيل الأول.
KEYCLOAK_DB_USERkeycloakمستخدم قاعدة بيانات Keycloak.
KEYCLOAK_DB_PASSWORDكلمة مرور قاعدة بيانات مستخدم Keycloak.
KC_HOSTNAMEعنوان URL واجهة Keycloak الأمامية (مثل https://rtcloud.example.com/auth).
KC_HOSTNAME_STRICTfalseفرض مطابقة صارمة لاسم المضيف. اضبطه على true في الإنتاج مع نطاق ثابت.

راجع مصادقة SSO للدليل الكامل للإعداد.


SSO — مزود OIDC خارجي

الاتصال بمزود هوية متوافق مع OIDC موجود (Supabase، Auth0، Authentik، Okta، إلخ).

المتغيرالافتراضيالوصف
OIDC_ISSUER_URLعنوان URL اكتشاف مُصدِر OIDC (مثل https://accounts.google.com).
OIDC_CLIENT_IDمعرّف العميل المسجَّل في مزود الهوية.
OIDC_CLIENT_SECRETسر العميل من مزود الهوية.
OIDC_SCOPEopenid profile emailقائمة نطاقات OIDC مفصولة بمسافات للطلب.
OIDC_REDIRECT_URIعنوان URL رد اتصال تطبيق الويب (مثل https://rtcloud.example.com/auth/callback).
OIDC_MOBILE_CLIENT_IDمعرّف عميل منفصل لتطبيق rtSurvey المحمول.
OIDC_MOBILE_REDIRECT_URIعنوان URI رد اتصال التطبيق المحمول (مثل vn.rta.rtsurvey.auth://callback).
OPEN_REGISTRATIONfalseإنشاء حسابات rtCloud تلقائياً للمستخدمين الذين يصادقون عبر OIDC لأول مرة.
OIDC_AUTHORIZATION_ENDPOINTتجاوز عنوان URL نقطة نهاية التفويض (اتركه فارغاً لاستخدام الاكتشاف).
OIDC_TOKEN_ENDPOINTتجاوز عنوان URL نقطة نهاية الرمز (اتركه فارغاً لاستخدام الاكتشاف).
OIDC_USERINFO_ENDPOINTتجاوز عنوان URL نقطة نهاية معلومات المستخدم (اتركه فارغاً لاستخدام الاكتشاف).

SSO — Azure Active Directory

المتغيرالوصف
AZURE_CLIENT_IDمعرّف تطبيق Azure AD (العميل).
AZURE_TENANT_IDمعرّف دليل Azure AD (المستأجر).

التكاملات الاختيارية

Stata

المتغيرالافتراضيالوصف
STATA_ENABLEDfalseتفعيل تكامل برنامج Stata الإحصائي لتحليل البيانات.
STATA_BIN_PATH/usr/bin/stataالمسار المطلق لملف Stata التنفيذي داخل الحاوية.

Elasticsearch

المتغيرالوصف
ES_HOSTمضيف Elasticsearch (مثل http://elasticsearch:9200).
ES_PORTمنفذ Elasticsearch.

تحليلات Matomo

المتغيرالوصف
PIWIK_URLعنوان URL خادم Matomo (Piwik).
PIWIK_IDمعرّف موقع Matomo.
PIWIK_SECRETرمز مصادقة Matomo.

OpenCPU (الحوسبة بـ R)

المتغيرالوصف
OCPU_HOSTعنوان URL خادم OpenCPU للحوسبة الإحصائية المبنية على R.

تكامل RtBox

المتغيرالوصف
RTBOX_HOSTعنوان URL مضيف خدمة RtBox.
RTBOX_USER_APIمفتاح API مستخدم RtBox.
RTBOX_BASIC_AUTHبيانات اعتماد المصادقة الأساسية لـ RtBox.

رسائل Matrix

المتغيرالوصف
MATRIX_HOMESERVER_HOSTمضيف خادم Matrix الرئيسي.
MATRIX_HOMESERVER_PORTمنفذ خادم Matrix الرئيسي.

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

تُخزَّن جميع بيانات التطبيق في مجلدات Docker مسماة. تُنشأ المجلدات تلقائياً عند التشغيل الأول وتستمر عبر إعادات تشغيل الحاويات والتحديثات.

المجلدنقطة الوصلالمحتويات
rtcloud_mysql_data/var/lib/mysqlملفات قاعدة بيانات MySQL
rtcloud_uploads…/uploadsالملفات المرفوعة من المستجيبين
rtcloud_audios…/audiosالتسجيلات الصوتية
rtcloud_downloads…/downloadsملفات التصدير المُنشأة
rtcloud_gallery…/galleryصور المعرض
rtcloud_voicemail…/voicemailتسجيلات البريد الصوتي
rtcloud_analytics…/analyticsبيانات التحليلات
rtcloud_aggregate…/aggregateنتائج الاستطلاع المجمَّعة
rtcloud_converter…/converterمخرجات تحويل البيانات
rtcloud_shiny_data/srv/shiny-server/smartsurveyسكريبتات R لخادم Shiny
rtcloud_shiny_logs/var/log/shiny-serverسجلات خادم Shiny
rtcloud_assets…/assetsأصول الويب (CSS، JS)
rtcloud_runtime…/protected/runtimeذاكرة تخزين مؤقت لوقت تشغيل التطبيق
rtcloud_cache…/cacheذاكرة تخزين مؤقت للتطبيق
rtcloud_tmp…/tmpالملفات المؤقتة

تُضاف بادئة أسماء المجلدات من قيمة COMPOSE_PROJECT_NAME (الافتراضي: rtcloud).

عرض جميع المجلدات لنشرك:

  docker volume ls | grep rtcloud
  
هل كانت هذه الصفحة مفيدة؟