> ## Content Index
> Fetch the complete content index at: https://arabroot.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# Formbricks: استبيانات ونماذج حديثة على سيرفرك
- URL: https://arabroot.io/articles/تثبيت-formbricks-للنماذج-والاستبيانات/
- Published: 2026-10-09T06:45:00.000Z
- Updated: 2026-10-11T22:50:38.000Z
- Description: كيف تثبت Formbricks وتنشئ استبياناً عربياً بالرابط أو داخل تطبيقك، وتبقى الإجابات في قاعدة بياناتك على سيرفرك.
- Author: فريق عرب رووت
- Tags: الأدلة التقنية, الاستضافة الذاتية والتطبيقات, تطبيقات لفريقك, الاستضافة الذاتية, Formbricks

في [دليل LimeSurvey](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-limesurvey-%D9%84%D9%84%D8%A7%D8%B3%D8%AA%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA/) بنينا استبياناً عربياً طويلاً يرسل رابطه إلى المشاركين، وهذا ما تحتاجه في استطلاعات الرأي والأبحاث، ولكن هناك نوعاً آخر من الأسئلة يحتاجه فريق المنتج كل يوم: سؤال قصير يظهر للمستخدم داخل التطبيق بعد أن يستخدم ميزة جديدة، أو نموذج من ثلاثة أسئلة ترسله لعملائك في رسالة، وهنا يدفع كثير من الفرق اشتراكات شهرية في خدمات مثل Typeform. وفي هذا المقال من مرحلة [المستندات والنماذج والتوقيع والحجز](https://arabroot.io/start/#stage-office) سوف نثبت Formbricks، وهو أداة استبيانات مفتوحة المصدر تعمل بالرابط وداخل المواقع والتطبيقات، ونختبر دعمه للعربية واتجاه الكتابة من اليمين إلى اليسار RTL بصراحة، ونرى أين تحفظ الإجابات.

وسوف نناقش في هذا المقال ما يلي:

- ما هو Formbricks، والفرق بين الاستبيان بالرابط Link Survey والاستبيان داخل الموقع أو التطبيق.
- الترخيص كما في المستودع: AGPL للنواة، وترخيص Enterprise لمجلد `ee`.
- ما الذي تشغله فعلاً في الإصدار 6، وتثبيته بال Docker Compose بإصدارات محددة، ومشكلة واجهتنا في أول تشغيل.
- استبيان عربي: ما الذي يعمل مباشرة، وما الذي تحتاج أن تترجمه بنفسك.
- أين تذهب الإجابات، وكيف تضع الاستبيان داخل موقعك.
- متى تختار Formbricks ومتى يبقى LimeSurvey أنسب، وما تغيره قبل الإنتاج.

## ما هو Formbricks؟

Formbricks منصة استبيانات Surveys ونماذج Forms تصف نفسها بأنها منصة لإدارة تجربة العملاء Experience Management، وتنشر الاستبيان بطريقتين، والصورة التالية تبينهما: الأولى الاستبيان بالرابط Link Survey، وهو صفحة مستقلة على سيرفرك ترسل رابطها بالبريد أو المحادثة أو رمز QR، ولا يحتاج أي تعديل في تطبيقك، والثانية الاستبيان داخل الموقع أو التطبيق Website and App Survey، حيث تضيف مكتبة Formbricks إلى الكود، فيظهر السؤال للمستخدم المناسب عندما يقوم بفعل معين، مثل الضغط على زر الترقية، وفي الحالتين تعود الإجابات إلى سيرفرك:

![مخطط فيه جوال يفتح رابط استبيان من بريد أو محادثة أو رمز QR، وحاسوب فيه تطبيقك مع مكتبة Formbricks يظهر الاستبيان عند فعل معين، والاثنان يرسلان الإجابات إلى سيرفرك حيث Formbricks وPostgreSQL، ثم يقرأ فريقك النتائج](https://arabroot.io/content/images/2026/10/formbricks-01-survey-channels.webp)

الاستبيان بالرابط لا يحتاج كوداً، والاستبيان داخل التطبيق يحتاج مكتبة Formbricks

وقد يتساءل البعض: لماذا لا نكتفي بنموذج HTML بسيط في التطبيق يحفظ الإجابات في جدول؟ والإجابة أن هذا يكفي لسؤال واحد ثابت، ولكنه يصبح عبئاً عندما تريد أن تغير الأسئلة دون إصدار جديد، وأن تحدد من يرى الاستبيان وكم مرة، وأن تضع منطقاً شرطياً Conditional Logic بين الأسئلة، وأن تقرأ النتائج في لوحة جاهزة، وهذه هي الأجزاء التي تقدمها الأداة.

## الترخيص كما في المستودع

قرأنا [ملف الترخيص](https://github.com/formbricks/formbricks/blob/6.0.2/LICENSE?ref=arabroot.io) عند الإصدار [6.0.2](https://github.com/formbricks/formbricks/releases/tag/6.0.2?ref=arabroot.io) بتاريخ 1 أكتوبر 2026، وهو يقسم الكود كما يلي: كل ما في المجلد `apps/web/modules/ee` يخضع [لترخيص Enterprise](https://github.com/formbricks/formbricks/blob/6.0.2/apps/web/modules/ee/LICENSE?ref=arabroot.io)، الذي يسمح بتعديل الكود وتجربته للتطوير والاختبار، ولا يسمح باستخدامه في الإنتاج دون اشتراك، ومجلدات مكتبات JavaScript وAndroid وiOS وال API تحت ترخيص MIT إن وجدت، وكل ما سوى ذلك تحت AGPLv3\. ولاحظ أن الكود كله في Docker Image واحد، والفرق في المفتاح: الميزات التي في مجلد `ee` لا تعمل دون رخصة.

وبحسب [صفحة الترخيص في التوثيق](https://formbricks.com/docs/self-hosting/advanced/license?ref=arabroot.io) فالنسخة المجتمعية Community Edition تشمل الاستبيانات بالرابط وداخل المواقع والتطبيقات، والاستبيانات متعددة اللغات، أما الدخول الموحد SSO بال OIDC وSAML، والفرق Teams والصلاحيات، وسجلات التدقيق Audit Logs، وإدارة جهات الاتصال Contacts والشرائح Segments، والحصص Quotas، وإخفاء عبارة «Powered by Formbricks»، فكلها في Enterprise. وقد شرحنا معنى AGPL وما يلزمك به في [مقال التراخيص](https://arabroot.io/articles/%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A7%D8%AA-%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D8%B5%D8%AF%D8%B1-%D9%88%D8%AA%D8%B1%D8%A7%D8%AE%D9%8A%D8%B5%D9%87%D8%A7/).

## ما الذي تشغله فعلاً في الإصدار 6؟

قد تتوقع أن أداة استبيانات تحتاج تطبيق ويب وقاعدة بيانات فقط، ولكن ملف [docker-compose.yml](https://github.com/formbricks/formbricks/blob/6.0.2/docker/docker-compose.yml?ref=arabroot.io) في الإصدار 6 يشغل الخدمات التي في الصورة التالية، وقد قسنا استهلاك الذاكرة لكل منها في التجربة وهي بلا حمل:

![مخطط فيه المتصفح ثم Reverse Proxy ثم خدمات Docker Compose: تطبيق formbricks يتصل بقاعدة postgres وredis من نوع Valkey وspicedb للصلاحيات، وخدمتا hub وcube تقرآن من postgres، وتخزين S3 اختياري للملفات المرفوعة، وحاويات تعمل مرة واحدة للترحيل، وأرقام الذاكرة المقاسة لكل خدمة](https://arabroot.io/content/images/2026/10/formbricks-02-stack.webp)

ست خدمات تعمل باستمرار وخمس تعمل مرة واحدة عند التشغيل، والمنفذ المنشور واحد فقط

في الصورة أعلاه لاحظ التالي:

- **formbricks** هو تطبيق الويب ولوحة الإدارة وصفحات الاستبيانات، وحجم ال Image وحدها 2.54 GB عندنا، فاحسب مساحة القرص قبل التثبيت.
- **postgres** من Image باسم pgvector لأن الإصدار 6 يستخدم إضافة pgvector، وفيها الاستبيانات والإجابات وبيانات الخدمات الأخرى.
- **spicedb** من مشروع AuthZed، ويحفظ الصلاحيات: من يستطيع أن يرى أي مساحة عمل Workspace وأي استبيان، وقد أصبح جزءاً أساسياً في الإصدار 6.
- **hub** و**cube** لبيانات الملاحظات Feedback والتحليلات، وكلاهما يقرأ من قاعدة البيانات نفسها.
- **S3** اختياري، ولكن دونه يظهر تحذير في المحرر بأن رفع الملفات قد يفشل، أي أن سؤال رفع ملف لن يعمل.

ولا يذكر [دليل التثبيت](https://formbricks.com/docs/self-hosting/setup/docker?ref=arabroot.io) حداً أدنى للذاكرة أو المعالج، ومجموع ما قسناه نحو 1 GB دون حمل، لذلك لا ننصح بأقل من 2 GB للسيرفر، ويفضل 4 GB إذا كانت معه خدمات أخرى.

## التثبيت بال Docker Compose

شغلنا التجربة على Docker Engine 29.8.0، والمنفذ مربوط بالعنوان 127.0.0.1، واسم المشروع `lab-office2-fb` لأنه اسم بيئة التجربة عندنا. وإذا لم يكن Docker مثبتاً فقد شرحنا [تثبيت Docker على Ubuntu](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-docker-%D8%B9%D9%84%D9%89-ubuntu/). وأول خطوة أن ننزل ملفات الإصدار نفسه الذي نشغله، لا ملفات الفرع الرئيسي، والسبب أن ملف Compose يتغير بين الإصدارات:

```bash
mkdir formbricks && cd formbricks
V=6.0.2
RAW=https://raw.githubusercontent.com/formbricks/formbricks/$V/docker
curl -fsSLO $RAW/docker-compose.yml
curl -fsSLO $RAW/authzed-postgres-bootstrap.sh
mkdir -p cube/schema
curl -fsSL -o cube/cube.js $RAW/cube/cube.js
curl -fsSL -o cube/schema/FeedbackRecords.js $RAW/cube/schema/FeedbackRecords.js
```

### تثبيت الإصدارات وعنوان التطبيق

ملف Compose الرسمي يستخدم `latest` لتطبيق Formbricks ولخدمة hub، و`pg18` لقاعدة البيانات، وهذا يعني أن أي إعادة تشغيل بعد `docker compose pull` قد ترفعك إلى إصدار لم تقرأ ملاحظاته، لذلك نثبت الإصدارات، ونربط المنفذ ب 127.0.0.1، ونضع عنوان التطبيق، ثم ننشئ الأسرار الثلاثة التي يتركها الملف فارغة:

```bash
sed -i 's|image: pgvector/pgvector:pg18|image: pgvector/pgvector:0.8.7-pg18|; s|ghcr.io/formbricks/formbricks:latest|ghcr.io/formbricks/formbricks:6.0.2|; s|ghcr.io/formbricks/hub${HUB_IMAGE_REF:-:latest}|ghcr.io/formbricks/hub:0.8.7|; s|- 3000:3000|- "127.0.0.1:28302:3000"|' docker-compose.yml
sed -i '/WEBAPP_URL:/s|WEBAPP_URL:.*|WEBAPP_URL: "http://127.0.0.1:28302"|; /NEXTAUTH_URL:/s|NEXTAUTH_URL:.*|NEXTAUTH_URL: "http://127.0.0.1:28302"|' docker-compose.yml
for k in NEXTAUTH_SECRET ENCRYPTION_KEY CRON_SECRET; do
  v=$(openssl rand -hex 32); sed -i "/$k:\$/s/$k:.*/$k: $v/" docker-compose.yml
done
```

في الإعداد أعلاه لاحظ التالي:

- اخترنا `hub:0.8.7` لأنه الإصدار الذي يشير إليه `latest` في وقت التجربة، وقد تأكدنا من ذلك بمقارنة البصمة Digest للوسمين في سجل ghcr.io، وكذلك `formbricks:6.0.2`.
- خدمة redis في الملف الرسمي مثبتة أصلاً ببصمة Digest، وcube بالوسم `1.7.47-1`، وspicedb بالوسم `v1.52.0`، فلم نغيرها.
- `WEBAPP_URL` هو العنوان الذي تبنى منه روابط الاستبيانات، وفي الإنتاج يكون عنوان HTTPS العام مثل `https://forms.example.com`.
- `ENCRYPTION_KEY` يشفر بعض البيانات في القاعدة، فإذا فقدته بعد التشغيل لا تستطيع قراءتها، لذلك يحفظ مع النسخ الاحتياطي.

بعد ذلك ننشئ ملف `.env` بالأسرار التي يقرأها الملف من المتغيرات، بالأسماء نفسها التي يكتبها سكربت التثبيت الرسمي `formbricks.sh`:

```bash
umask 077
cat > .env <<EOF
POSTGRES_PASSWORD=$(openssl rand -hex 32)
HUB_API_KEY=$(openssl rand -hex 32)
CUBEJS_API_SECRET=$(openssl rand -hex 32)
CUBEJS_JWT_ISSUER=formbricks-web
CUBEJS_JWT_AUDIENCE=formbricks-cube
AUTHZED_TOKEN=$(openssl rand -hex 32)
AUTHZED_DATABASE_PASSWORD=$(openssl rand -hex 32)
AUTHZED_ENABLED=true
AUTHZED_CONSISTENCY=fully_consistent
FORMBRICKS_AUTHZED_V6_MIGRATION_ACKNOWLEDGED=true
EOF
docker compose -p lab-office2-fb up -d
```

### أول تشغيل: خطأ في متغيرات AuthZed

نزلت ال Images وبدأت القاعدة وredis، ثم توقف التشغيل بهذا السطر:

```text
service "formbricks-migrate" didn't complete successfully: exit 1
```

وعند قراءة سجل الخدمة:

```bash
docker logs lab-office2-fb-formbricks-migrate-1 2>&1 | head -3
```

```text
Invalid environment variables:
  - AUTHZED_ENDPOINT: AUTHZED_ENDPOINT is required when AuthZed is enabled
  - AUTHZED_SYSTEM_KEY: AUTHZED_SYSTEM_KEY is required when AuthZed is enabled {
```

والسبب أن خدمة الترحيل `formbricks-migrate` تقرأ ملف `.env` فترى `AUTHZED_ENABLED=true`، ولكن قسم `environment` الخاص بها لا يحتوي على `AUTHZED_ENDPOINT` و`AUTHZED_SYSTEM_KEY`، فهذان المتغيران معرفان بقيم افتراضية في خدمة `formbricks` وخدمات AuthZed فقط. والحل أن نضيفهما إلى `.env` بالقيم الافتراضية نفسها التي في الملف، ثم نعيد التشغيل:

```bash
printf 'AUTHZED_ENDPOINT=spicedb:50051\nAUTHZED_SYSTEM_KEY=formbricks\n' >> .env
docker compose -p lab-office2-fb up -d
docker compose -p lab-office2-fb ps -a --format 'table {{.Service}}\t{{.Image}}\t{{.Status}}'
```

والمخرج سوف يكون كما يلي:

```text
SERVICE                IMAGE                                                                                   STATUS
authzed-db-bootstrap   pgvector/pgvector:0.8.7-pg18                                                            Exited (0) 51 minutes ago
authzed-initialize     ghcr.io/formbricks/formbricks:6.0.2                                                     Exited (0) 51 minutes ago
cube                   ghcr.io/formbricks/cube:1.7.47-1                                                        Up 51 minutes (healthy)
formbricks             ghcr.io/formbricks/formbricks:6.0.2                                                     Up 51 minutes
formbricks-migrate     ghcr.io/formbricks/formbricks:6.0.2                                                     Exited (0) 51 minutes ago
hub                    ghcr.io/formbricks/hub:0.8.7                                                            Up 51 minutes (healthy)
hub-migrate            ghcr.io/formbricks/hub:0.8.7                                                            Exited (0) 51 minutes ago
postgres               pgvector/pgvector:0.8.7-pg18                                                            Up 52 minutes (healthy)
redis                  valkey/valkey@sha256:e0eb7c480958d32bdc4357a74bdd70653ae15f2f9b4c93c4a5a9fad1dc471c84   Up 52 minutes (healthy)
spicedb                authzed/spicedb:v1.52.0                                                                 Up 51 minutes (healthy)
spicedb-migrate        authzed/spicedb:v1.52.0                                                                 Exited (0) 51 minutes ago
```

ولاحظ أن الخدمات الخمس التي حالتها `Exited (0)` طبيعية، فهي تعمل مرة واحدة لإنشاء الجداول والصلاحيات ثم تنتهي، أما إذا رأيت `Exited (1)` فاقرأ سجلها قبل أي شيء.

## الحساب الأول والمنظمة

عند فتح `http://127.0.0.1:28302` تظهر صفحة ترحيب ثم صفحة **Create Administrator**، وأول حساب ينشأ هو مدير النظام، ثم تطلب الأداة اسم المنظمة Organization، ثم دعوة الأعضاء، وهنا ظهرت لنا رسالة SMTP not configured، لأننا لم نضع إعدادات البريد، فتخطينا الدعوات. ولاحظ أن ملف Compose يعطل التحقق من البريد واستعادة كلمة المرور بالمتغيرين `EMAIL_VERIFICATION_DISABLED` و`PASSWORD_RESET_DISABLED`، وهذا مناسب للتجربة فقط، أما في الإنتاج فاضبط SMTP كما في [مقال البريد التفاعلي](https://arabroot.io/articles/%D8%A7%D9%84%D8%A8%D8%B1%D9%8A%D8%AF-%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84%D9%8A-transactional-email/)، ثم أعد تفعيل الخاصيتين حتى يستطيع المستخدم استعادة حسابه.

## استبيان عربي: ما الذي يعمل وما الذي تترجمه بنفسك

هذا هو الجزء الذي يهم القارئ العربي أكثر من غيره، لذلك اختبرناه مرتين.

### المرة الأولى: أسئلة عربية في استبيان لغته الافتراضية الإنجليزية

أنشأنا استبياناً من الصفر Start from scratch، وكتبنا ثلاثة أسئلة بالعربية: سؤال نصي مفتوح، وتقييم بالنجوم، واختيار واحد من خيارين، ثم نشرناه بالرابط. والنتيجة أن النص العربي يظهر صحيحاً، ولكن الصفحة كلها من اليسار إلى اليمين، وكلمة Required وزر Next بالإنجليزية، كما في الصورة التالية:

![صفحة استبيان Formbricks فيها سؤال عربي محاذى إلى اليسار وكلمة Required فوقه وزر Next على اليمين وعبارة Powered by Formbricks بالإنجليزية](https://arabroot.io/content/images/2026/10/formbricks-03-link-survey-default.webp)

اللغة الافتراضية en-US: النص عربي، والاتجاه والعبارات الثابتة إنجليزية

والسبب أن Formbricks يحدد اتجاه الصفحة ولغة العبارات الثابتة من لغة الاستبيان، لا من النص الذي تكتبه، وقد قرأنا الاتجاه في المتصفح فكان `ltr` للعنوان والسؤال، و`lang=en-US` للصفحة.

### المرة الثانية: العربية لغة افتراضية للاستبيان

من **Settings ثم Survey Languages** في مساحة العمل أضفنا اللغة Arabic (Saudi Arabia) بالرمز `ar-SA`، وجعلناها في الحقل Default survey language، ولاحظ ما تقوله الصفحة: الاستبيانات الجديدة تنشأ بهذه اللغة، أما الاستبيانات الموجودة فتبقى بلغتها، لذلك أنشأنا استبياناً جديداً بالأسئلة نفسها، فأصبحت المعاينة في المحرر من اليمين إلى اليسار مباشرة:

![محرر الاستبيانات في Formbricks وعلى اليسار سؤال التقييم بالعربية مع حقلي سيئة وممتازة، وعلى اليمين معاينة من اليمين إلى اليسار فيها خمس نجوم وزرا التالي والسابق بالعربية](https://arabroot.io/content/images/2026/10/formbricks-04-editor.webp)

بعد جعل ar-SA اللغة الافتراضية: المعاينة من اليمين إلى اليسار، والأزرار بالنصوص التي كتبناها

ثم فتحنا رابط الاستبيان كمشارك، وكتبنا إجابة تجمع العربية والإنجليزية، فظهرت الصفحة من اليمين إلى اليسار، والعبارات الثابتة مثل «مطلوب» و«مشغل بواسطة» بالعربية:

![صفحة الاستبيان من اليمين إلى اليسار وفيها كلمة مطلوب والسؤال العربي وإجابة تحتوي على كلمة Mattermost وزر التالي على اليسار](https://arabroot.io/content/images/2026/10/formbricks-05-link-survey-ar.webp)

الإجابة المختلطة بالعربية والإنجليزية تظهر في ترتيبها الصحيح

![سؤال اختيار واحد بالعربية فيه خياران على سيرفر الشركة وعند خدمة سحابية خارجية، والدائرة على يمين كل خيار، وزر إرسال وزر السابق](https://arabroot.io/content/images/2026/10/formbricks-06-link-survey-choice.webp)

أزرار الاختيار على يمين النص كما يتوقع القارئ العربي

ولكن عند إرسال الإجابة ظهرت صفحة الشكر بالإنجليزية:

![صفحة نهاية الاستبيان فيها Thank you وWe appreciate your feedback وزر Create your own Survey بالإنجليزية، وتحتها مشغل بواسطة Formbricks](https://arabroot.io/content/images/2026/10/formbricks-07-ending-default.webp)

بطاقة النهاية Ending Card تبقى بالنص الإنجليزي الافتراضي حتى تغيرها

وخلاصة ما وجدناه في الاختبارين:

| الجزء                                 | اللغة الافتراضية en-US                                                                                                                                                                                                                                                                                                                                        | اللغة الافتراضية ar-SA                               |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| اتجاه الصفحة                          | من اليسار إلى اليمين                                                                                                                                                                                                                                                                                                                                          | من اليمين إلى اليسار                                 |
| العبارات الثابتة (مطلوب، مشغل بواسطة) | إنجليزية                                                                                                                                                                                                                                                                                                                                                      | عربية                                                |
| نصوص الأزرار Next وBack               | إنجليزية                                                                                                                                                                                                                                                                                                                                                      | إنجليزية حتى تكتبها في Block settings                |
| بطاقة النهاية Ending Card             | إنجليزية                                                                                                                                                                                                                                                                                                                                                      | إنجليزية حتى تعدلها، ومعها زر Create your own Survey |
| لوحة الإدارة                          | لا توجد واجهة عربية، فملفات لغات لوحة الإدارة في [apps/web/locales](https://github.com/formbricks/formbricks/tree/6.0.2/apps/web/locales?ref=arabroot.io) خمسة عشر ملفاً ليس بينها العربية، بينما ملفات صفحة الاستبيان في [packages/surveys/locales](https://github.com/formbricks/formbricks/tree/6.0.2/packages/surveys/locales?ref=arabroot.io) تشمل ar-EG |                                                      |

لذلك قم بتغيير اللغة الافتراضية لمساحة العمل إلى العربية قبل أن تنشئ أول استبيان، ثم اكتب نصوص الأزرار في إعدادات كل كتلة Block settings، وعدل بطاقة النهاية، وراجع الاستبيان من الرابط قبل أن ترسله، وإذا احتجت الاستبيان نفسه بالعربية والإنجليزية فميزة تعدد اللغات Multi-language متاحة في النسخة المجتمعية بحسب [التوثيق](https://formbricks.com/docs/xm-and-surveys/surveys/general-features/multi-language-surveys?ref=arabroot.io).

## أين تذهب الإجابات؟

بعد إرسال الإجابة تظهر في صفحة الملخص Summary مع عدد المشاهدات والبدايات ونسبة الإكمال والوقت، ويمكن تنزيلها CSV من زر Download:

![صفحة ملخص استبيان أدوات العمل في Formbricks فيها مشاهدة واحدة وبداية واحدة وإكمال بنسبة 100% ووقت 13.96 ثانية، ثم الإجابة النصية وتقييم بمتوسط 4](https://arabroot.io/content/images/2026/10/formbricks-08-summary.webp)

ملخص الاستبيان: الأرقام والإجابات في لوحة واحدة

ولنتأكد أن الإجابة على سيرفرنا فعلاً، قرأناها مباشرة من قاعدة البيانات:

```bash
docker exec lab-office2-fb-postgres-1 psql -U postgres -d formbricks -c \
  "select id, finished, language, data::text, meta::text from \"Response\" where \"surveyId\"='cmuzxfvoa000b01o0z2vlqbvk';"
```

```text
            id             | finished | language |                                                                                             data                                                                                             |                                                                                                                                                               meta
---------------------------+----------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 cmuzxlbo1000d01o0c1pzvb0w | t        | ar-SA    | {"hnf1uf6ttjvdtlxko91g4mpa": "نستخدم Mattermost للمحادثة لأنه على سيرفر الشركة، ونحتاج أداة استبيانات مثله.", "k13jgqhts4czh1pvvhb91ph7": "على سيرفر الشركة", "x4rs3abuedm9jkv46mnem4qs": 4} | {"url": "http://127.0.0.1:28302/s/cmuzxfvoa000b01o0z2vlqbvk", "locale": "en-US", "pagePath": "/s/cmuzxfvoa000b01o0z2vlqbvk", "timezone": "Asia/Riyadh", "userAgent": {"os": "Windows", "device": "desktop", "browser": "Chrome Headless"}, "screenWidth": 800, "screenHeight": 600, "viewportWidth": 1100, "viewportHeight": 760}
(1 row)
```

في المخرج أعلاه لاحظ التالي:

- الإجابات في العمود `data` بصيغة JSON، والمفتاح هو معرف السؤال، والقيمة هي الإجابة كما كتبها المشارك.
- العمود `language` هو `ar-SA`، أي لغة الاستبيان التي رآها المشارك.
- العمود `meta` يحفظ رابط الصفحة والمنطقة الزمنية ونوع الجهاز والمتصفح وأبعاد الشاشة، ولا يوجد فيه عنوان IP، لأننا لم نفعل خيار **Capture IP address** في إعدادات الاستبيان، وفي الإعدادات نفسها خيار **Anonymize responses** الذي يوقف حفظ الدولة والجهاز أيضاً، فقم بتفعيله إذا كان الاستبيان لا يحتاج هذه البيانات.

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

## الاستبيان داخل موقعك أو تطبيقك

من **Settings ثم Web & Mobile SDK** تجد معرف مساحة العمل Workspace ID وعنوان الاتصال، ومع اختيار Website يعطيك Formbricks هذا الكود من تثبيتنا لتضعه في الصفحة:

```html
<!-- START Formbricks Surveys -->
<script type="text/javascript">
!function(){
    var appUrl = "http://127.0.0.1:28302";
    var workspaceId = "cmuzwgsgh000101o0usloswvn";
var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=appUrl+"/js/formbricks.umd.cjs";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e),setTimeout(function(){window.formbricks.setup({workspaceId: workspaceId, appUrl: appUrl})},500)}();
</script>
<!-- END Formbricks Surveys -->
```

ولاحظ أن ملف المكتبة `formbricks.umd.cjs` يحمل من سيرفرك أنت عبر `appUrl`، لا من خدمة خارجية، وأن `appUrl` في الإنتاج يجب أن يكون عنوان HTTPS العام، لأن الموقع الذي يعمل على HTTPS لن يحمل ملفاً من عنوان HTTP. وبعد ذلك تحدد في الاستبيان نوع Website & App Survey، والفعل Action الذي يظهره، وهناك أيضاً مكتبات لتطبيقات الجوال بحسب الصفحة نفسها، والتفاصيل في [دليل البداية للاستبيانات داخل التطبيقات](https://formbricks.com/docs/xm-and-surveys/surveys/website-app-surveys/quickstart?ref=arabroot.io).

## Formbricks أم LimeSurvey؟

الأداتان تحفظان الإجابات على سيرفرك، والفرق في نوع الاستبيان الذي صممت له كل منهما:

- **Formbricks:** نقاط القوة: الاستبيانات القصيرة داخل المنتج، وتحديد من يرى السؤال ومتى، ومحرر حديث، وصفحة استبيان من اليمين إلى اليسار عندما تكون العربية لغته. نقاط الضعف: إحدى عشرة خدمة في ملف Compose ومساحة كبيرة للقرص، ولا توجد لوحة إدارة بالعربية، وجزء من الميزات في Enterprise.
- **LimeSurvey:** نقاط القوة: الاستبيانات الطويلة والأبحاث بالرابط، وتثبيت بخدمتين فقط كما في [دليل LimeSurvey](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-limesurvey-%D9%84%D9%84%D8%A7%D8%B3%D8%AA%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA/). نقاط الضعف: ليس مصمماً لإظهار سؤال داخل تطبيقك عند فعل معين.

فإذا كان هدفك أن تسأل مستخدمي تطبيقك في اللحظة المناسبة فاختر Formbricks، وإذا كان هدفك استبياناً طويلاً يرسل للجمهور فابدأ ب LimeSurvey، لأنه أخف بكثير على السيرفر.

## قبل التشغيل الفعلي

1. **HTTPS:** ضع Formbricks خلف Reverse Proxy مثل [Caddy](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-caddy-reverse-proxy/)، واجعل `WEBAPP_URL` و`NEXTAUTH_URL` عنوان HTTPS العام، ولا تقم بفتح المنفذ 3000 للإنترنت.
2. **البريد SMTP:** للدعوات واستعادة كلمة المرور والتنبيهات، ثم أعد تفعيل التحقق من البريد.
3. **تخزين الملفات:** إذا احتجت سؤال رفع ملف أو شعاراً للاستبيان فاضبط تخزين S3 كما في [توثيق رفع الملفات](https://formbricks.com/docs/self-hosting/configuration/file-uploads?ref=arabroot.io).
4. **النسخ الاحتياطي:** ينص دليل التثبيت على أن يدخل ملف `.env` وVolume قاعدة البيانات في النسخ الاحتياطي، ونضيف إليهما `docker-compose.yml` لأن فيه `ENCRYPTION_KEY` و`NEXTAUTH_SECRET`، واختبر الاستعادة كما في [قاعدة 3-2-1](https://arabroot.io/articles/%D8%A7%D9%84%D9%86%D8%B3%D8%AE-%D8%A7%D9%84%D8%A7%D8%AD%D8%AA%D9%8A%D8%A7%D8%B7%D9%8A-%D8%A8%D9%82%D8%A7%D8%B9%D8%AF%D8%A9-3-2-1-%D9%88%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1-%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%B9%D8%A7%D8%AF%D8%A9/).
5. **التحديث:** غير رقم الإصدار يدوياً بعد قراءة ملاحظات الإصدار، والسبب أن الإصدار 6 نفسه أضاف خدمات جديدة إلى ملف Compose، وأي تحديث كبير قد يفعل ذلك مرة أخرى.

## مشكلات شائعة وحلولها

### الخدمة formbricks-migrate تنتهي بالرمز 1

اقرأ سجلها بالأمر `docker logs`، فإذا ذكر `AUTHZED_ENDPOINT` و`AUTHZED_SYSTEM_KEY` فأضفهما إلى `.env` كما في [قسم التثبيت](#authzed-error)، وإذا ذكر متغيراً آخر فالغالب أنه سر لم تنشئه.

### تحذير File storage not set up في المحرر

هذا تحذير وليس خطأ، ومعناه أن رفع الملفات من المشاركين أو رفع الصور في المحرر لن يعمل حتى تضبط تخزين S3، أما بقية أنواع الأسئلة فتعمل.

### الأزرار وصفحة الشكر بالإنجليزية في استبيان عربي

نصوص الأزرار وبطاقة النهاية من محتوى الاستبيان نفسه، فاكتبها في Block settings وفي Ending card، وإذا كانت الصفحة كلها من اليسار إلى اليمين فلغة الاستبيان الافتراضية ليست العربية.

### لا تصل الدعوات إلى أعضاء الفريق

السبب أن SMTP غير مضبوط، والأداة تخبرك بذلك عند الدعوة، ويمكنك نسخ رابط الدعوة من إعدادات المنظمة وإرساله بنفسك إلى أن تضبط البريد.

## الخلاصة

وصلنا لنهاية الموضوع، وأهم ما فيه:

- Formbricks يجمع الاستبيان بالرابط والاستبيان داخل الموقع أو التطبيق، والإجابات تبقى في PostgreSQL على سيرفرك، ومكتبة الموقع تحمل من سيرفرك أيضاً.
- الترخيص AGPLv3 للنواة، ومجلد `apps/web/modules/ee` تحت ترخيص Enterprise لا يستخدم في الإنتاج دون اشتراك، وفيه SSO والفرق وسجلات التدقيق وجهات الاتصال.
- الإصدار 6 يشغل إحدى عشرة خدمة، منها ست دائمة، واستهلكت نحو 1 GB من الذاكرة دون حمل، وحجم Image التطبيق وحدها 2.54 GB.
- ثبت الإصدارات بدل `latest`، وإذا فشلت `formbricks-migrate` بسبب AuthZed فأضف `AUTHZED_ENDPOINT` و`AUTHZED_SYSTEM_KEY` إلى `.env`.
- العربية تعمل جيداً في صفحة الاستبيان عندما تكون لغته الافتراضية، والاتجاه يصبح من اليمين إلى اليسار، ولكن الأزرار وبطاقة النهاية تترجمها بنفسك، ولوحة الإدارة بلا عربية.

ولحجز المواعيد اقرأ [أي أداة حجز مواعيد تناسب عيادتك أو فريقك؟](https://arabroot.io/articles/%D8%A7%D9%8A-%D8%A7%D8%AF%D8%A7%D8%A9-%D8%AD%D8%AC%D8%B2-%D9%85%D9%88%D8%A7%D8%B9%D9%8A%D8%AF-%D8%AA%D9%86%D8%A7%D8%B3%D8%A8%D9%83/)، وفي المقالات القادمة من هذه المرحلة سوف نتحدث عن تحويل ملفات PDF وتحريرها.

[![](https://arabroot.io/content/images/2026/10/limesurvey-cover-cover.webp)دليلتثبيت LimeSurvey للاستبيانات على خادمككيف تشغل LimeSurvey على سيرفرك وتنشئ استبيانات بالعربية، فتبقى إجابات المشاركين عندك لا عند خدمة خارجية.](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-limesurvey-%D9%84%D9%84%D8%A7%D8%B3%D8%AA%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA/)[![](https://arabroot.io/content/images/2026/10/esign-cover-cover.webp)دليلالتوقيع الإلكتروني على سيرفرك: DocuSeal أم Documenso؟ما الفرق بين التوقيع الإلكتروني والرقمي، وكيف توقع مستنداتك على سيرفرك وتتحقق أن الملف لم يتغير بعد التوقيع.](https://arabroot.io/articles/%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%B9-%D8%A7%D9%84%D8%A5%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A-%D8%B9%D9%84%D9%89-%D8%B3%D9%8A%D8%B1%D9%81%D8%B1%D9%83-docuseal-%D9%88-documenso/)[![](https://arabroot.io/content/images/2026/10/transactional-email-cover-cover.webp)دليلTransactional Email: كيف تصل رسائل تطبيقك في وقتهالماذا تفصل رسائل تطبيقك مثل استعادة كلمة المرور عن النشرات البريدية، وكيف ترسلها بحيث تصل في وقتها ولا تذهب إلى Spam.](https://arabroot.io/articles/%D8%A7%D9%84%D8%A8%D8%B1%D9%8A%D8%AF-%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84%D9%8A-transactional-email/)[![](https://arabroot.io/content/images/2026/10/backup-321-cover-cover.webp)دليلالنسخ الاحتياطي بقاعدة 3-2-1 واختبار الاستعادةكيف تحدد كم بيانات تقبل أن تخسر، وتبني نسخاً لا يستطيع المخترق حذفها، وتتأكد أنك تستطيع استعادتها فعلاً.](https://arabroot.io/articles/%D8%A7%D9%84%D9%86%D8%B3%D8%AE-%D8%A7%D9%84%D8%A7%D8%AD%D8%AA%D9%8A%D8%A7%D8%B7%D9%8A-%D8%A8%D9%82%D8%A7%D8%B9%D8%AF%D8%A9-3-2-1-%D9%88%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1-%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%B9%D8%A7%D8%AF%D8%A9/)

## سجل التحديثات

- أكتوبر 2026: كتابة المقال، والتجربة العملية على Formbricks 6.0.2 مع hub 0.8.7 وcube 1.7.47-1 وspicedb v1.52.0 وpgvector 0.8.7 على PostgreSQL 18، واختبار الاستبيان العربي باللغتين الافتراضيتين en-US وar-SA.
- أكتوبر 2026: إضافة رابط مقال أدوات حجز المواعيد.