إدارة الإعدادات
يوفر Twenty وضعين للإعداد ليلائم احتياجات النشر المختلفة:
الوصول إلى لوحة الإدارة: يمكن للمستخدمين الذين لديهم صلاحيات المسؤول (canAccessFullAdminPanel: true) فقط الوصول إلى واجهة التكوين.
1. إعداد لوحة الإدارة (افتراضي)
IS_CONFIG_VARIABLES_IN_DB_ENABLED=true # افتراضي
يحدث أغلب التكوين عبر واجهة المستخدم بعد التثبيت:
- الوصول إلى نسخة Twenty الخاصة بك (عادة
http://localhost:3000)
- اذهب إلى الإعدادات / لوحة الإدارة / متغيرات التكوين
- اضبط التكاملات، والبريد الإلكتروني، والتخزين، والمزيد
- تسري التغييرات على الفور (خلال 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:
- قم بتعيين
IS_CONFIG_VARIABLES_IN_DB_ENABLED=false في ملف .env الخاص بك
- أضف جميع متغيرات الإعداد إلى ملف
.env الخاص بك
- أعد تشغيل الحاويات لتصبح التغييرات نافذة
- ستظهر لوحة الإدارة القيم الحالية لكنها لن تتمكن من تعديلها
Multi-Workspace Mode
By default, Twenty runs in single-workspace mode — ideal for most self-hosted deployments where you need one CRM instance for your organization.
Single-Workspace Mode (Default)
IS_MULTIWORKSPACE_ENABLED=false # default
- One workspace per Twenty instance
- First user automatically becomes admin with full privileges (
canImpersonate and canAccessFullAdminPanel)
- New signups are disabled after the first workspace is created
- Simple URL structure:
https://your-domain.com
Enabling Multi-Workspace Mode
IS_MULTIWORKSPACE_ENABLED=true
DEFAULT_SUBDOMAIN=app # default value
Enable multi-workspace mode for SaaS-like deployments where multiple independent teams need their own workspaces on the same Twenty instance.
Key differences from single-workspace mode:
- Multiple workspaces can be created on the same instance
- Each workspace gets its own subdomain (e.g.,
sales.your-domain.com, marketing.your-domain.com)
- Users sign up and log in at
{DEFAULT_SUBDOMAIN}.your-domain.com (e.g., app.your-domain.com)
- No automatic admin privileges — first user in each workspace is a regular user
- Workspace-specific settings like subdomain and custom domain become available in workspace settings
Environment-only setting: IS_MULTIWORKSPACE_ENABLED can only be configured via .env file and requires a restart. It cannot be changed through the admin panel.
DNS Configuration for Multi-Workspace
When using multi-workspace mode, configure your DNS with a wildcard record to allow dynamic subdomain creation:
*.your-domain.com -> your-server-ip
This enables automatic subdomain routing for new workspaces without manual DNS configuration.
Restricting Workspace Creation
In multi-workspace mode, you may want to limit who can create new workspaces:
IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true
When enabled, only users with canAccessFullAdminPanel can create additional workspaces. Users can still create their first workspace during initial signup.
تكامل Gmail و Google Calendar
إنشاء مشروع Google Cloud
- اذهب إلى وحدة تحكم السحابة من Google
- أنشئ مشروعًا جديدًا أو اختر أحد المشاريع الموجودة
- قم بتفعيل هذه الـ APIs:
تكوين OAuth
- اذهب إلى بيانات اعتماد
- قم بإنشاء معرف عميل OAuth 2.0
- أضف هذه الـ URIs لإعادة التوجيه:
https://{your-domain}/auth/google/redirect (for SSO)
https://{your-domain}/auth/google-apis/get-access-token (for integrations)
الإعداد في Twenty
- اذهب إلى الإعدادات → لوحة الإدارة → متغيرات التكوين
- ابحث بسهولة عن قسم Google Auth
- حدد هذه المتغيرات:
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 if you want to use Microsoft SSO
https://{your-domain}/auth/microsoft-apis/get-access-token
الإعداد في Twenty
- اذهب إلى الإعدادات → لوحة الإدارة → متغيرات التكوين
- Find the Microsoft Auth section
- حدد هذه المتغيرات:
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’
إذا كان تطبيقك في وضع الاختبار
إذا كان تطبيقك في وضع الاختبار، ستحتاج إلى إضافة مستخدمين اختباريين إلى مشروعك.
أضف مستخدمي الاختبار إلى قسم “المستخدمون والمجموعات”.
Background Jobs for Calendar & Messaging
بعد إعداد تكامل 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
تكوين البريد الإلكتروني
- اذهب إلى الإعدادات → لوحة الإدارة → متغيرات التكوين
- Find the Email section
- قم بضبط إعدادات SMTP الخاصة بك:
وضع بيئي فقط: إذا كنت قد ضبطت IS_CONFIG_VARIABLES_IN_DB_ENABLED=false، فأضف هذه المتغيرات إلى ملف .env الخاص بك بدلاً من ذلك.