> For the complete documentation index, see [llms.txt](https://docs.ngsurvey.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ngsurvey.com/ar/installation-setup/installation/iadadat-mtghyrat-albyeh.md).

# إعدادات متغيرات البيئة

إلى جانب [إعدادات النظام](/ar/installation-setup/system-settings.md) يمكنك أيضًا تهيئة المكوّن الأساسي لـ ngSurvey باستخدام متغيرات البيئة التالية. ويمكن أيضًا تعيين هذه المتغيرات إما في ملف web.config إذا كنت تستخدم IIS أو داخل ملف ngsurvey.settings.json.

{% hint style="info" %}
في خدمة تطبيق Azure Linux الافتراضية أو في حاوية Linux مخصصة، أي `:` في اسم المتغير يجب استبدالها بـ `__` (شرطة سفلية مزدوجة).
{% endhint %}

## 🔅 متغيرات البيئة

* **`NGSurvey:Secret`**&#x645;فتاح التشفير المستخدم لتوقيع رموز JWT ورموز عناصر الأمان. يجب ألا يقل عن 64 حرفًا.&#x20;
* **`NGSurvey:AutoDBSetup`** افتراضيًا، سيقوم ngSurvey بتكوين قاعدة البيانات المستهدفة أو ترقيتها تلقائيًا. إذا كنت تريد تعطيل عملية التثبيت/الترقية التلقائية، يمكنك تعيين هذا المتغير إلى false. في هذه الحالة ستحتاج إلى تثبيت قاعدة البيانات يدويًا باستخدام [dacpac](/ar/installation-setup/installation/alwajhh-alkhlfyh-lqaadh-albyanat/microsoft-sql-server.md) الملف الخاص بـ Microsoft SQL Server. أما MariaDB أو MySQL فلن يتم تثبيتهما إلا مباشرةً بواسطة ngSurvey، ولا نقدم أي نصوص أو تعليمات برمجية لتثبيت قاعدة البيانات وإعدادها يدويًا بنفسك.
* **`NGSurvey:MailingBatchPoolingDelay`**&#x647;و التأخير بالدقائق الذي ستبدأ بعده الدفعات المرتبطة بالبريد، مثل إرسال رسائل الحملات عبر البريد الإلكتروني. القيمة الافتراضية هي دقيقة واحدة.
* **`NGSurvey:MaxMailingThread`** يتيح لك تحديد عدد سلاسل العمل التي ستُستخدم أثناء عملية إرسال البريد الإلكتروني. كن حذرًا عند تعيين عدد السلاسل، لأن كل سلسلة ستفتح اتصالًا بخادم البريد الخاص بك. القيمة الافتراضية هي 2.
* **`NGSurvey:DisableEmailBlacklisting`** تُعطّل القدرة على إدراج رسائل البريد الإلكتروني في القائمة السوداء للحملات إذا تم تعيينها إلى true.
* **`NGSurvey:DisableMobilePhoneNumberBlacklisting`** تُعطّل القدرة على إدراج أرقام الهواتف المحمولة في القائمة السوداء للحملات إذا تم تعيينها إلى true.
* **`NGSurvey:EnableSwagger`** إذا تم تعيينه إلى false فسيتم تعطيل الوصول إلى توثيق API على <https://yourngsurveysite/api.&#x20>;
* **`NGSurvey:DistributedCache`**&#x64A;ُفعّل ذاكرة التخزين المؤقت الموزعة إذا تم تعيينه إلى true. يجب تفعيل ذاكرة التخزين المؤقت الموزعة إذا كنت تستخدم ngSurvey على [عنقود](/ar/installation-setup/installation/cluster-scale-out-configuration.md) مثل التكوين
* **`NGSurvey:CacheTimeout`** يستخدم ngSurvey ذاكرات تخزين مؤقت داخلية لتحسين الأداء. افتراضيًا، لا تنتهي صلاحية هذه الذاكرات. يمكنك تعيين مهلة بالدقائق إذا كنت ترغب في تحديد وقت انتهاء صلاحية لهذه الذاكرات ليتم تفريغها على فترات منتظمة.&#x20;
* **`NGSurvey:PanelSyncronizerThreadsNumber`** يحدد عدد سلاسل التنفيذ التي ستُستخدم لمزامنة اللوحات مع مصادر بياناتها. القيمة الافتراضية هي 6. كن حذرًا، إذ يمكن لكل سلسلة أن تفتح اتصالًا جديدًا بمصدر البيانات الذي تتصل به لوحتك.&#x20;
* **`NGSurvey:Languages`** مصفوفة من رموز اللغات التي ستكون قابلة للاختيار في قسم الإدارة.  :&#x20;
* **`NGSurvey:ClusterNode`** يحدد ما إذا كان المثيل يعمل على عقدة عنقود عند تعيينه إلى true. لن تشغّل المثيلات التي تم تعيين cluster node فيها إلى true أي نوع من المهام الخلفية. ينبغي إبقاء المهام الخلفية إما على مثيلات منفصلة لا تقدم أي استبيانات أو على مثيل واحد فقط.&#x20;
* **`NGSurvey:EncryptionKey`** سيُستخدم مفتاح التشفير هذا في جميع عمليات تشفير البيانات على مستوى قاعدة البيانات، مثل سلاسل الاتصال وكلمات المرور والإعدادات الحساسة. يجب ألا يقل عن 64 حرفًا. تأكد من الاحتفاظ بنسخة احتياطية من المفتاح، لأنه بدونه قد لا تتمكن من استرداد أي من بيانات ngSurvey الخاصة بك.
* **`NGSurvey:AccountLockoutThreshold`** عدد المرات التي يمكن فيها لتسجيل الدخول محاولة المصادقة قبل أن يتم قفله.
* **`NGSurvey:AccountLockoutDuration`** عدد الدقائق التي يظل خلالها حساب تسجيل الدخول مقفلاً قبل السماح بالمصادقة مرة أخرى. &#x20;
* **`NGSurvey:EnableHSTS`**&#x64A;ُفعّل HSTS. إذا كنت تستخدم SSL فسيتم تعيين جميع ملفات تعريف الارتباط كملفات آمنة.&#x20;
* **`NGSurvey:WebSetupDisabled`** يؤدي التعيين إلى true إلى تعطيل واجهة التثبيت عبر الويب الخاصة بـ ngSurvey.
* **`NGSurvey:CaptchaDisabled`** تؤدي إلى تعطيل ميزات CAPTCHA إذا تم تعيينها إلى true.
* **`NGSurvey:TwoFactorDisabled`** تُعطّل المصادقة الثنائية عند مصادقة تسجيل الدخول إذا تم تعيينه إلى true. يمكن استخدامه لتجاوز المصادقة الثنائية إذا ظهرت أي مشكلة.
* **`NGSurvey:ClearActivityLogsOlderThanDays`** عدد الأيام للاحتفاظ ببيانات سجل النشاط.
* **`NGSurvey:ClearActivityLogTresholdDays`** عدد الأيام قبل حذف بيانات سجل النشاط نهائيًا.
* **`NGSurvey:EncryptActivityLog`** إذا تم تعيينه إلى true فسيتم تشفير بيانات سجل النشاط على مستوى قاعدة البيانات.
* **`NGSurvey:PersitentMailStorageLocation`** المسار إلى مجلد يمكن استخدامه لنسخ الرسائل المحفوظة في مجلد Exchange pickup احتياطيًا في حال كنت تستخدم مجلد الاستلام في Exchange لإرسال رسائل البريد الإلكتروني. &#x20;
* **`NGSurvey:MaxAllowedTextSize`** الحد الأقصى المسموح به لحجم النص بالبايت الذي يمكن تخزينه في النظام. يمكن استخدامه لمنع هجمات تجاوز السعة على النظام. القيمة الافتراضية هي 10485760.
* **`NGSurvey:MailServerTest`** إذا تم تعيينه إلى true فلن يتم إرسال رسائل البريد الإلكتروني مباشرة عبر خادم البريد المُكوَّن.
* **`NGSurvey:LoadTest`** إذا تم تعيينه إلى true فسيسمح بإرسال نفس إجابات المستجيب عدة مرات.&#x20;
* **`NGSurvey:AdminDisabled`** إذا تم تعيينه إلى true فسيتم تعطيل جميع الميزات المرتبطة بالإدارة من API. إذا تم تعطيله، فلن يتوفر إلا API المرتبط باسترجاع الاستبيان وعمليات إرسال المستجيب.&#x20;
* **`NGSurvey:CPSPolicy`**&#x625;ذا تم تعيينه إلى "Self" فسيتم فرض سياسة أمان المحتوى (CSP) على المتصفح. لاحظ أن عناصر الإجابة المعتمدة على الودجات وأي ميزات JavaScript مخصصة سيتم تعطيلها إذا تم تعيينه إلى Self.&#x20;
* **KeyVault:Name** اسم Azure key vault إذا كنت تخطط لتخزين متغيرات البيئة الخاصة بك في key vault الخاص بـ Azure.&#x20;
* **AzureAd:ClientId** معرّف العميل الخاص بـ Azure key vault.&#x20;
* **AzureAd:ClientSecret** السرّ الخاص بالعميل للوصول إلى Azure key vault.
* **`NGSurvey:RedisConnectionString`** سلسلة الاتصال بخادم التخزين المؤقت Redis.
* **`NGSurvey:RedisInstanceName`** اسم مثيل Redis اختياري
* **`NGSurvey:ActivityLogAzureWorkspaceId`** معرّف مساحة عمل Azure Log التحليلات لتسجيل الأنشطة
* **`NGSurvey:ActivityLogAzureAuthenticationId`** معرّف مصادقة عامل Azure Log التحليلات
* **`NGSurvey:ActivityLogAwsAccessKeyId`** معرّف مفتاح الوصول لـ AWS CloudWatch لتسجيل الأنشطة
* **`NGSurvey:ActivityLogAwsSecretAccessKey`** المفتاح السري لـ AWS CloudWatch
* **`NGSurvey:ActivityLogAwsRegion`** منطقة AWS CloudWatch&#x20;
* **`NGSurvey:ActivityLogAwsLogGroup`** مجموعة سجلات AWS CloudWatch
* **`NGSurvey:ActivityLogApplicationInsightsKey`** مفتاح Azure Application Insights لتسجيل الأنشطة&#x20;
* **`NGSurvey:ActivityLogUseEventLog`** إذا تم تعيينه إلى true فسيتم تسجيل الأنشطة في سجل أحداث Windows.
* **`NGSurvey:AccountJWTAccessTokenExpiration`** مدة انتهاء صلاحية رمز JWT الخاص بالمطور على مستوى الحساب بالدقائق. القيمة الافتراضية 90 يومًا، والحد الأقصى 6 أشهر.&#x20;
* **`NGSurvey:FormJWTAccessTokenExpiration`** مدة انتهاء صلاحية رمز JWT الخاص بالمطور على مستوى الاستبيان/النموذج بالدقائق. القيمة الافتراضية يومان، والحد الأقصى 7 أيام.
* **`NGSurvey:FormJWTAccessTokenExpiration`** مدة انتهاء صلاحية رمز JWT الخاص بالمطور على مستوى الاستبيان/النموذج بالدقائق. القيمة الافتراضية يومان، والحد الأقصى 7 أيام.
* **`NGSurvey:PostgresAzureScope`** نطاق Azure الذي يدير رموز الوصول الخاصة بـ Entra لاستخدام Postgres مع حساب مُدار من Entra.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ngsurvey.com/ar/installation-setup/installation/iadadat-mtghyrat-albyeh.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
