> ## Documentation Index
> Fetch the complete documentation index at: https://docs.get-clara.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# إعداد

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

<Warning>
  **هل هي المرة الأولى التي تقوم فيها بالتثبيت؟** اتبع [دليل تثبيت Docker Compose](/l/ar/developers/self-host/capabilities/docker-compose) لتشغيل Twenty، ثم عد هنا للإعداد.
</Warning>

يوفر Twenty **وضعين للإعداد** ليلائم احتياجات النشر المختلفة:

**الوصول إلى لوحة الإدارة:** يمكن للمستخدمين الذين لديهم صلاحيات المسؤول (`canAccessFullAdminPanel: true`) فقط الوصول إلى واجهة التكوين.

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

```bash theme={null}
IS_CONFIG_VARIABLES_IN_DB_ENABLED=true  # افتراضي
```

**يحدث أغلب التكوين عبر واجهة المستخدم** بعد التثبيت:

1. الوصول إلى نسخة Twenty الخاصة بك (عادة `http://localhost:3000`)
2. اذهب إلى **الإعدادات / لوحة الإدارة / متغيرات التكوين**
3. اضبط التكاملات، والبريد الإلكتروني، والتخزين، والمزيد
4. تسري التغييرات على الفور (خلال 15 ثانية لعمليات النشر متعددة الحاويات)

<Warning>
  **نشرات متعددة الحاويات:** عند استخدام إعدادات قاعدة البيانات (`IS_CONFIG_VARIABLES_IN_DB_ENABLED=true`)، يقوم كل من حاويات الخادم والعامل بالقراءة من نفس قاعدة البيانات. التغييرات في لوحة الإدارة تؤثر عليهما تلقائيًا، مما يلغي الحاجة إلى تكرار متغيرات البيئة بين الحاويات (باستثناء متغيرات البنية التحتية).
</Warning>

**ما يمكنك تكوينه عبر لوحة الإدارة:**

* **المصادقة** - Google/Microsoft OAuth، إعدادات كلمة المرور
* **البريد الإلكتروني** - إعدادات SMTP، القوالب، التحقق
* **التخزين** - تكوين S3، مسارات التخزين المحلية
* **التكاملات** - Gmail، تقويم Google، خدمات Microsoft
* **حدود التشغيل ومعدل التكنولوجيا** - حدود التنفيذ، API الحد من السرعة
* **والمزيد من الأمور...**

<img src="https://mintcdn.com/clara-1b8b12e1/sHXKG8rWt8DAIbvx/images/user-guide/setup/admin-panel-config-variables.png?fit=max&auto=format&n=sHXKG8rWt8DAIbvx&q=85&s=e02a0f2b3f241bc00ff09513600b0ea2" alt="متغيرات تكوين لوحة الإدارة" width="3024" height="1645" data-path="images/user-guide/setup/admin-panel-config-variables.png" />

<Warning>
  كل متغير موثق بوصف في لوحة الإدارة الخاصة بك في **الإعدادات → لوحة الإدارة → متغيرات التكوين**.
  بعض إعدادات البنية التحتية مثل اتصالات قاعدة البيانات (`PG_DATABASE_URL`)، عناوين الخوادم (`SERVER_URL`)، وأسرار التطبيقات (`APP_SECRET`) يمكن ضبطها فقط عبر ملف `.env`.

  [مرجع تقني كامل →](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/twenty-config/config-variables.ts)
</Warning>

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

```bash theme={null}
IS_CONFIG_VARIABLES_IN_DB_ENABLED=false
```

**جميع الإعدادات تتم إدارتها عبر ملفات `.env`:**

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

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

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

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

```bash theme={null}
IS_MULTIWORKSPACE_ENABLED=false  # default
```

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

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

```bash theme={null}
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`)
* لا توجد صلاحيات مشرف تلقائية — أول مستخدم في كل مساحة عمل يكون مستخدمًا عاديًا
* إعدادات خاصة بمساحة العمل مثل النطاق الفرعي والنطاق المخصص تصبح متاحة ضمن إعدادات مساحة العمل

<Warning>
  **إعداد خاص بالبيئة فقط:** لا يمكن تكوين `IS_MULTIWORKSPACE_ENABLED` إلا عبر ملف `.env` ويتطلب إعادة تشغيل. لا يمكن تغييره عبر لوحة الإدارة.
</Warning>

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

عند استخدام وضع تعدد مساحات العمل، قم بتكوين DNS لديك بسجل wildcard للسماح بإنشاء النطاقات الفرعية ديناميكيًا:

```
*.your-domain.com -> your-server-ip
```

يُمكّن هذا توجيه النطاقات الفرعية تلقائيًا لمساحات العمل الجديدة دون تكوين DNS يدوي.

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

في وضع تعدد مساحات العمل، قد ترغب في تقييد من يمكنه إنشاء مساحات عمل جديدة:

```bash theme={null}
IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true
```

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

## تكامل Gmail و Google Calendar

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

