Files

3.4 KiB

پیش‌نمایش دیزاین — 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 کنید، بعد کلون/پول روی سرور.

بار اول روی سرور

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 فقط این‌ها را عوض کنید:

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 لازم نباشد):

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:

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)

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 نکنید.