# پیش‌نمایش دیزاین — `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` نکنید.