1. اذهب إلى [وحدة تحكم السحابة من Google](https://console.cloud.google.com/)
2. أنشئ مشروعًا جديدًا أو اختر أحد المشاريع الموجودة
3. قم بتفعيل هذه الـ APIs:

* [Gmail API](https://console.cloud.google.com/apis/library/gmail.googleapis.com)
* [Google Calendar API](https://console.cloud.google.com/apis/library/calendar-json.googleapis.com)
* [People API](https://console.cloud.google.com/apis/library/people.googleapis.com)

### تكوين OAuth

1. اذهب إلى [بيانات اعتماد](https://console.cloud.google.com/apis/credentials)
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`

<Warning>
  **وضع بيئي فقط:** إذا كنت قد ضبطت `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`، فأضف هذه المتغيرات إلى ملف `.env` الخاص بك بدلاً من ذلك.
</Warning>

**النطاقات المطلوبة** (يتم تكوينها تلقائيًا):
[انظر الشيفرة المصدرية ذات الصلة](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-google-apis-oauth-scopes.ts#L4-L10)

* `https://www.googleapis.com/auth/calendar.events`
* `https://www.googleapis.com/auth/gmail.readonly`
* `https://www.googleapis.com/auth/profile.emails.read`

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

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

تحت [شاشة موافقة OAuth](https://console.cloud.google.com/apis/credentials/consent)، أضف مستخدمي الاختبار إلى قسم "مستخدمو الاختبار".

## تكامل Microsoft 365

<Warning>
  يجب على المستخدمين الحصول على [ترخيص Microsoft 365](https://admin.microsoft.com/Adminportal/Home) ليتمكنوا من استخدام تقويم API ورسائل. لن يتمكنوا من مزامنة حسابهم في Twenty دون واحد منها.
</Warning>

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

ستحتاج إلى إنشاء مشروع في [Microsoft Azure](https://portal.azure.com/#view/Microsoft_AAD_IAM/AppGalleryBladeV2) والحصول على بيانات الاعتماد.

### تمكين 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`

<Warning>
  **وضع بيئي فقط:** إذا كنت قد ضبطت `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`، فأضف هذه المتغيرات إلى ملف `.env` الخاص بك بدلاً من ذلك.
</Warning>

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

[انظر الشيفرة المصدرية ذات الصلة](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-microsoft-apis-oauth-scopes.ts#L2-L9)

* 'openid'
* 'البريد الإلكتروني'
* 'profile'
* 'offline\_access'
* 'Mail.ReadWrite'
* 'Mail.Send'
* 'Calendars.Read'

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

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

أضف مستخدمي الاختبار إلى قسم "المستخدمون والمجموعات".

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

بعد إعداد تكامل Gmail، أو Google Calendar، أو Microsoft 365، تحتاج إلى بدء وظائف الخلفية التي تقوم بمزامنة البيانات.

سجل الوظائف المتكررة التالية في حاوية العمل الخاصة بك:

```bash theme={null}
# 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 الخاصة بك:

<ArticleTabs label1="جيميل" label2="أوفيس 365" label3="Smtp4dev">
  <ArticleTab>
    ستحتاج إلى توفير [كلمة مرور التطبيق](https://support.google.com/accounts/answer/185833).

    * EMAIL\_DRIVER=smtp
    * EMAIL\_SMTP\_HOST=smtp.gmail.com
    * EMAIL\_SMTP\_PORT=465
    * EMAIL\_SMTP\_USER=gmail\_email\_address
    * EMAIL\_SMTP\_PASSWORD='gmail\_app\_password'
  </ArticleTab>

  <ArticleTab>
    تذكر أنه إذا كنت تشغل التحقق بعاملين، ستحتاج إلى توفير [كلمة مرور التطبيق](https://support.microsoft.com/en-us/account-billing/manage-app-passwords-for-two-step-verification-d6dc8c6d-4bf7-4851-ad95-6d07799387e9).

    * EMAIL\_DRIVER=smtp
    * EMAIL\_SMTP\_HOST=smtp.office365.com
    * EMAIL\_SMTP\_PORT=587
    * EMAIL\_SMTP\_USER=office365\_email\_address
    * EMAIL\_SMTP\_PASSWORD='office365\_password'
  </ArticleTab>

  <ArticleTab>
    **smtp4dev** هو خادم بريد إلكتروني مزيف للتطوير والاختبار.

    * قم بتشغيل صورة smtp4dev: `docker run --rm -it -p 8090:80 -p 2525:25 rnwood/smtp4dev`
    * الوصول إلى واجهة المستخدم smtp4dev هنا: [http://localhost:8090](http://localhost:8090)
    * حدد المتغيرات التالية:
      * EMAIL\_DRIVER=smtp
      * EMAIL\_SMTP\_HOST=localhost
      * EMAIL\_SMTP\_PORT=2525
  </ArticleTab>
</ArticleTabs>

<Warning>
  **وضع بيئي فقط:** إذا كنت قد ضبطت `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`، فأضف هذه المتغيرات إلى ملف `.env` الخاص بك بدلاً من ذلك.
</Warning>

## تخزين S3

<Warning>
  افتراضياً، تقوم Twenty بتخزين الملفات المرفوعة على نظام الملفات المحلي. بالنسبة لعمليات النشر في بيئة الإنتاج، استخدم S3 أو خدمة متوافقة مع S3 (MinIO، DigitalOcean Spaces، إلخ) لضمان بقاء الملفات عبر إعادة تشغيل الحاويات وإتاحة التوسّع عبر مثيلات خوادم متعددة.
</Warning>

عيّن `STORAGE_TYPE=S_3` وقم بتهيئة متغيرات `STORAGE_S3_*` من خلال لوحة الإدارة أو `.env`. راجع [مرجع config-variables.ts](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/twenty-config/config-variables.ts) للاطلاع على القائمة الكاملة لمتغيرات S3.

عند استخدام S3 مع الميزات المعتمدة على CORS (مثل تنزيل الملفات داخل المتصفح)، تأكد من أن حاويتك تسمح بأصل واجهة Twenty الأمامية ضمن تهيئة CORS الخاصة بها.

## الوظائف المنطقية ومفسر الشيفرة

تدعم Twenty الوظائف المنطقية لعمليات سير العمل ومفسر الشيفرة لتحليل بيانات الذكاء الاصطناعي. كلاهما يقوم بتشغيل الشيفرة المقدمة من المستخدم ويتطلب تهيئة صريحة لأغراض الأمان.

### الإعدادات الافتراضية للأمان

**في بيئة الإنتاج (NODE\_ENV=production):** يكون الإعداد الافتراضي لكل من الوظائف المنطقية ومفسر الشيفرة هو **معطل**. يجب تمكينهما صراحة باستخدام `LOGIC_FUNCTION_TYPE` و`CODE_INTERPRETER_TYPE` إذا كنت تحتاج إلى هذه الميزات.

**في بيئة التطوير (NODE\_ENV=development):** يكون الإعداد الافتراضي لكليهما **LOCAL** لتسهيل التشغيل محلياً.

<Warning>
  **ملاحظة أمنية:** يقوم برنامج التشغيل المحلي (`LOGIC_FUNCTION_TYPE=LOCAL` أو `CODE_INTERPRETER_TYPE=LOCAL`) بتشغيل الشيفرة مباشرة على المضيف ضمن عملية Node.js من دون عزل. يجب استخدامه فقط للشيفرة الموثوقة أثناء التطوير. لعمليات النشر الإنتاجية التي تتعامل مع شيفرة غير موثوقة، استخدم `LOGIC_FUNCTION_TYPE=LAMBDA` أو `CODE_INTERPRETER_TYPE=E2B` (مع وضع الحماية)، أو اتركهما مُعطَّلَيْن.
</Warning>

### الوظائف المنطقية - برامج التشغيل المتاحة

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

### الوظائف المنطقية - الإعداد الموصى به

**للتطوير:**

```bash theme={null}
LOGIC_FUNCTION_TYPE=LOCAL  # default when NODE_ENV=development
```

**للإنتاج (AWS):**

```bash theme={null}
LOGIC_FUNCTION_TYPE=LAMBDA
LOGIC_FUNCTION_LAMBDA_REGION=us-east-1
LOGIC_FUNCTION_LAMBDA_ROLE=arn:aws:iam::123456789:role/your-lambda-role
LOGIC_FUNCTION_LAMBDA_ACCESS_KEY_ID=your-access-key
LOGIC_FUNCTION_LAMBDA_SECRET_ACCESS_KEY=your-secret-key
```

**لتعطيل الوظائف المنطقية:**

```bash theme={null}
LOGIC_FUNCTION_TYPE=DISABLED  # default when NODE_ENV=production
```

### مفسر الشيفرة - برامج التشغيل المتاحة

| برنامج التشغيل | متغير البيئة                     | حالة الاستخدام                        | مستوى الأمان             |
| -------------- | -------------------------------- | ------------------------------------- | ------------------------ |
| معطل           | `CODE_INTERPRETER_TYPE=DISABLED` | تعطيل تنفيذ الشيفرة بالذكاء الاصطناعي | غير متاح                 |
| محلي           | `CODE_INTERPRETER_TYPE=LOCAL`    | للتطوير فقط                           | منخفض (من دون عزل)       |
| E2B            | `CODE_INTERPRETER_TYPE=E_2_B`    | الإنتاج مع تنفيذ ضمن صندوق رمل معزول  | مرتفعة (صندوق رمل معزول) |

<Note>
  عند استخدام `LOGIC_FUNCTION_TYPE=DISABLED` أو `CODE_INTERPRETER_TYPE=DISABLED`، سترجع أي محاولة للتنفيذ خطأً. يكون هذا مفيدًا إذا كنت ترغب في تشغيل Twenty من دون هذه الإمكانات.
</Note>
