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

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 باستخدام كائنات وحقول مخصّصة ووظائف منطقية ومكوّنات الواجهة الأمامية ومهارات الذكاء الاصطناعي وغير ذلك — جميعها تُدار ككود. بدلًا من تكوين كل شيء عبر واجهة المستخدم، تعرّف نموذج بياناتك ومنطقك في TypeScript وتقوم بنشره إلى مساحة عمل واحدة أو أكثر.

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

قبل أن تبدأ، تأكّد من تثبيت ما يلي على جهازك:
  • Node.js 24+نزّل من هنا
  • Yarn 4 — يأتي مع Node.js عبر Corepack. قم بتمكينه عبر تشغيل corepack enable
  • Dockerنزّل من هنا. مطلوب لتشغيل مثيل محلي من Twenty. غير مطلوب إذا كان لديك خادم Twenty قيد التشغيل بالفعل.

قم بإنشاء تطبيقك الأول

أنشئ هيكل تطبيقك

افتح الطرفية وشغّل:
npx create-twenty-app@latest my-twenty-app
سيُطلب منك إدخال اسم ووصف لتطبيقك. اضغط Enter لقبول الإعدادات الافتراضية. سيؤدي ذلك إلى إنشاء مجلد جديد باسم my-twenty-app يحتوي على كل ما تحتاجه.

إعداد مثيل محلي من Twenty

ستسأل أداة إنشاء الهيكل:
هل ترغب في إعداد مثيل محلي من Twenty؟
  • اكتب yes (موصى به) — سيؤدي ذلك إلى سحب صورة Docker twenty-app-dev وبدء تشغيل خادم Twenty محلي على المنفذ 2020. تأكّد من أن Docker قيد التشغيل قبل المتابعة.
  • اكتب no — اختر هذا إذا كان لديك خادم Twenty يعمل محليًا بالفعل.
هل يجب بدء المثيل المحلي؟

سجّل الدخول إلى مساحة العمل الخاصة بك

بعد ذلك، ستُفتح نافذة متصفح تعرض صفحة تسجيل الدخول الخاصة بـ Twenty. سجّل الدخول باستخدام حساب العرض التوضيحي المُجهَّز مسبقًا:
  • البريد الإلكتروني: tim@apple.dev
  • كلمة المرور: tim@apple.dev
شاشة تسجيل الدخول إلى Twenty

قم بتفويض التطبيق

بعد تسجيل الدخول، ستظهر لك شاشة تفويض. يتيح هذا لتطبيقك التفاعل مع مساحة العمل الخاصة بك. انقر Authorize للمتابعة.
شاشة تفويض واجهة الأوامر (CLI) الخاصة بـ Twenty
بمجرد منح التفويض، ستؤكّد الطرفية أن كل شيء قد تم إعداده.
تم إنشاء هيكل التطبيق بنجاح

ابدأ التطوير

انتقل إلى مجلد تطبيقك الجديد وابدأ خادم التطوير:
cd my-twenty-app
yarn twenty dev
يقوم هذا بمراقبة ملفات المصدر لديك، وإعادة البناء عند كل تغيير، ومزامنة تطبيقك تلقائيًا مع خادم Twenty المحلي. يفترض أن ترى لوحة حالة مباشرة في الطرفية. للحصول على مخرجات أكثر تفصيلاً (سجلات البناء، طلبات المزامنة، تتبعات الأخطاء)، استخدم العلم --verbose:
yarn twenty dev --verbose
وضع التطوير متاح فقط على مثيلات Twenty التي تعمل في وضع التطوير (NODE_ENV=development). المثيلات الإنتاجية ترفض طلبات مزامنة وضع التطوير. استخدم yarn twenty deploy للنشر إلى خوادم الإنتاج — اطّلع على نشر التطبيقات للتفاصيل.
مخرجات الطرفية في وضع التطوير

مزامنة لمرة واحدة باستخدام yarn twenty dev --once

إذا كنت لا تريد تشغيل مراقب في الخلفية (مثلًا في خط أنابيب CI، أو خطاف Git، أو سير عمل مُؤتمت عبر سكربت)، فمرِّر الخيار --once. يُشغِّل خط الأنابيب نفسه مثل yarn twenty dev — إنشاء بيان البناء، تجميع الملفات، الرفع، المزامنة، إعادة توليد عميل API مضبوط الأنواع — ولكنه ينهي التنفيذ فور اكتمال المزامنة:
yarn twenty dev --once
أمرالسلوكمتى يُستخدم
yarn twenty devيراقب ملفات المصدر ويعيد المزامنة عند كل تغيير. يستمر بالتشغيل حتى توقفه.تطوير محلي تفاعلي — تريد لوحة حالة مباشرة وحلقة تغذية راجعة فورية.
yarn twenty dev --onceيجري عملية بناء واحدة + مزامنة واحدة، ثم ينهي التنفيذ برمز 0 عند النجاح أو 1 عند الفشل.البرامج النصية، وCI، وخطافات ما قبل الالتزام، ووكلاء الذكاء الاصطناعي، وأي سير عمل غير تفاعلي.
كلا الوضعين يتطلبان خادم Twenty يعمل في وضع التطوير وجهة بعيدة موثَّقة — تنطبق المتطلبات المسبقة نفسها.

