Files
CRM_Montzar/deploy/DEPLOY.md
T

139 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# استقرار منتو CRM — `crm.montzar.ir`
هاست مشترک مونتایم: `185.50.38.53` (SSH پورت `3031`، کاربر `montime`)
دامنه: `https://crm.montzar.ir`
پورت داخلی API: `3030`
(۳۰۰۰ مونتایم، ۳۰۰۱ فوری‌سند، ۳۰۱۰ سوپرادمین، ۳۰۲۰ کاتالوگ)
کد از Gitea: `http://get.feep.ir/Mahdi/CRM_Montzar.git`
---
## کارهایی که شما باید انجام دهید (قبل/همراه استقرار)
1. **DNS:** رکورد `A` برای `crm.montzar.ir` مثل `ktg.montzar.ir` / `adm.montzar.ir` روی همان IP.
2. **Postgres:** یک دیتابیس و کاربر جدا برای CRM بسازید (مثلاً `mento_crm`) — به دیتابیس مونتایم دست نزنید.
3. **SMS:** همان حساب ترِز/رایگان مونتایم را در `.env` سرور CRM بگذارید (`SMS_USERNAME` / `SMS_PASSWORD` / `SMS_SENDER`).
4. **دسترسی Gitea** برای `git clone` / `git pull` روی سرور (یوزر یا توکن).
---
## روی سرور
SSH:
```bash
ssh -p 3031 montime@185.50.38.53
```
### ۱) کلون
```bash
sudo mkdir -p /var/www/crm
sudo chown montime:montime /var/www/crm
git clone http://get.feep.ir/Mahdi/CRM_Montzar.git /var/www/crm
```
### ۲) پورت آزاد باشد
```bash
pm2 list
ss -tlnp | grep -E '3000|3001|3010|3020|3030' || true
```
۳۰۳۰ باید خالی باشد.
### ۳) فایل `.env` API
```bash
cd /var/www/crm
cp deploy/.env.production.example apps/api/.env
nano apps/api/.env
```
`DATABASE_URL`، `JWT_SECRET` و فیلدهای `SMS_*` را پر کنید.
`PORTAL_SHOW_OTP=false` بماند تا کد فقط با پیامک برود.
### ۴) نصب، migrate، بیلد
Node ۲۰ یا جدیدتر.
```bash
cd /var/www/crm
npm ci
npm run build -w @mento/shared
npx prisma migrate deploy --schema apps/api/prisma/schema.prisma
npx prisma generate --schema apps/api/prisma/schema.prisma
npm run build -w @mento/api
npm run build -w @mento/web
mkdir -p uploads
# اختیاری یک‌بار: npm run db:seed
```
### ۵) PM2 — فقط پروسهٔ جدید
پروسه‌های موجود را stop نکنید.
```bash
pm2 start /var/www/crm/deploy/ecosystem.config.cjs
pm2 save
pm2 list
curl -sI http://127.0.0.1:3030/api/health
```
باید `200` و JSON سلامت بیاید. خطا: `pm2 logs mento-crm-api --lines 80`
### ۶) Nginx — فقط سایت جدید
```bash
sudo cp /var/www/crm/deploy/nginx-crm.montzar.ir.conf /etc/nginx/sites-available/crm.montzar.ir
sudo ln -sf /etc/nginx/sites-available/crm.montzar.ir /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
```
اگر `nginx -t` خطا داد، vhostهای دیگر را ویرایش نکنید.
### ۷) SSL
```bash
sudo certbot --nginx -d crm.montzar.ir
```
### ۸) تست
1. `https://crm.montzar.ir` → ورود پنل
2. دمو: `owner@demo.local` / `demo1234` (اگر seed زده باشید)
3. پرتال: `https://crm.montzar.ir/p/demo-mento` → OTP باید پیامک شود
4. منوی گزارشات کار کند
---
## آپدیت بعدی
روی ویندوز `git push`. روی سرور:
```bash
cd /var/www/crm
git pull
npm ci
npm run build -w @mento/shared
npx prisma migrate deploy --schema apps/api/prisma/schema.prisma
npm run build -w @mento/api
npm run build -w @mento/web
pm2 restart mento-crm-api
```
پوشهٔ `uploads` و `apps/api/.env` را پاک نکنید.
---
## تداخل نداشتن
| این پروژه | بقیه — دست نزنید |
|---|---|
| دامنه `crm.montzar.ir` | `ktg` / `adm` / مونتایم |
| پورت ۳۰۳۰ | ۳۰۰۰ / ۳۰۰۱ / ۳۰۱۰ / ۳۰۲۰ |
| PM2 نام `mento-crm-api` | پروسه‌های موجود |
| `/var/www/crm` | `/var/www/ktg` و … |
| دیتابیس `mento_crm` | Postgres مونتایم |