4.2 KiB
استقرار کاتالوگ — 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 اضافه میکند، نه به سایتهای دیگر.
۸) تست نهایی
https://ktg.montzar.irصفحهٔ ساخت فارسی- یک PDF/تصویر کوچک بسازید
- QR و لینک باید با
https://ktg.montzar.ir/c/...باشد نه localhost - لینک مشاهده در تب دیگر باز شود
کاتالوگهای لوکال (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 وصل نمیشود.