الانتقال إلى المحتوى الرئيسي

إدارة الإعدادات

هل هي المرة الأولى التي تقوم فيها بالتثبيت؟ اتبع دليل تثبيت Docker Compose لتشغيل Twenty، ثم عد هنا للإعداد.
يوفر Twenty وضعين للإعداد ليلائم احتياجات النشر المختلفة: الوصول إلى لوحة الإدارة: يمكن للمستخدمين الذين لديهم صلاحيات المسؤول (canAccessFullAdminPanel: true) فقط الوصول إلى واجهة التكوين.

1. إعداد لوحة الإدارة (افتراضي)

IS_CONFIG_VARIABLES_IN_DB_ENABLED=true  # افتراضي
يحدث أغلب التكوين عبر واجهة المستخدم بعد التثبيت:
  1. الوصول إلى نسخة Twenty الخاصة بك (عادة http://localhost:3000)
  2. اذهب إلى الإعدادات / لوحة الإدارة / متغيرات التكوين
  3. اضبط التكاملات، والبريد الإلكتروني، والتخزين، والمزيد
  4. تسري التغييرات على الفور (خلال 15 ثانية لعمليات النشر متعددة الحاويات)
نشرات متعددة الحاويات: عند استخدام إعدادات قاعدة البيانات (IS_CONFIG_VARIABLES_IN_DB_ENABLED=true)، يقوم كل من حاويات الخادم والعامل بالقراءة من نفس قاعدة البيانات. التغييرات في لوحة الإدارة تؤثر عليهما تلقائيًا، مما يلغي الحاجة إلى تكرار متغيرات البيئة بين الحاويات (باستثناء متغيرات البنية التحتية).
ما يمكنك تكوينه عبر لوحة الإدارة:
  • المصادقة - Google/Microsoft OAuth، إعدادات كلمة المرور
  • البريد الإلكتروني - إعدادات SMTP، القوالب، التحقق
  • التخزين - تكوين S3، مسارات التخزين المحلية
  • التكاملات - Gmail، تقويم Google، خدمات Microsoft
  • حدود التشغيل ومعدل التكنولوجيا - حدود التنفيذ، API الحد من السرعة
  • والمزيد من الأمور…
متغيرات تكوين لوحة الإدارة
كل متغير موثق بوصف في لوحة الإدارة الخاصة بك في الإعدادات → لوحة الإدارة → متغيرات التكوين. بعض إعدادات البنية التحتية مثل اتصالات قاعدة البيانات (PG_DATABASE_URL)، عناوين الخوادم (SERVER_URL)، وأسرار التطبيقات (APP_SECRET) يمكن ضبطها فقط عبر ملف .env.مرجع تقني كامل →

2. إعداد بيئي فقط

IS_CONFIG_VARIABLES_IN_DB_ENABLED=false
جميع الإعدادات تتم إدارتها عبر ملفات .env:
  1. قم بتعيين IS_CONFIG_VARIABLES_IN_DB_ENABLED=false في ملف .env الخاص بك
  2. أضف جميع متغيرات الإعداد إلى ملف .env الخاص بك
  3. أعد تشغيل الحاويات لتصبح التغييرات نافذة
  4. ستظهر لوحة الإدارة القيم الحالية لكنها لن تتمكن من تعديلها

وضع تعدد مساحات العمل

افتراضيًا، تعمل Twenty في وضع مساحة عمل واحدة — وهو مثالي لمعظم عمليات النشر المستضافة ذاتيًا حيث تحتاج إلى مثيل واحد من نظام إدارة علاقات العملاء لمؤسستك.

وضع مساحة العمل الواحدة (الافتراضي)

IS_MULTIWORKSPACE_ENABLED=false  # default
  • مساحة عمل واحدة لكل مثيل من Twenty
  • أول مستخدم يصبح تلقائيًا مشرفًا مع صلاحيات كاملة (canImpersonate وcanAccessFullAdminPanel)
  • يتم تعطيل عمليات التسجيل الجديدة بعد إنشاء مساحة العمل الأولى
  • بنية URL بسيطة: https://your-domain.com

تمكين وضع تعدد مساحات العمل

IS_MULTIWORKSPACE_ENABLED=true
DEFAULT_SUBDOMAIN=app  # default value
قم بتمكين وضع تعدد مساحات العمل لعمليات النشر المشابهة لـ SaaS حيث تحتاج عدة فرق مستقلة إلى مساحات عمل خاصة بها على نفس مثيل Twenty. الاختلافات الرئيسية مقارنة بوضع مساحة العمل الواحدة:
  • يمكن إنشاء مساحات عمل متعددة على نفس المثيل
  • تحصل كل مساحة عمل على نطاق فرعي خاص بها (مثل: sales.your-domain.com، marketing.your-domain.com)
  • يسجل المستخدمون ويقومون بتسجيل الدخول عبر {DEFAULT_SUBDOMAIN}.your-domain.com (مثل: app.your-domain.com)
  • لا توجد صلاحيات مشرف تلقائية — أول مستخدم في كل مساحة عمل يكون مستخدمًا عاديًا
  • إعدادات خاصة بمساحة العمل مثل النطاق الفرعي والنطاق المخصص تصبح متاحة ضمن إعدادات مساحة العمل
إعداد خاص بالبيئة فقط: لا يمكن تكوين IS_MULTIWORKSPACE_ENABLED إلا عبر ملف .env ويتطلب إعادة تشغيل. لا يمكن تغييره عبر لوحة الإدارة.

تكوين DNS لوضع تعدد مساحات العمل

عند استخدام وضع تعدد مساحات العمل، قم بتكوين DNS لديك بسجل wildcard للسماح بإنشاء النطاقات الفرعية ديناميكيًا:
*.your-domain.com -> your-server-ip
يُمكّن هذا توجيه النطاقات الفرعية تلقائيًا لمساحات العمل الجديدة دون تكوين DNS يدوي.

تقييد إنشاء مساحات العمل

في وضع تعدد مساحات العمل، قد ترغب في تقييد من يمكنه إنشاء مساحات عمل جديدة:
IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true
عند التمكين، يمكن فقط للمستخدمين الذين لديهم canAccessFullAdminPanel إنشاء مساحات عمل إضافية. لا يزال بإمكان المستخدمين إنشاء مساحة العمل الأولى الخاصة بهم أثناء التسجيل الأولي.

تكامل Gmail و Google Calendar

إنشاء مشروع Google Cloud

  1. اذهب إلى وحدة تحكم السحابة من Google
  2. أنشئ مشروعًا جديدًا أو اختر أحد المشاريع الموجودة
  3. قم بتفعيل هذه الـ APIs:

تكوين OAuth

  1. اذهب إلى بيانات اعتماد
  2. قم بإنشاء معرف عميل OAuth 2.0
  3. أضف هذه الـ URIs لإعادة التوجيه:
    • https://{your-domain}/auth/google/redirect (لتسجيل الدخول الفردي)
    • https://{your-domain}/auth/google-apis/get-access-token (للتكاملات)

الإعداد في Twenty

  1. اذهب إلى الإعدادات → لوحة الإدارة → متغيرات التكوين
  2. ابحث بسهولة عن قسم Google Auth
  3. حدد هذه المتغيرات:
    • MESSAGING_PROVIDER_GMAIL_ENABLED=true
    • CALENDAR_PROVIDER_GOOGLE_ENABLED=true
    • AUTH_GOOGLE_CLIENT_ID={client-id}
    • AUTH_GOOGLE_CLIENT_SECRET={client-secret}
    • AUTH_GOOGLE_CALLBACK_URL=https://{your-domain}/auth/google/redirect
    • AUTH_GOOGLE_APIS_CALLBACK_URL=https://{your-domain}/auth/google-apis/get-access-token
وضع بيئي فقط: إذا كنت قد ضبطت IS_CONFIG_VARIABLES_IN_DB_ENABLED=false، فأضف هذه المتغيرات إلى ملف .env الخاص بك بدلاً من ذلك.
النطاقات المطلوبة (يتم تكوينها تلقائيًا): انظر الشيفرة المصدرية ذات الصلة
  • https://www.googleapis.com/auth/calendar.events
  • https://www.googleapis.com/auth/gmail.readonly
  • https://www.googleapis.com/auth/profile.emails.read

إذا كان تطبيقك في وضع الاختبار

إذا كان تطبيقك في وضع الاختبار، ستحتاج إلى إضافة مستخدمين اختباريين إلى مشروعك. تحت شاشة موافقة OAuth، أضف مستخدمي الاختبار إلى قسم “مستخدمو الاختبار”.

تكامل Microsoft 365

يجب على المستخدمين الحصول على ترخيص Microsoft 365 ليتمكنوا من استخدام تقويم API ورسائل. لن يتمكنوا من مزامنة حسابهم في Twenty دون واحد منها.

إنشاء مشروع في Microsoft Azure

ستحتاج إلى إنشاء مشروع في Microsoft Azure والحصول على بيانات الاعتماد.

تمكين APIs

على وحدة تحكم Microsoft Azure، قم بتمكين الواجهات التالية في “أذونات”:
  • Microsoft Graph: Mail.ReadWrite
  • Microsoft Graph: Mail.Send
  • Microsoft Graph: Calendars.Read
  • Microsoft Graph: User.Read
  • Microsoft Graph: openid
  • Microsoft Graph: email
  • Microsoft Graph: profile
  • Microsoft Graph: offline_access
ملحوظة: “Mail.ReadWrite” و “Mail.Send” إلزاميان فقط إذا كنت ترغب في إرسال رسائل بريد إلكتروني باستخدام إجراءات سير العمل الخاصة بنا. يمكنك استخدام “Mail.Read” بدلاً من ذلك إذا كنت ترغب فقط في تلقي الرسائل الإلكترونية.

URIs لإعادة التوجيه المصرح بها

ستحتاج إلى إضافة URIs التالية لإعادة التوجيه إلى مشروعك:
  • https://{your-domain}/auth/microsoft/redirect إذا كنت تريد استخدام تسجيل الدخول الفردي في Microsoft
  • https://{your-domain}/auth/microsoft-apis/get-access-token

الإعداد في Twenty

  1. اذهب إلى الإعدادات → لوحة الإدارة → متغيرات التكوين
  2. ابحث عن قسم Microsoft Auth
  3. حدد هذه المتغيرات:
    • MESSAGING_PROVIDER_MICROSOFT_ENABLED=true
    • CALENDAR_PROVIDER_MICROSOFT_ENABLED=true
    • AUTH_MICROSOFT_ENABLED=true
    • AUTH_MICROSOFT_CLIENT_ID={client-id}
    • AUTH_MICROSOFT_CLIENT_SECRET={client-secret}
    • AUTH_MICROSOFT_CALLBACK_URL=https://{your-domain}/auth/microsoft/redirect
    • AUTH_MICROSOFT_APIS_CALLBACK_URL=https://{your-domain}/auth/microsoft-apis/get-access-token
وضع بيئي فقط: إذا كنت قد ضبطت IS_CONFIG_VARIABLES_IN_DB_ENABLED=false، فأضف هذه المتغيرات إلى ملف .env الخاص بك بدلاً من ذلك.

تكوين النطاقات

انظر الشيفرة المصدرية ذات الصلة
  • ‘openid’
  • ‘البريد الإلكتروني’
  • ‘profile’
  • ‘offline_access’
  • ‘Mail.ReadWrite’
  • ‘Mail.Send’
  • ‘Calendars.Read’

إذا كان تطبيقك في وضع الاختبار

إذا كان تطبيقك في وضع الاختبار، ستحتاج إلى إضافة مستخدمين اختباريين إلى مشروعك. أضف مستخدمي الاختبار إلى قسم “المستخدمون والمجموعات”.

مهام الخلفية للتقويم والمراسلة

بعد إعداد تكامل Gmail، أو Google Calendar، أو Microsoft 365، تحتاج إلى بدء وظائف الخلفية التي تقوم بمزامنة البيانات. سجل الوظائف المتكررة التالية في حاوية العمل الخاصة بك:
# from your worker container
yarn command:prod cron:messaging:messages-import
yarn command:prod cron:messaging:message-list-fetch
yarn command:prod cron:calendar:calendar-event-list-fetch
yarn command:prod cron:calendar:calendar-events-import
yarn command:prod cron:messaging:ongoing-stale
yarn command:prod cron:calendar:ongoing-stale
yarn command:prod cron:workflow:automated-cron-trigger

تكوين البريد الإلكتروني

  1. اذهب إلى الإعدادات → لوحة الإدارة → متغيرات التكوين
  2. ابحث عن قسم Email
  3. قم بضبط إعدادات SMTP الخاصة بك:
وضع بيئي فقط: إذا كنت قد ضبطت IS_CONFIG_VARIABLES_IN_DB_ENABLED=false، فأضف هذه المتغيرات إلى ملف .env الخاص بك بدلاً من ذلك.

الوظائف المنطقية

تدعم Twenty الوظائف المنطقية لعمليات سير العمل والمنطق المخصص. يتم تكوين بيئة التنفيذ عبر متغير البيئة SERVERLESS_TYPE.
ملاحظة أمنية: يقوم برنامج التشغيل المحلي (SERVERLESS_TYPE=LOCAL) بتشغيل الشيفرة مباشرةً على المضيف ضمن عملية Node.js من دون عزل. يجب استخدامه فقط للشيفرة الموثوقة أثناء التطوير. بالنسبة لعمليات النشر الإنتاجية التي تتعامل مع شيفرة غير موثوق بها، نوصي بشدة باستخدام SERVERLESS_TYPE=LAMBDA أو SERVERLESS_TYPE=DISABLED.

برامج التشغيل المتاحة

برنامج التشغيلمتغير البيئةحالة الاستخداممستوى الأمان
معطلSERVERLESS_TYPE=DISABLEDتعطيل الوظائف المنطقية بالكاملغير متاح
محليSERVERLESS_TYPE=LOCALبيئات التطوير والبيئات الموثوقةمنخفض (من دون عزل)
LambdaSERVERLESS_TYPE=LAMBDAالإنتاج مع شيفرة غير موثوق بهامرتفع (عزل على مستوى الأجهزة)

التكوين الموصى به

للتطوير:
SERVERLESS_TYPE=LOCAL  # default
للإنتاج (AWS):
SERVERLESS_TYPE=LAMBDA
SERVERLESS_LAMBDA_REGION=us-east-1
SERVERLESS_LAMBDA_ROLE=arn:aws:iam::123456789:role/your-lambda-role
SERVERLESS_LAMBDA_ACCESS_KEY_ID=your-access-key
SERVERLESS_LAMBDA_SECRET_ACCESS_KEY=your-secret-key
لتعطيل الوظائف المنطقية:
SERVERLESS_TYPE=DISABLED
عند استخدام SERVERLESS_TYPE=DISABLED، ستؤدي أي محاولة لتنفيذ وظيفة منطقية إلى إرجاع خطأ. يكون هذا مفيدًا إذا كنت ترغب في تشغيل Twenty من دون إمكانات الوظائف المنطقية.