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

# الإعداد المحلي

> الدليل للمساهمين (أو المطورين الفضوليين) الذين يرغبون في تشغيل Twenty محلياً.

## المتطلبات الأساسية

<Tabs>
  <Tab title="Linux و macOS">
    قبل أن تتمكن من تثبيت واستخدام Twenty، تأكد من تثبيت الأمور التالية على جهاز الكمبيوتر الخاص بك:

    * [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
    * [Node v24.5.0](https://nodejs.org/en/download)
    * [yarn v4](https://yarnpkg.com/getting-started/install)
    * [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)

    <Warning>
      لن يعمل `npm` ، يجب عليك استخدام `yarn` بدلًا من ذلك. يأتي Yarn الآن مع Node.js، لذا لست بحاجة إلى تثبيته بشكل منفصل.
      عليك فقط تشغيل `corepack enable` لتفعيل Yarn إذا لم تقم بذلك بعد.
    </Warning>
  </Tab>

  <Tab title="ويندوز (WSL)">
    1. ثبّت WSL
       افتح PowerShell كمسؤول ثم نفّذ:

    ```powershell theme={null}
    wsl --install
    ```

    يجب أن ترى الآن مطالبة لإعادة تشغيل جهاز الكمبيوتر الخاص بك. إذا لم يكن كذلك، فأعد تشغيله يدويًا.

    عند إعادة التشغيل، ستُفتح نافذة PowerShell وسيتم تثبيت Ubuntu. قد يستغرق هذا وقتًا طويلاً.
    سترى مطالبة لإنشاء اسم المستخدم وكلمة المرور لتثبيت Ubuntu الخاص بك.

    2. تثبيت وإعداد git

    ```bash theme={null}
    sudo apt-get install git

    git config --global user.name "Your Name"

    git config --global user.email "youremail@domain.com"
    ```

    3. تثبيت nvm و node.js و yarn

    <Warning>
      استخدم `nvm` لتثبيت نسخة `node` الصحيحة. الملف `.nvmrc` يضمن استخدام جميع المشاركين لنفس النسخة.
    </Warning>

    ```bash theme={null}
    sudo apt-get install curl

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
    ```

    أغلق وأعد فتح برنامجك الطرفي لاستخدام nvm. ثم قم بتشغيل الأوامر التالية.

    ```bash theme={null}

    nvm install # installs recommended node version

    nvm use # use recommended node version

    corepack enable
    ```
  </Tab>
</Tabs>

***

## الخطوة 1: استنساخ Git

في الطرفية الخاصة بك، قم بتشغيل الأمر التالي.

<Tabs>
  <Tab title="SSH (موصى به)">
    إذا لم تكن قد أعددت مفاتيح SSH بالفعل، يمكنك معرفة كيفية القيام بذلك [هنا](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh).

    ```bash theme={null}
    git clone git@github.com:twentyhq/twenty.git
    ```
  </Tab>

  <Tab title="HTTPS">
    ```bash theme={null}
    git clone https://github.com/twentyhq/twenty.git
    ```
  </Tab>
</Tabs>

## الخطوة 2: انتقل إلى جذر المشروع

```bash theme={null}
cd twenty
```

يجب تشغيل جميع الأوامر في الخطوات التالية من جذر المشروع.

## الخطوة 3: إعداد قاعدة بيانات PostgreSQL

<Tabs>
  <Tab title="Linux">
    **الخيار 1 (المفضل):** لتوفير قاعدة بياناتك محليًا:
    استخدم الرابط التالي لتثبيت PostgreSQL على جهاز Linux الخاص بك: [تثبيت PostgreSQL](https://www.postgresql.org/download/linux/)

    ```bash theme={null}
      psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
    ```

    ملاحظة: قد تحتاج إلى إضافة `sudo -u postgres` إلى الأمر قبل `psql` لتجنب أخطاء الإذن.

    **الخيار 2:** إذا كنت قد قمت بتثبيت docker:

    ```bash theme={null}
      make -C packages/twenty-docker postgres-on-docker
    ```
  </Tab>

  <Tab title="نظام Mac OS">
    **الخيار 1 (المفضل):** لتوفير قاعدة بياناتك محليًا مع `brew`:

    ```bash theme={null}
      brew install postgresql@16
      export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"
      brew services start postgresql@16
      psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
    ```

    يمكنك التحقق مما إذا كان خادم PostgreSQL يعمل بتنفيذ:

    ```bash theme={null}
      brew services list
    ```

    قد لا يقوم المُثبِّت بإنشاء المستخدم `postgres` افتراضيًا عند التثبيت
    عبر Homebrew على macOS. بدلاً من ذلك، فإنه ينشئ دور PostgreSQL يطابق
    اسم المستخدم الخاص بك في MacOS (مثل "john").
    للتحقق وإنشاء المستخدم `postgres` إذا لزم الأمر، اتبع هذه الخطوات:

    ```bash theme={null}
      # Connect to PostgreSQL
      psql postgres
      or
      psql -U $(whoami) -d postgres
    ```

    بمجرد أن تكون عند مطالبة psql (postgres=#)، قم بتشغيل:

    ```bash theme={null}
     # List existing PostgreSQL roles
     \du
    ```

    سترى مخرجات مشابهة ل:

    ```bash theme={null}
     Role name | Attributes  | Member of
     -----------+-------------+-----------
     john      | Superuser   | {}
    ```

    إذا لم ترَ دور `postgres` مدرجًا، انتقل إلى الخطوة التالية.
    قم بإنشاء دور `postgres` يدويًا:

    ```bash theme={null}
     CREATE ROLE postgres WITH SUPERUSER LOGIN;
    ```

    يقوم هذا بإنشاء دور مشرف نظام باسم `postgres` مع إمكانية تسجيل الدخول.

    ```bash theme={null}
    Role name | Attributes  | Member of
    -----------+-------------+-----------
    postgres  | Superuser   | {}
    john      | Superuser   | {}
    ```

    **الخيار 2:** إذا كنت قد قمت بتثبيت docker:

    ```bash theme={null}
      make -C packages/twenty-docker postgres-on-docker
    ```
  </Tab>

  <Tab title="ويندوز (WSL)">
    يجب أن تُنفذ جميع الخطوات التالية في تيرمينال WSL (داخل جهازك الافتراضي)

    **الخيار 1:** لتوفير قاعدة بيانات PostgreSQL الخاصة بك محليًا:
    استخدم الرابط التالي لتثبيت PostgreSQL على جهاز Linux الافتراضي الخاص بك: [تثبيت PostgreSQL](https://www.postgresql.org/download/linux/)

    ```bash theme={null}
      psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
    ```

    ملاحظة: قد تحتاج إلى إضافة `sudo -u postgres` إلى الأمر قبل `psql` لتجنب أخطاء الإذن.

    **الخيار 2:** إذا كنت قد قمت بتثبيت docker:
    تشغيل Docker على WSL يضيف طبقة إضافية من التعقيد.
    استخدم هذا الخيار فقط إذا كنت مرتاحًا مع الخطوات الإضافية المتضمنة، بما في ذلك تشغيل [Docker Desktop WSL2](https://docs.docker.com/desktop/wsl).

    ```bash theme={null}
      make -C packages/twenty-docker postgres-on-docker
    ```
  </Tab>
</Tabs>

يمكنك الآن الوصول إلى قاعدة البيانات على `localhost:5432`.

إذا استخدمت خيار Docker أعلاه، فإن بيانات الاعتماد الافتراضية هي اسم المستخدم `postgres` وكلمة المرور `postgres`. بالنسبة لتثبيتات PostgreSQL الأصلية، استخدم بيانات الاعتماد والأدوار المُكوَّنة على جهازك.

## الخطوة 4: إعداد قاعدة بيانات Redis (للتخزين المؤقت)

يتطلب Twenty مخزن بيانات Redis لتقديم أفضل أداء.

<Tabs>
  <Tab title="Linux">
    **الخيار 1:** لتوفير Redis الخاص بك محليًا:
    استخدم الرابط التالي لتثبيت Redis على جهاز Linux: [تثبيت Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/)

    **الخيار 2:** إذا كنت قد قمت بتثبيت docker:

    ```bash theme={null}
      make -C packages/twenty-docker redis-on-docker
    ```
  </Tab>

  <Tab title="Mac OS">
    **الخيار 1 (المفضل):** لتوفير Redis الخاص بك محليًا مع `brew`:

    ```bash theme={null}
    brew install redis
    ```

    ابدأ تشغيل خادم Redis:

    ```bash theme={null}
    brew services start redis
    ```

    **الخيار 2:** إذا كنت قد قمت بتثبيت docker:

    ```bash theme={null}
      make -C packages/twenty-docker redis-on-docker
    ```
  </Tab>

  <Tab title="ويندوز (WSL)">
    **الخيار 1:** لتوفير Redis الخاص بك محليًا:
    استخدم الرابط التالي لتثبيت Redis على جهاز Linux الافتراضي الخاص بك: [تثبيت Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/)

    **الخيار 2:** إذا كنت قد قمت بتثبيت docker:

    ```bash theme={null}
      make -C packages/twenty-docker redis-on-docker
    ```
  </Tab>
</Tabs>

إذا كنت بحاجة إلى واجهة رسومية للعميل، نوصي بـ [Redis Insight](https://redis.io/insight/) (يتوفر إصدار مجاني).

## الخطوة 5: إعداد متغيرات البيئة

استخدم متغيرات البيئة أو ملفات `.env` لتكوين مشروعك. المزيد من المعلومات [هنا](/l/ar/developers/self-host/capabilities/setup).

انسخ ملفات `.env.example` الموجودة في `/front` و`/server`:

```bash theme={null}
cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env
cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env
```

<Info>
  **وضع تعدد مساحات العمل:** بشكل افتراضي، يعمل Twenty في وضع مساحة عمل واحدة حيث يمكن إنشاء مساحة عمل واحدة فقط. لتمكين دعم تعدد مساحات العمل (مفيد لاختبار الميزات المعتمدة على النطاقات الفرعية)، عيّن `IS_MULTIWORKSPACE_ENABLED=true` في ملف الخادم `.env`. راجع [وضع تعدد مساحات العمل](/l/ar/developers/self-host/capabilities/setup#multi-workspace-mode) للحصول على التفاصيل.
</Info>

## الخطوة 6: تثبيت التبعيات

لبناء خادم Twenty وزرع بعض البيانات في قاعدة البيانات الخاصة بك، قم بتشغيل الأمر التالي:

```bash theme={null}
yarn
```

لاحظ أن `npm` أو `pnpm` لن تعملا

## الخطوة 7: تشغيل المشروع

<Tabs>
  <Tab title="Linux">
    اعتمادًا على توزيعة Linux الخاصة بك، قد يتم بدء خادم Redis تلقائيًا.
    إذا لم يكن كذلك، تحقق من [دليل تثبيت Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) لتوزيعتك.
  </Tab>

  <Tab title="نظام Mac OS">
    من المفترض أن يكون Redis قد تم تشغيله بالفعل. إذا لم يكن كذلك، قم بتشغيل:

    ```bash theme={null}
    brew services start redis
    ```
  </Tab>

  <Tab title="ويندوز (WSL)">
    اعتمادًا على توزيعة Linux الخاصة بك، قد يتم بدء خادم Redis تلقائيًا.
    إذا لم يكن كذلك، تحقق من [دليل تثبيت ريديس](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) لتوزيعتك.
  </Tab>
</Tabs>

قم بضبط قاعدة بياناتك بالأمر التالي:

```bash theme={null}
npx nx database:reset twenty-server
```

ابدأ الخادم والخادم الثانوي وخدمات الواجهة الأمامية:

```bash theme={null}
npx nx start twenty-server
npx nx worker twenty-server
npx nx start twenty-front
```

بدلاً من ذلك، يمكنك بدء جميع الخدمات مرة واحدة:

```bash theme={null}
npx nx start
```

## الخطوة الثامنة: استخدم Twenty

**الواجهة الأمامية**

ستكون واجهة Twenty الأمامية تعمل على  [http://localhost:3001](http://localhost:3001).
يمكنك تسجيل الدخول باستخدام حساب العرض التوضيحي الافتراضي: `tim@apple.dev` (كلمة المرور: `tim@apple.dev`)

**الخلفية**

* سيكون خادم Twenty متصلاً ويعمل على [http://localhost:3000](http://localhost:3000)
* يمكن الوصول إلى واجهة برمجة التطبيقات GraphQL في [http://localhost:3000/graphql](http://localhost:3000/graphql)
* يمكن الوصول إلى واجهة برمجة التطبيقات REST في [http://localhost:3000/rest](http://localhost:3000/rest)

## استكشاف الأخطاء وإصلاحها

إذا واجهت أي مشكلة، فارجع إلى [استكشاف الأخطاء وإصلاحها](/l/ar/developers/self-host/capabilities/troubleshooting) للحصول على الحلول.
