105 lines
3.4 KiB
Markdown
105 lines
3.4 KiB
Markdown
# پیشنمایش دیزاین — `crm2.montzar.ir`
|
|||
|
|
|
||
|
|
نسخهٔ دوم کنار پروداکشن. **به `/var/www/crm`، `mento-crm-api`، پورت `3030` و دیتابیس `mento_crm` دست نزنید.**
|
||
|
|
|
||
|
|
| | پروداکشن | پیشنمایش |
|
||
|
|
|---|---|---|
|
||
|
|
| دامنه | `crm.montzar.ir` | `crm2.montzar.ir` |
|
||
|
|
| مسیر | `/var/www/crm` | `/var/www/crm2` |
|
||
|
|
| برنچ | `main` | `design_ui` |
|
||
|
|
| پورت API | `3030` | `3032` |
|
||
|
|
| PM2 | `mento-crm-api` | `mento-crm2-api` |
|
||
|
|
| دیتابیس | `mento_crm` | `mento_crm2` |
|
||
|
|
| STT | `mento-stt` روی `3040` | همان را share کنید |
|
||
|
|
|
||
|
|
بروزرسانی پروداکشن همچنان فقط بلوک قفلشده در `deploy/DEPLOY.md` است.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## قبل از سرور
|
||
|
|
|
||
|
|
1. DNS: رکورد `A` برای `crm2.montzar.ir` همان IP پروداکشن (`185.50.38.53`) — مثل `crm.montzar.ir`.
|
||
|
|
2. اول `design_ui` را push کنید، بعد کلون/پول روی سرور.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## بار اول روی سرور
|
||
|
|
|
||
|
|
```bash
|
||
|
|
ssh -p 3031 montime@185.50.38.53
|
||
|
|
|
||
|
|
sudo mkdir -p /var/www/crm2
|
||
|
|
sudo chown montime:montime /var/www/crm2
|
||
|
|
git clone --branch design_ui http://get.feep.ir/Mahdi/CRM_Montzar.git /var/www/crm2
|
||
|
|
|
||
|
|
# دیتابیس جدا (خالی امنتر است؛ برای دادهٔ شبیه پروداکشن dump بگیرید)
|
||
|
|
# CREATE DATABASE mento_crm2 OWNER mento;
|
||
|
|
# اختیاری:
|
||
|
|
# pg_dump -p 15432 -d mento_crm | psql -p 15432 -d mento_crm2
|
||
|
|
|
||
|
|
cp /var/www/crm/apps/api/.env /var/www/crm2/apps/api/.env
|
||
|
|
nano /var/www/crm2/apps/api/.env
|
||
|
|
```
|
||
|
|
|
||
|
|
در `.env` فقط اینها را عوض کنید:
|
||
|
|
|
||
|
|
```text
|
||
|
|
PORT=3032
|
||
|
|
CORS_ORIGIN=https://crm2.montzar.ir
|
||
|
|
DATABASE_URL="postgresql://USER:PASS@127.0.0.1:15432/mento_crm2?schema=public"
|
||
|
|
UPLOAD_DIR=/var/www/crm2/uploads
|
||
|
|
```
|
||
|
|
|
||
|
|
`STT_URL` را روی `http://127.0.0.1:3040` بگذارید. `mento-stt` را دوباره start نکنید.
|
||
|
|
|
||
|
|
وابستگیها (کپی از پروداکشن تا `npm ci` لازم نباشد):
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cp -a /var/www/crm/node_modules /var/www/crm2/
|
||
|
|
rm -rf /var/www/crm2/node_modules/@mento/shared
|
||
|
|
ln -s ../../packages/shared /var/www/crm2/node_modules/@mento/shared
|
||
|
|
chmod +x /var/www/crm2/node_modules/.bin/*
|
||
|
|
find /var/www/crm2/node_modules -path '*esbuild*' -name 'esbuild' -type f -exec chmod +x {} \;
|
||
|
|
```
|
||
|
|
|
||
|
|
بیلد و migrate **فقط روی crm2**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /var/www/crm2
|
||
|
|
npm run build -w @mento/shared
|
||
|
|
cd apps/api && npx prisma migrate deploy && npx prisma generate && cd ../..
|
||
|
|
npm run build -w @mento/api
|
||
|
|
npm run build -w @mento/web
|
||
|
|
mkdir -p uploads
|
||
|
|
|
||
|
|
pm2 start /var/www/crm2/deploy/ecosystem-crm2.config.cjs
|
||
|
|
pm2 save
|
||
|
|
curl -sI http://127.0.0.1:3032/api/health
|
||
|
|
|
||
|
|
sudo cp /var/www/crm2/deploy/nginx-crm2.montzar.ir.conf /etc/nginx/sites-available/crm2.montzar.ir
|
||
|
|
sudo ln -sf /etc/nginx/sites-available/crm2.montzar.ir /etc/nginx/sites-enabled/
|
||
|
|
sudo nginx -t && sudo systemctl reload nginx
|
||
|
|
```
|
||
|
|
|
||
|
|
vhost را HTTP :80 نگه دارید (پروکسی جلویی SSL را تمام میکند). Certbot روی این باکس نزنید.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## آپدیت بعدی پیشنمایش (بعد از push روی `design_ui`)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
ssh -p 3031 montime@185.50.38.53
|
||
|
|
cd /var/www/crm2
|
||
|
|
git fetch origin
|
||
|
|
git checkout design_ui
|
||
|
|
git pull origin design_ui
|
||
|
|
|
||
|
|
npm run build -w @mento/shared
|
||
|
|
cd apps/api && npx prisma migrate deploy && npx prisma generate && cd ../..
|
||
|
|
npm run build -w @mento/api
|
||
|
|
npm run build -w @mento/web
|
||
|
|
pm2 restart mento-crm2-api
|
||
|
|
```
|
||
|
|
|
||
|
|
`pm2 restart mento-crm-api` نکنید. `cd /var/www/crm` نکنید.
|