اعرض تطبيقك في Twenty

افتح http://localhost:2020/settings/applications#developer في متصفحك. انتقل إلى Settings > Apps واختر علامة التبويب Developer. يُفترض أن ترى تطبيقك مُدرجًا تحت Your Apps:
قائمة "Your Apps" تعرض "My twenty app"
انقر على My twenty app لفتح تسجيل التطبيق الخاص به. التسجيل عبارة عن سجل على مستوى الخادم يصف تطبيقك — اسمه، والمعرّف الفريد، وبيانات اعتماد OAuth، والمصدر (محلي، npm، أو tarball). يُخزَّن على الخادم، وليس داخل أي مساحة عمل محددة. عند تثبيت تطبيق في مساحة عمل، ينشئ Twenty تطبيقًا بنطاق مساحة العمل يُشير مرة أخرى إلى هذا التسجيل. يمكن تثبيت تسجيل واحد عبر عدة مساحات عمل على الخادم نفسه.
تفاصيل تسجيل التطبيق
انقر View installed app لعرض التطبيق المثبّت. تعرض علامة التبويب About الإصدار الحالي وخيارات الإدارة:
التطبيق المثبّت — علامة تبويب About
انتقل إلى علامة التبويب Content لمشاهدة كل ما يقدمه تطبيقك — الكائنات، والحقول، ودوال المنطق، والوكلاء:
التطبيق المثبّت — علامة تبويب Content
أنت جاهز تمامًا! حرّر أي ملف في src/ وسيتم التقاط التغييرات تلقائيًا.

ما الذي يمكنك بناؤه

تتكون التطبيقات من كيانات — يُعرَّف كل منها كملف TypeScript يحتوي على export default واحد:
كيانماذا يفعل
الكائنات والحقولعرّف نماذج بيانات مخصّصة (مثل Post Card، Invoice) مع حقول محددة النوع
الوظائف المنطقيةدوال TypeScript على جانب الخادم يتم تشغيلها عبر مسارات HTTP، وجداول cron، أو أحداث قاعدة البيانات
المكوّنات الأماميةمكوّنات React تُعرَض داخل واجهة مستخدم Twenty (اللوحة الجانبية، الودجات، قائمة الأوامر)
المهارات والوكلاءقدرات الذكاء الاصطناعي — تعليمات قابلة لإعادة الاستخدام ومساعدون مستقلون ذاتيًا
طرق العرض والتنقّلطرق عرض القوائم مُعدّة مسبقًا وعناصر قائمة الشريط الجانبي لكائناتك
تخطيطات الصفحاتصفحات تفاصيل سجلات مخصصة تتضمن علامات تبويب وعناصر واجهة
انتقل إلى بناء التطبيقات للاطلاع على دليل مفصّل لكل نوع من الكيانات.

هيكل المشروع

تولّد أداة إنشاء الهيكل بنية الملفات التالية:
my-twenty-app/
  package.json
  yarn.lock
  .gitignore
  .nvmrc
  .yarnrc.yml
  .oxlintrc.json
  tsconfig.json
  tsconfig.spec.json                          # TypeScript config for tests
  vitest.config.ts                            # Vitest test runner configuration
  LLMS.md
  README.md
  .github/
    └── workflows/
        └── ci.yml                            # GitHub Actions CI workflow
  public/                                     # Public assets (images, fonts, etc.)
  src/
  ├── application-config.ts                   # Required — main application configuration
  ├── default-role.ts                         # Default role for logic functions
  ├── constants/
  │   └── universal-identifiers.ts            # Auto-generated UUIDs and app metadata
  └── __tests__/
      ├── setup-test.ts                       # Test setup (server health check, config)
      └── app-install.integration-test.ts     # Integration test

البدء من مثال

للبدء من مثال أكثر اكتمالًا يضم كائنات وحقولًا مخصّصة، ودوال المنطق، ومكوّنات الواجهة الأمامية، وغير ذلك، استخدم الخيار --example:
npx create-twenty-app@latest my-twenty-app --example postcard
تُستمد الأمثلة من الدليل twenty-apps/examples على GitHub. يمكنك أيضًا إنشاء هيكل لكيانات فردية داخل مشروع قائم باستخدام yarn twenty add (انظر بناء التطبيقات).

