Files

4.2 KiB
Raw Permalink Blame History

استقرار کاتالوگ — ktg.montzar.ir

هاست مشترک مونتایم: 185.50.38.53 (SSH پورت 3031، کاربر montime)
دامنه: https://ktg.montzar.ir
پورت داخلی: 3020 (۳۰۰۰ مونتایم، ۳۰۰۱ فوری‌سند، ۳۰۱۰ سوپرادمین)

دیتابیس Postgres بقیه پروژه‌ها را لمس نکنید. این اپ SQLite خودش را در /var/www/ktg/data دارد.


کد از Gitea کلون می‌شود: http://get.feep.ir/Mahdi/digitalcatalog.git


کارهایی که روی سرور است

SSH:

ssh -p 3031 montime@185.50.38.53

۱) کلون

sudo mkdir -p /var/www/ktg
sudo chown montime:montime /var/www/ktg
git clone http://get.feep.ir/Mahdi/digitalcatalog.git /var/www/ktg

اگر Gitea خصوصی است، همان یوزر/توکن را بزنید.

۲) پورت آزاد باشد

pm2 list
ss -tlnp | grep -E '3000|3001|3010|3020' || netstat -tlnp | grep -E '3000|3001|3010|3020'

۳۰۲۰ باید خالی باشد. اگر اشغال بود بگویید تا پورت عوض شود؛ خودتان پورت بقیه را عوض نکنید.

۳) فایل .env سرور

cd /var/www/ktg
cp deploy/.env.production.example .env
nano .env

باید دقیقاً این باشد (مگر پورت عوض شده باشد):

NODE_ENV=production
PORT=3020
API_PORT=3020
PUBLIC_BASE_URL=https://ktg.montzar.ir
STORAGE_DIR=/var/www/ktg/storage
DATABASE_PATH=/var/www/ktg/data/catalogs.sqlite

دیتابیس Postgres و DATABASE_URL سوپرادمین را اینجا نگذارید.

۴) نصب، بیلد، پوشه‌ها

Node ۲۰ یا جدیدتر.

cd /var/www/ktg
npm ci
npm run build
mkdir -p storage data

۵) PM2 — فقط این پروسهٔ جدید

پروسه‌های montime / superadmin-api / فوری‌سند را stop نکنید.

pm2 start /var/www/ktg/deploy/ecosystem.config.cjs
pm2 save
pm2 list
curl -sI http://127.0.0.1:3020

باید HTTP/1.1 200 بیاید. اگر خطا بود: pm2 logs ktg-catalog --lines 80

۶) Nginx — فقط سایت جدید

sudo cp /var/www/ktg/deploy/nginx-ktg.montzar.ir.conf /etc/nginx/sites-available/ktg.montzar.ir
sudo ln -sf /etc/nginx/sites-available/ktg.montzar.ir /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

اگر nginx -t خطا داد، فایل‌های adm.montzar.ir را ویرایش نکنید؛ بگویید خروجی را بفرستید.

۷) گواهی SSL

DNS این زیردامنه از قبل مثل adm.montzar.ir روی همان IP است. اگر مرورگر هنوز به سرور نرسید، در پنل دامنه تأیید کنید ktg.montzar.ir رکورد A مثل adm.montzar.ir دارد.

sudo certbot --nginx -d ktg.montzar.ir

Certbot خودش HTTPS را به همین vhost اضافه می‌کند، نه به سایت‌های دیگر.

۸) تست نهایی

  1. https://ktg.montzar.ir صفحهٔ ساخت فارسی
  2. یک PDF/تصویر کوچک بسازید
  3. QR و لینک باید با https://ktg.montzar.ir/c/... باشد نه localhost
  4. لینک مشاهده در تب دیگر باز شود

کاتالوگ‌های لوکال (127.0.0.1:3000) روی این دامنه کار نمی‌کنند؛ باید روی سرور دوباره ساخته شوند.


آپدیت بعدی کد

روی ویندوز git push. روی سرور:

cd /var/www/ktg
git pull
npm ci
npm run build
pm2 restart ktg-catalog

پوشه‌های storage و data و فایل .env را پاک نکنید.


تداخل نداشتن (یادآوری)

این پروژه بقیه — دست نزنید
دامنه ktg.montzar.ir adm.montzar.ir و دامنهٔ مونتایم
پورت ۳۰۲۰ ۳۰۰۰ / ۳۰۰۱ / ۳۰۱۰
PM2 نام ktg-catalog پروسه‌های موجود
/var/www/ktg /var/www/superadmin و پوشهٔ مونتایم
SQLite داخل data/ Postgres

لاگین و پروفایل اگر بعداً آمد، باز هم داخل همین دامنه و همین پوشه است؛ به دیتابیس Nest وصل نمی‌شود.