76 lines
3.6 KiB
Markdown
76 lines
3.6 KiB
Markdown
# فهرست تنظیمات سرور اصلی
|
|||
|
|
|
||
|
|
برای کسی که به سرور اصلی (سرور واقعیِ مشتریها) دسترسی دارد.
|
||
|
|
|
||
|
|
از این نسخه به بعد، سرور تا وقتی سه مورد زیر درست نشده باشند **روشن نمیشود**.
|
||
|
|
در گزارش سرور، فهرست کامل ایرادها با هم چاپ میشود؛ همه را درست کنید و یک بار
|
||
|
|
دوباره راهاندازی کنید.
|
||
|
|
|
||
|
|
این بررسی فقط در حالت اصلی (`NODE_ENV=production`) انجام میشود. تصویر داکرِ
|
||
|
|
سرور همیشه در این حالت است.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ۱. حذف کد ثابت ورود آزمایشی
|
||
|
|
|
||
|
|
| متغیر | مقدار درست |
|
||
|
|
|---|---|
|
||
|
|
| `OTP_MASTER_CODE` | **خالی** یا کلاً حذفشده |
|
||
|
|
|
||
|
|
تا وقتی این کد هست، هر کسی که آن را بداند وارد حساب **هر** مشتری میشود.
|
||
|
|
|
||
|
|
> سرور **آزمایشی**ای که عمداً این کد را لازم دارد، باید کنارش
|
||
|
|
> `TEST_SERVER_ALLOW_MASTER_CODE=yes` بگذارد. این را **هرگز** روی سرور اصلی
|
||
|
|
> نگذارید.
|
||
|
|
|
||
|
|
## ۲. کلید جدا برای مشتریها
|
||
|
|
|
||
|
|
| متغیر | مقدار درست |
|
||
|
|
|---|---|
|
||
|
|
| `JWT_SECRET` | یک رشتهی تصادفی، دستکم ۳۲ نویسه (کلید ورود مدیرها) |
|
||
|
|
| `JWT_CUSTOMER_SECRET` | یک رشتهی تصادفیِ **دیگر**، دستکم ۳۲ نویسه (کلید ورود مشتریها و کارشناسها) |
|
||
|
|
|
||
|
|
دو مقدار **نباید یکی باشند**. ساختن مقدار تصادفی، روی هر سیستمی که Node دارد:
|
||
|
|
|
||
|
|
```
|
||
|
|
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
||
|
|
```
|
||
|
|
|
||
|
|
دو بار اجرا کنید و هر خروجی را برای یکی از دو متغیر بگذارید.
|
||
|
|
|
||
|
|
⚠ **عوض کردن این کلیدها همه را از حساب بیرون میکند.** مدیرها و مشتریها
|
||
|
|
یک بار دوباره وارد میشوند. اطلاعات کسی از بین نمیرود.
|
||
|
|
|
||
|
|
⚠ اگر `ACCOUNTING_SECRET_KEY` خالی باشد، رمز ذخیرهشدهی نرمافزار حسابداری از
|
||
|
|
`JWT_SECRET` ساخته میشود. با عوض شدن `JWT_SECRET` باید یک بار دوباره در
|
||
|
|
«تنظیمات حسابداری» پنل وارد شوید. بهتر است `ACCOUNTING_SECRET_KEY` هم یک مقدار
|
||
|
|
تصادفیِ جدا بگیرد و دیگر عوض نشود.
|
||
|
|
|
||
|
|
## ۳. نشانیهای مجاز
|
||
|
|
|
||
|
|
| متغیر | مقدار درست |
|
||
|
|
|---|---|
|
||
|
|
| `CORS_ORIGINS` | نشانی کامل پنل و اپها، با ویرگول جدا |
|
||
|
|
|
||
|
|
نمونه:
|
||
|
|
|
||
|
|
```
|
||
|
|
CORS_ORIGINS=https://adm.henzagold.ir,https://app.henzagold.ir,https://app2.henzagold.ir
|
||
|
|
```
|
||
|
|
|
||
|
|
- هر نشانی با `https://` شروع شود و **مسیر نداشته باشد**؛ مثلاً `/admin` در
|
||
|
|
آخرش نیاید.
|
||
|
|
- هر دامنهای که پنل یا یکی از دو اپ از آن باز میشود باید در فهرست باشد؛
|
||
|
|
وگرنه آن صفحه نمیتواند با سرور حرف بزند.
|
||
|
|
- `*` پذیرفته نمیشود.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## بعد از تنظیم
|
||
|
|
|
||
|
|
1. سرور را دوباره راهاندازی کنید.
|
||
|
|
2. در گزارش سرور باید `Nest application successfully started` دیده شود.
|
||
|
|
اگر سرور بالا نیامد، فهرست ایرادها همانجا چاپ شده است.
|
||
|
|
3. پنل مدیریت و هر دو اپ را باز کنید و یک بار وارد شوید.
|
||
|
|
4. ورود مشتری با پیامک را امتحان کنید. کد ثابت دیگر نباید کار کند.
|