الملفات الرئيسية

ملف / مجلدالغرض
package.jsonيصرّح باسم تطبيقك وإصداره واعتماداته. يتضمن نصًا برمجيًا باسم twenty بحيث يمكنك تشغيل yarn twenty help للاطلاع على جميع الأوامر.
src/application-config.tsمطلوب. ملف الإعداد الرئيسي لتطبيقك.
src/default-role.tsالدور الافتراضي الذي يتحكم بما يمكن لدوال المنطق الوصول إليه.
src/constants/universal-identifiers.tsمعرّفات UUID وبيانات التعريف للتطبيق، والمولَّدة تلقائيًا (اسم العرض، الوصف).
src/__tests__/اختبارات تكامل (إعداد + اختبار مثال).
public/أصول ثابتة (صور، خطوط) تُقدَّم مع تطبيقك.

خادم التطوير المحلي

لقد قامت أداة إنشاء الهيكل بالفعل بتشغيل خادم Twenty محليًا لك. لإدارته لاحقًا، استخدم yarn twenty server:
أمرالوصف
yarn twenty server startبدء الخادم المحلي (يسحب الصورة إذا لزم الأمر)
yarn twenty server start --port 3030ابدأ على منفذ مخصّص
yarn twenty server start --testابدأ مثيل اختبار منفصل على المنفذ 2021
yarn twenty server stopإيقاف الخادم (مع الحفاظ على البيانات)
yarn twenty server statusعرض حالة الخادم، وعنوان URL، وبيانات الاعتماد
yarn twenty server logsبث سجلات الخادم
yarn twenty server logs --lines 100عرض آخر 100 سطر من السجلات
yarn twenty server resetحذف جميع البيانات والبدء من جديد
يتم الاحتفاظ بالبيانات عبر عمليات إعادة التشغيل في وحدتي تخزين Docker (twenty-app-dev-data لـ PostgreSQL، وtwenty-app-dev-storage للملفات). استخدم reset لمسح كل شيء والبدء من جديد.

تشغيل مثيل الاختبار

مرر --test إلى أي أمر server لإدارة مثيل ثانٍ معزول تمامًا — مفيد لتشغيل اختبارات التكامل أو للتجربة من دون لمس بيانات التطوير الرئيسية لديك.
أمرالوصف
yarn twenty server start --testبدء مثيل الاختبار (المنفذ الافتراضي 2021)
yarn twenty server stop --testإيقاف مثيل الاختبار
yarn twenty server status --testعرض حالة مثيل الاختبار، وعنوان URL، وبيانات الاعتماد
yarn twenty server logs --testبث سجلات مثيل الاختبار
yarn twenty server reset --testمحو بيانات الاختبار والبدء من جديد
يعمل مثيل الاختبار في حاوية Docker خاصة به (twenty-app-dev-test) مع وحدات تخزين مخصصة (twenty-app-dev-test-data, twenty-app-dev-test-storage) وتهيئة مستقلة، بحيث يمكنه العمل بالتوازي مع مثيلك الرئيسي من دون تعارضات. اجمع --test مع --port لتجاوز القيمة الافتراضية 2021.
يتطلّب الخادم أن يكون Docker قيد التشغيل. إذا ظهرت لك رسالة خطأ “Docker not running”، فتأكّد من تشغيل Docker Desktop (أو خادوم Docker).

إعداد يدوي (بدون المهيئ)

إذا كنت تفضّل إعداد الأمور بنفسك بدلًا من استخدام create-twenty-app، فيمكنك ذلك بخطوتين. 1. أضِف twenty-sdk وtwenty-client-sdk كاعتمادات:
yarn add twenty-sdk twenty-client-sdk
2. أضِف نصًا برمجيًا باسم twenty إلى package.json لديك:
{
  "scripts": {
    "twenty": "twenty"
  }
}
يمكنك الآن تشغيل yarn twenty dev، وyarn twenty help، وجميع الأوامر الأخرى.
لا تثبّت twenty-sdk عالميًا. استخدمه دائمًا كاعتماد محلي للمشروع بحيث يتمكن كل مشروع من تثبيت إصداره الخاص.

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

إذا واجهت مشاكل:
  • تأكّد من أن Docker قيد التشغيل قبل تشغيل أداة إنشاء الهيكل مع مثيل محلي.
  • تأكّد من أنك تستخدم Node.js 24+ (node -v للتحقق).
  • تأكّد من تمكين Corepack (corepack enable) حتى يتوفر Yarn 4.
  • جرّب حذف node_modules وتشغيل yarn install مرة أخرى إذا بدت الاعتمادات معطّلة.
ما زلت عالقًا؟ اطلب المساعدة على خادم Twenty على Discord.