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

# إعدادات

> قم بتكوين الخادم وHTTPS وRedis وسلوك قائمة الانتظار.

# إعدادات

يقرأ برنامج التشغيل `config.json` من جذر التطبيق:

* المجمعة القابلة للتنفيذ: بجوار `plato-printer.exe`.
* التطوير: دليل العمل الحالي.

إذا كان `config.json` مفقودًا، فسيقوم برنامج التشغيل بإنشاء واحد باستخدام الإعدادات الافتراضية المعقمة.

## مثال التكوين

```json theme={null}
{
  "server": {
    "port": 8080
  },
  "features": {
    "meshEnabled": true,
    "httpsEnabled": true
  },
  "caddy": {
    "enabled": true,
    "domain": "plato-printer.local",
    "httpsPort": 443,
    "version": "2.6.4"
  },
  "redis": {
    "mode": "embedded",
    "version": "6.2.14",
    "host": "127.0.0.1",
    "port": 6379,
    "db": 0,
    "username": "",
    "password": "",
    "diskSync": true,
    "snapshotIntervalSec": 30
  },
  "queue": {
    "retryDelayMs": 5000,
    "maxAttempts": 2147483647
  }
}
```

## الخادم

| مجال          | تقصير  | ملحوظات                           |
| ------------- | ------ | --------------------------------- |
| `server.port` | `8080` | منفذ HTTP لجميع نقاط النهاية API. |

يمكّن تطبيق Express CORS و`Access-Control-Allow-Private-Network: true` من السماح لعملاء المتصفح POS بالاتصال بالسائق من الشبكات المحلية/الخاصة.

## سمات

| مجال                    | تقصير  | ملحوظات                                  |
| ----------------------- | ------ | ---------------------------------------- |
| `features.meshEnabled`  | `true` | لتمكين إشارات PeerJS على `/mesh`.        |
| `features.httpsEnabled` | `true` | يسمح بإعداد HTTPS عند تمكين Caddy أيضًا. |

يبدأ تشغيل HTTPS فقط عندما يكون كل من `features.httpsEnabled` و`caddy.enabled` صحيحين.

## العلبة

| مجال              | تقصير                 | ملحوظات                                 |
| ----------------- | --------------------- | --------------------------------------- |
| `caddy.enabled`   | `true`                | تمكين مسار الوكيل العكسي Caddy.         |
| `caddy.domain`    | `plato-printer.local` | اسم المضيف المستخدم لـ HTTPS.           |
| `caddy.httpsPort` | `443`                 | منفذ المستمع HTTPS.                     |
| `caddy.version`   | `2.6.4`               | مثبت للتوافق مع نظام التشغيل Windows 7. |

في نظام التشغيل Windows 7 أو الإصدارات الأقدم، يرفض برنامج التشغيل تكوينات HTTPS التي تستخدم إصدار Caddy بخلاف `2.6.4`.

## Redis

| مجال                        | تقصير                         | ملحوظات                                                                                             |
| --------------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------- |
| `redis.mode`                | `embedded`                    | يقوم `embedded` بتشغيل Redis من برنامج التشغيل؛ يستخدم `external` خادم Redis موجود.                 |
| `redis.version`             | `6.2.14`                      | مطلوب إصدار Redis المضمن.                                                                           |
| `redis.host`                | `127.0.0.1`                   | Redis ربط/ربط المضيف.                                                                               |
| `redis.port`                | `6379`                        | منفذ Redis.                                                                                         |
| `redis.db`                  | `0`                           | رقم قاعدة البيانات Redis.                                                                           |
| `redis.username`            | فارغ                          | يستخدم لمصادقة Redis الخارجية عند التعيين.                                                          |
| `redis.password`            | فارغ                          | يستخدم لمصادقة Redis الخارجية عند التعيين.                                                          |
| `redis.diskSync`            | تم إنشاء `false` بشكل افتراضي | يكتب لقطات Redis إلى `dump.rdb` عندما يكون صحيحًا. يقوم تكوين الإنتاج المخصص بتعيين هذا على `true`. |
| `redis.snapshotIntervalSec` | `30`                          | يتم استخدام الفاصل الزمني للقطات عند تمكين مزامنة القرص.                                            |

يؤدي بدء تشغيل Redis المضمن إلى إحباط برنامج التشغيل بالكامل إذا تعذر بدء تشغيل Redis أو إذا كان إصدار Redis الفعلي لا يتطابق مع `redis.version`.

## طابور

| مجال                 | تقصير        | ملحوظات                                                                                  |
| -------------------- | ------------ | ---------------------------------------------------------------------------------------- |
| `queue.retryDelayMs` | `5000`       | تم إصلاح التراجع عن إعادة المحاولة لمهام الطباعة الفاشلة.                                |
| `queue.maxAttempts`  | `2147483647` | الحد الأقصى للمحاولات لكل مهمة. يقوم التكوين الحالي بإعادة المحاولة بشكل فعال إلى الأبد. |

## التعقيم

يقوم قارئ التكوين بتعقيم القيم:

* يجب أن تكون المنافذ والإعدادات الرقمية أعدادًا صحيحة موجبة.
* يمكن أن تكون القيم المنطقية منطقية أو سلاسل `"true"` / `"false"`.
* يجب أن يكون `redis.mode` `embedded` أو `external`.
* تعود السلاسل الفارغة إلى الإعدادات الافتراضية للحقول المشابهة للمجال/الإصدار/المضيف.
