استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
استضافة Intlayer ذاتيًا (Self-Hosting)
يمكن تشغيل Intlayer على بنيتك التحتية الخاصة دون الحاجة إلى حساب Intlayer Cloud. تتوفر ثلاثة إعدادات، يتم إدارتها جميعًا من خلال نفس برنامج التثبيت (install.sh، أو install.ps1 على نظام Windows، أو npx intlayer init infra):
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الإعداد | ما هو | اختره لـ |
|---|---|---|
| تطبيق سطح المكتب | لوحة تحكم أصلية لأنظمة macOS و Linux و Windows | عميل محلي، لا يتطلب استضافة |
| Docker شامل (All-in-one) | لوحة التحكم وواجهة برمجة التطبيقات (API) و MongoDB و Redis و MinIO في حاوية واحدة | للتجارب والتركيبات الصغيرة على جهاز واحد |
| Docker Compose | حاوية واحدة لكل خدمة، مع إمكانية استبدال أي مخزن بيانات بخدمة مُدارة | للإنتاج والتوسع وقواعد البيانات المُدارة |
جدول المحتويات
الصور والحزم المنشورة
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| العنصر المنشور | Docker Hub | مرآة GHCR | المحتويات |
|---|---|---|---|
| All-in-one container | intlayer/cms-all | ghcr.io/aymericzip/intlayer/cms-all | app + backend + MongoDB 8 + Redis + MinIO + Chromium |
| Dashboard (frontend) | intlayer/cms-frontend | ghcr.io/aymericzip/intlayer/cms-frontend | TanStack Start dashboard on Bun |
| API (backend) | intlayer/cms-backend | ghcr.io/aymericzip/intlayer/cms-backend | Fastify REST API on Bun + Chromium |
| Desktop app | GitHub releases | n/a | .dmg (macOS), .deb / .rpm / .AppImage (Linux), .exe / .msi (Windows) |
يتم بناء جميع الصور الثلاث من نفس الملف docker/selfhost/Dockerfile ويتم نشرها مع كل إصدار. تقوم حزمة Compose أيضًا بسحب الصور الرسمية mongo:8 و redis:8-alpine و quay.io/minio/minio.
الإعداد
يسأل برنامج التثبيت عن الإعداد المطلوب، ويتحقق من المتطلبات الأساسية (مع عرض تثبيت Docker)، ويكتب ملف البيئة مع المفاتيح السرية المنشأة مسبقًا، ويسحب الصور. لا يبدأ أي شيء تلقائيًا: تتطلب أوضاع Docker إعداد برنامج بريد أولاً، لذا ينتهي البرنامج بطباعة الأمر المطلوب تشغيله. إعادة التشغيل آمنة: لا يتم استبدال ملف البيئة الحالي أبدًا، مما يجعله أيضًا مسارًا للترقية.
لوحة تحكم Intlayer كتطبيق أصلي تم إنشاؤه باستخدام Tauri. يسجل الدخول إلى Intlayer Cloud (https://app.intlayer.org)، لذلك لا توجد حاجة للاستضافة. إنه الخيار المناسب عندما تفضل عميلاً محلياً بدلاً من علامة تبويب في المتصفح.
التثبيت
يقوم برنامج التثبيت بتنزيل الحزمة المناسبة لنظام التشغيل والمعالج لديك ثم يفتحها (macOS)، أو يثبتها (dpkg / rpm على Linux) أو يشغل معالج الإعداد (Windows). يمكنك أيضًا تنزيلها يدويًا من صفحة الإصدارات.
نسخ الكود إلى الحافظة
In PowerShell:
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
المتطلبات
- Node.js: يدمج التطبيق خادم لوحة التحكم ويشغله باستخدام ملف
nodeالثنائي على جهازك. قم بتثبيته من nodejs.org إذا لم يفتح التطبيق.
يتصل إصدار سطح المكتب المنشور بالواجهة الخلفية لـ Intlayer Cloud. يتطلب توجيهه إلى واجهة خلفية مستضافة ذاتيًا إعادة بناء التطبيق مع تعيين VITE_BACKEND_URL للإشارة إلى واجهة برمجة التطبيقات الخاصة بك، راجع القيود.
يعمل كل شيء داخل حاوية intlayer/cms-all واحدة، تحت إشراف s6-overlay، مع استمرار حفظ جميع مخازن البيانات على وحدة تخزين واحدة.
نسخ الكود إلى الحافظة
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الخدمة | منفذ (منافذ) المضيف | الغرض |
|---|---|---|
| app | 3000 | لوحة التحكم (واجهة مستخدم CMS) |
| backend | 3100 | واجهة برمجة تطبيقات REST (نقطة نهاية /health) |
| mongo | داخلي | MongoDB 8، مجموعة نسخ متماثلة بعقدة واحدة rs0 |
| redis | داخلي | قوائم انتظار المهام (BullMQ) والتخزين المؤقت |
| minio | 9000 (S3)، 9001 (وحدة التحكم) | تخزين كائنات متوافق مع S3 للصور الرمزية ولقطات الشاشة |
يتم إدارة ترتيب التمهيد من خلال تبعيات s6 (mongod ← تهيئة مجموعة النسخ، minio ← إنشاء الحاوية، ثم backend، ثم app)، وتتم إعادة تشغيل الخدمات عند الخروج، بحيث يتعافى التمهيد الأول ذاتيًا.
المتطلبات الأساسية
- Docker ≥ 24: يعرض برنامج التثبيت تثبيته (عبر get.docker.com على Linux، أو Homebrew على macOS). على نظام Windows، قم بتثبيت Docker Desktop (واجهة WSL 2 الخلفية) أولاً.
- المنافذ
3000و3100و9000و9001متاحة على المضيف. يجب أن يظل منفذ MinIO9000قابلاً للوصول من قبل المتصفح حيث يتم تحميل الأصول مباشرة منS3_PUBLIC_URL. - خادم بريد (mailer): مفتاح API لـ Resend أو مرحّل SMTP.
1. التثبيت
يكتب ./intlayer.env مع مفاتيح BETTER_AUTH_SECRET و S3_SECRET_ACCESS_KEY المنشأة مسبقًا، ويطرح بضعة أسئلة لملء الباقي، ويسحب intlayer/cms-all:latest.
نسخ الكود إلى الحافظة
In PowerShell:
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
2. الإجابة على أسئلة الإعداد
يطلب برنامج التثبيت ما يلي (اضغط Enter لقبول الاقتراح، ويمكن تغيير أي إجابة في الملف لاحقًا):
- النطاق الذي يُقدَّم عليه Intlayer. اتركه فارغًا للبقاء على
localhost. مع نطاق مثلexample.org، يقترحhttps://cms.example.orgللوحة التحكم وhttps://back.example.orgللواجهة الخلفية وhttps://s3.example.org/intlayerلتخزين الكائنات، ويكتبDOMAINوAPP_URLوBACKEND_URLوS3_PUBLIC_URL. انظر النطاق المخصص للخطوات التالية. - خادم البريد: Resend (مفتاح API) أو مرحّل SMTP (المضيف، المنفذ، بيانات الاعتماد)، بالإضافة إلى عنوان المرسل. يمكن تخطي هذه الخطوة وإجراؤها يدويًا لاحقًا.
- مفتاح OpenAI API اختياري لميزات الذكاء الاصطناعي.
بدون طرفية (على سبيل المثال عند تشغيل السكربت من CI)، يتم تخطي الأسئلة ولا يتم إنشاء سوى المفاتيح السرية. افتح intlayer.env واملأ إعدادات Resend أو SMTP يدويًا (انظر التفاصيل في خادم البريد العام):
نسخ الكود إلى الحافظة
3. التشغيل
هذا هو أمر التشغيل الذي يطبعه برنامج التثبيت (مع نطاق مخصص، يسبقه أمر docker build الذي ينتج intlayer/cms-all:custom، انظر النطاق المخصص):
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
تقوم أداة CLI بتشغيل برنامج التثبيت الذي يطبع الأمر docker run … الموضح في علامات التبويب الأخرى. الصقه في جهازك الطرفي بعد تكوين خادم البريد.
افتح http://localhost:3000 (أو عنوان URL الخاص بلوحة التحكم) واتبع إعداد التشغيل الأول. يقوم التمهيد الأول بتهيئة مجموعة النسخ والحاوية، لذا امنحه دقيقة واحدة.
النسخ الاحتياطي والترقية
يتم الاحتفاظ بجميع الحالات داخل وحدة التخزين intlayer-data (/data/mongo، /data/redis، /data/minio).
نسخ الكود إلى الحافظة
للترقية، أعد تشغيل برنامج التثبيت (يقوم بسحب أحدث صورة والاحتفاظ بملف intlayer.env)، ثم قم بتشغيل docker rm -f intlayer وأعد تشغيل أمر البدء. لاستخدام قاعدة بيانات MongoDB مُدارة بدلاً من المضمنة، عيّن MONGODB_URI في intlayer.env.
حاوية واحدة لكل خدمة على شبكة Compose خاصة. تستخدم لوحة التحكم وواجهة برمجة التطبيقات الصور المنشورة intlayer/cms-frontend و intlayer/cms-backend؛ وتستخدم مخازن البيانات صور mongo و redis و minio الرسمية.
نسخ الكود إلى الحافظة
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الخدمة | الصورة | الدور |
|---|---|---|
app | intlayer/cms-frontend | لوحة التحكم على المنفذ :3000؛ تنتظر حتى تكون الواجهة الخلفية جاهزة |
backend | intlayer/cms-backend | واجهة برمجة التطبيقات على المنفذ :3100 مع Chromium؛ تنتظر Mongo و Redis وحاوية MinIO |
mongo | mongo:8 | مجموعة نسخ بعقدة واحدة rs0، تتم تهيئتها بواسطة فحص الحالة الخاص بها |
redis | redis:8-alpine | قوائم الانتظار والتخزين المؤقت، واستمرارية الإلحاق فقط (append-only) |
minio | quay.io/minio/minio | تخزين S3 على المنفذ :9000، وحدة التحكم على :9001 |
minio-init | quay.io/minio/mc | تشغيل لمرة واحدة: ينشئ الحاوية وسياسة التنزيل المجهول الخاصة بها |
يتم حفظ البيانات في وحدات التخزين intlayer_mongo-data و intlayer_redis-data و intlayer_minio-data. تم تثبيت اتصالات الخدمة (MONGODB_URI و REDIS_URL و S3_ENDPOINT وعنوان URL الداخلي للواجهة الخلفية للعرض من جانب الخادم) في ملف compose ولها الأسبقية على .env، الذي يحتفظ فقط بالمفاتيح السرية والتكاملات الاختيارية.
المتطلبات الأساسية
- Docker ≥ 24 مع ملحق Compose: يعرض برنامج التثبيت تثبيته على Linux و macOS. على نظام Windows، قم بتثبيت Docker Desktop (واجهة WSL 2 الخلفية) أولاً.
- المنافذ
3000و3100و9000و9001متاحة على المضيف. - خادم بريد: مفتاح API لـ Resend أو مرحّل SMTP.
1. التثبيت
يكتب docker-compose.yml وملف .env مع المفاتيح السرية المنشأة في ./intlayer/، ويطرح أسئلة الإعداد نفسها التي يطرحها الوضع الشامل (النطاق، خادم البريد، مفتاح OpenAI)، ويسحب الصور.
نسخ الكود إلى الحافظة
Or by hand:
نسخ الكود إلى الحافظة
In PowerShell:
نسخ الكود إلى الحافظة
Or by hand:
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
2. تكوين خادم البريد
إذا تخطيت سؤال خادم البريد، فاملأ بيانات Resend أو SMTP في intlayer/.env، تمامًا كما في الحاوية الشاملة (انظر خادم البريد العام).
3. التشغيل
نسخ الكود إلى الحافظة
مع نطاق مخصص، يقوم برنامج التثبيت أيضًا بتنزيل docker-compose.build.yml ويصبح أمر التشغيل docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build (انظر النطاق المخصص).
افتح http://localhost:3000 (أو عنوان URL الخاص بلوحة التحكم) واتبع إعداد التشغيل الأول.
مخازن البيانات المُدارة
احذف الخدمة التي تستبدلها من ملف compose (بالإضافة إلى إدخال depends_on الخاص بها في backend)، وتجاوز المتغير المقابل:
نسخ الكود إلى الحافظة
تعمل المتغيرات S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY / S3_BUCKET_NAME بشكل مباشر مع أي مزود متوافق مع S3.
التوسع
الخدمتان app و backend عديمتا الحالة (stateless). خلف موازن التحميل، وبافتراض إزالة تعيينات منافذ المضيف الثابتة وتوجيه الوكيل حسب اسم الخدمة، سيعمل الأمر docker compose up -d --scale backend=3. يتم تنسيق المهام في الخلفية عبر Redis (BullMQ)، بحيث تشارك نسخ الواجهة الخلفية المتعددة قوائم الانتظار بأمان.
البناء من المصدر
يقوم ملف تجاوز بتبديل خدمتي Intlayer من image: إلى build:. من استنساخ المستودع:
نسخ الكود إلى الحافظة
بدون استنساخ، وجّه سياق البناء إلى المستودع نفسه بتعيين INTLAYER_BUILD_CONTEXT=https://github.com/aymericzip/intlayer.git#main في .env. تتبع وسائط البناء VITE_* الخاصة بلوحة التحكم القيم DOMAIN و APP_URL و BACKEND_URL من الملف نفسه، وهكذا يتم تطبيق النطاق المخصص.
النسخ الاحتياطي والترقية
نسخ الكود إلى الحافظة
إعدادات برنامج التثبيت
بدون --mode (أو INTLAYER_MODE)، يعرض برنامج التثبيت قائمة: desktop أو docker (شامل) أو compose. كما يقرأ بعض متغيرات البيئة؛ قم بتمريرها إلى الصدفة بدلاً من curl لأن الأمر يتم توجيهه بالأنابيب:
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| المتغير | القيمة الافتراضية | ينطبق على | الوصف |
|---|---|---|---|
INTLAYER_MODE | (asked) | all | desktop, docker or compose, same as --mode |
INTLAYER_DOWNLOAD_DIR | ~/Downloads | desktop | مكان حفظ مثبت التطبيق |
INTLAYER_IMAGE | intlayer/cms-all:latest | docker | All-in-one image to pull |
INTLAYER_ENV_FILE | ./intlayer.env | docker | مكان كتابة ملف البيئة |
INTLAYER_CONTAINER_NAME | intlayer | docker | اسم الحاوية |
INTLAYER_DATA_VOLUME | intlayer-data | docker | وحدة تخزين مسماة (named volume) مثبتة عند /data |
INTLAYER_APP_PORT | 3000 | docker | منفذ المضيف للوحة التحكم |
INTLAYER_API_PORT | 3100 | docker | منفذ المضيف لواجهة برمجة التطبيقات (API) |
INTLAYER_S3_PORT | 9000 | docker | Host port for the MinIO S3 API |
INTLAYER_CONSOLE_PORT | 9001 | docker | منفذ المضيف (Host port) لوحدة تحكم MinIO |
INTLAYER_COMPOSE_DIR | ./intlayer | compose | Where docker-compose.yml and .env are written |
INTLAYER_SELFHOST_REF | main | both | مرجع Git الذي يتم جلب ملف compose وقالب البيئة منه |
INTLAYER_BUILD_CONTEXT | …/intlayer.git#main | both | سياق البناء المستخدم عندما يتطلب النطاق المخصص إعادة بناء |
INTLAYER_CUSTOM_IMAGE | intlayer/cms-all:custom | docker | Tag of the all-in-one image built for a custom domain |
تغير متغيرات المنفذ جانب المضيف فقط من التعيين. تحتوي الصور المنشورة علىhttp://localhost:3000وhttp://localhost:3100وhttp://localhost:9000المترجمة في حزمة لوحة التحكم، لذا احتفظ بالإعدادات الافتراضية ما لم تقم ببناء صورتك الخاصة، راجع القيود.
إعداد التشغيل الأول
سيؤدي فتح لوحة التحكم على مثيل جديد (قاعدة بيانات فارغة) إلى إعادة التوجيه تلقائيًا إلى صفحة /init:
- أنشئ الحساب الأول. نظرًا لأن مجموعة المستخدمين فارغة، تتم ترقية هذا الحساب تلقائيًا إلى مسؤول متميز.
- يتم إرسال رسالة بريد إلكتروني للتحقق عبر Resend أو مرحّل SMTP الخاص بك. التحقق من البريد الإلكتروني إلزامي، ولهذا السبب يجب تكوين خادم البريد قبل البدء.
- انقر فوق الرابط الموجود في البريد الإلكتروني وقم بتسجيل الدخول.
بمجرد وجود مسؤول، يعيد المسار /init التوجيه إلى صفحة تسجيل الدخول العادية.
متغيرات البيئة
يقرأ كلا وضعي Docker نفس الملف (intlayer.env للحاوية أو .env لـ Compose) الذي تم إنشاؤه من docker/selfhost/.env.template.
مطلوب
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| المتغير | مثال | الوصف |
|---|---|---|
BETTER_AUTH_SECRET | (generated) | سر بحجم 32 بايت لتوقيع الجلسات |
S3_SECRET_ACCESS_KEY | (generated) | كلمة السر لخدمة MinIO المضمنة |
RESEND_API_KEY | (your key) | البريد الإلكتروني للمعاملات عبر Resend. مطلوب للإعداد الأولي ما لم يتم تكوين مرحل SMTP بدلاً منه (انظر البريد الإلكتروني العام) |
تقبل صورة all-in-one أيضًا قيمة فارغة لـS3_SECRET_ACCESS_KEY: فهي تُنشئ واحدة عند أول تشغيل وتحفظها في/data/.s3-secret-access-key. أما Docker Compose فلا يزال يتطلبها.
محدد بواسطة النشر
يتم تعيين هذه المتغيرات بواسطة الصورة (الشاملة) أو بواسطة ملف compose، ولا تحتاج إلى تجاوز إلا في حالة بنية غير قياسية. تُستثنى من ذلك DOMAIN و APP_URL و BACKEND_URL و S3_PUBLIC_URL: عند تعيينها في ملف env، تكون لها الأولوية في كلا الوضعين (انظر النطاق المخصص).
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| المتغير | الكل في واحد (All-in-one) | Docker Compose | الوصف |
|---|---|---|---|
PORT | 3100 | 3100 | منفذ استماع الواجهة الخلفية |
APP_URL | http://localhost:3000 | http://localhost:3000 | Public URL of the dashboard |
BACKEND_URL | http://localhost:3100 | http://localhost:3100 | Public URL of the backend API |
DOMAIN | localhost | localhost | نطاق ملفات تعريف الارتباط (Cookie domain) |
SELF_HOSTED | true | true | Disables the cloud-only API endpoints (billing, subscriptions, marketplace) |
MONGODB_URI | mongodb://127.0.0.1:27017/intlayer?replicaSet=rs0 | mongodb://mongo:27017/… | سلسلة اتصال MongoDB، تعمل أي مجموعة mongodb:// أو mongodb+srv:// |
REDIS_URL | redis://127.0.0.1:6379 | redis://redis:6379 | Redis |
S3_ENDPOINT | http://127.0.0.1:9000 | http://minio:9000 | MinIO (server-to-server) |
S3_PUBLIC_URL | http://localhost:9000/intlayer | http://localhost:9000/intlayer | Public URL for browser asset loading |
S3_BUCKET_NAME | intlayer | intlayer | Bucket name |
S3_ACCESS_KEY_ID | intlayer | intlayer | مفتاح الوصول لـ MinIO |
تتلقى خدمة app في Compose أيضًا INTLAYER_BACKEND_INTERNAL_URL=http://backend:3100: يصل المتصفح إلى واجهة برمجة التطبيقات على localhost:3100، ولكن العرض من جانب الخادم يتم داخل شبكة Compose ولذلك يجب استخدام اسم الخدمة.
النطاق المخصص
تقرأ الواجهة الخلفية عناوين URL العامة الخاصة بها وقت التشغيل، لكن لوحة التحكم تحتويها مضمّنة أثناء البناء: الصورتان المنشورتان intlayer/cms-frontend و intlayer/cms-all تعملان فقط على http://localhost:3000. لذلك يتطلب تقديم Intlayer على نطاقك الخاص أمرين، يُعدّهما برنامج التثبيت كليهما عندما تجيب على سؤال النطاق:
أربعة متغيرات في ملف env، تقرؤها الواجهة الخلفية (ملفات تعريف الارتباط، روابط البريد الإلكتروني، استدعاءات OAuth، عناوين URL للأصول) ويستخدمها
docker-compose.build.ymlكوسائط بناء:intlayer.envنسخ الكودنسخ الكود إلى الحافظة
صورة للوحة التحكم مبنية بهذه العناوين. يبنيها Docker مباشرة من المستودع، دون الحاجة إلى استنساخ:
shنسخ الكودنسخ الكود إلى الحافظة
ثم ضع وكيلًا عكسيًا (reverse proxy) مع TLS أمام الحاوية: cms.example.org → المنفذ 3000، back.example.org → 3100، s3.example.org → 9000. يجب أن تشترك المضيفات الثلاثة في اللاحقة DOMAIN، لأن ملف تعريف ارتباط الجلسة مقيّد بها.
اختياري (تتراجع الميزات بسلاسة عند غيابها)
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| المتغير | الميزة |
|---|---|
OPENAI_API_KEY | الترجمة بمساعدة الذكاء الاصطناعي وتدقيق المحتوى |
GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET | تسجيل الدخول عبر GitHub OAuth |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | تسجيل الدخول عبر Google OAuth |
GITLAB_CLIENT_ID, GITLAB_CLIENT_SECRET | تسجيل الدخول عبر GitLab OAuth |
MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET | تسجيل الدخول عبر Microsoft OAuth |
خادم البريد العام
تمر جميع رسائل البريد الإلكتروني الخاصة بالمعاملات، بما في ذلك رسائل البريد الإلكتروني غير التابعة للمؤسسة مثل عمليات إعادة تعيين كلمة المرور والروابط السحرية، عبر أحد وسيطي النقل العالميين:
- Resend: باستخدام
RESEND_API_KEY. - SMTP: باستخدام متغيرات
MAIL_SMTP_*. بمجرد تعيينMAIL_SMTP_HOST، يتم استخدام SMTP وتجاهلRESEND_API_KEY.
يلزم استخدام MAIL_PROVIDER فقط لفرض وسيلة نقل معينة إذا تم تكوين كليهما (على سبيل المثال MAIL_PROVIDER=resend للاحتفاظ بـ Resend عند وجود مضيف SMTP).
افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| المتغير | مثال | الوصف |
|---|---|---|
MAIL_FROM | Intlayer <no-reply@acme.com> | ترويسة المرسل لكلا وسيلتي النقل. تقبل عنوانًا مجردًا أو Name <email> |
MAIL_SMTP_HOST | smtp.acme.com | SMTP host. Setting it selects the SMTP transport |
MAIL_SMTP_PORT | 587 | SMTP port (defaults to 587) |
MAIL_SMTP_SECURE | false | Implicit TLS. Set true for port 465 |
MAIL_SMTP_USER | (your user) | اسم مستخدم SMTP (اختياري؛ احذفه للمرحلات غير الموثقة) |
MAIL_SMTP_PASSWORD | (your password) | SMTP password |
MAIL_PROVIDER | resend | تجاوز اختياري: smtp أو resend. اتركه غير محدد للتحديد التلقائي |
ترتيب الأسبقية: يتجاوز خادم البريد الخاص بالمؤسسة (المكون من لوحة تحكم المؤسسة) خادم البريد العام، ويتجاوز خادم البريد العام مفتاح Resend الافتراضي.
ربط مشروع Intlayer الخاص بك
بمجرد تشغيل الحزمة، قم بتكوين مشروعك للإشارة إلى الواجهة الخلفية ولوحة التحكم المستضافة ذاتيًا بدلاً من intlayer.org.
تكوين المشروع
نسخ الكود إلى الحافظة
import type { IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
editor: {
clientId: process.env.INTLAYER_CLIENT_ID,
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
/**
* URL of the self-hosted CMS dashboard.
* Default: https://app.intlayer.org
*/
cmsURL: process.env.INTLAYER_CMS_URL, // e.g. http://localhost:3000
/**
* URL of the self-hosted backend API.
* Default: https://back.intlayer.org
*/
backendURL: process.env.INTLAYER_BACKEND_URL, // e.g. http://localhost:3100
},
};
export default config;
قم بتعيين متغيرات البيئة في ملف .env الخاص بمشروعك:
نسخ الكود إلى الحافظة
أنشئ بيانات اعتماد الوصول في لوحة التحكم المستضافة ذاتيًا في المشاريع ← مفاتيح الوصول (http://localhost:3000/projects).
حزمة SDK @intlayer/api
عند استخدام حزمة SDK @intlayer/api برمجيًا، مرر backendURL بشكل صريح:
نسخ الكود إلى الحافظة
القيود
- النطاق المخصص يتطلب إعادة البناء. يتم تضمين جميع عناوين URL الخاصة بـ
VITE_*الموجهة للمتصفح في لوحة التحكم أثناء وقت البناء، وتأتي الصور المنشورة (وتطبيق سطح المكتب) مع قيمlocalhost/ Intlayer Cloud. افتراضيًا، يجب الوصول إلى لوحة التحكم علىhttp://localhost:3000، والواجهة الخلفية على:3100، و MinIO على:9000؛ وإعادة تعيين منافذ المضيف لها التأثير نفسه. يُعدّ برنامج التثبيت كل شيء لإعادة البناء من المستودع عندما تزوده بنطاق (انظر النطاق المخصص)، لكن البناء نفسه يستغرق عدة دقائق. توجيه تطبيق سطح المكتب إلى واجهة خلفية مستضافة ذاتيًا غير مدعوم. - يتطلب إرسال البريد الإلكتروني خادم بريد فعال. يفرض إعداد التشغيل الأول التحقق من البريد الإلكتروني، لذلك يجب تكوين
RESEND_API_KEYأو مرحّل SMTP (MAIL_SMTP_*). بعد تسجيل دخول المسؤول الأول، يمكن لكل مؤسسة أيضًا تكوين خادم بريد SMTP أو Resend الخاص بها من لوحة التحكم. - يحتاج تطبيق سطح المكتب إلى Node.js على الجهاز لبدء خادمه المدمج.
- لا يوجد مساعد للتوثيق. يعتمد مساعد التوثيق بالذكاء الاصطناعي في intlayer.org (
/api/ai/ask،/api/search/doc) على نحو 130 ميغابايت من التضمينات (embeddings) المحسوبة مسبقًا للتوثيق والتي لا تتضمنها صور الاستضافة الذاتية؛ لذا لا يتم تسجيل هذين المسارين في وضع الاستضافة الذاتية. لا تتأثر ميزات الذكاء الاصطناعي الخاصة بلوحة التحكم (الترجمة، التدقيق، الإكمال التلقائي، الدردشة) ولا تحتاج إلا إلىOPENAI_API_KEY.
روابط مفيدة
- توثيق Intlayer CMS
- مرجع التكوين
- CMS SDK:
@intlayer/api - إصدارات تطبيق سطح المكتب
- Docker Hub:
intlayer/cms-all،intlayer/cms-frontend،intlayer/cms-backend، مرآة GHCR:ghcr.io/aymericzip/intlayer/ docker/selfhost/: ملف Dockerfile، وdocker-compose.yml، و.env.template
