# راهنمای نصب سایت‌ساز پرو روی cPanel Node.js

> این راهنما دقیقاً برای مشکل شما ساخته شده - بر اساس اسکرین‌شات cPanel شما

## 🔴 مشکلات فعلی شما (از اسکرین‌شات):

1. **Node.js نسخه 10.24.1** - بسیار قدیمی! Next.js 16 به حداقل Node 18 نیاز دارد
2. **`package.json` یافت نشد** - هنوز فایل‌های پروژه آپلود نشده
3. **Application root: `home/vibyx`** - مسیر ناقص (باید `/home/vibyx/home/vibyx` باشد)
4. **Application startup file: `server.js`** - این فایل هنوز در پروژه نیست (الان اضافه کردم)

---

## ✅ راه‌حل قدم به قدم

### قدم ۱: آپلود فایل‌های پروژه به cPanel

1. روی کامپیوتر خودتان، تمام این پروژه را به صورت ZIP درآورید (به‌جز `node_modules` و `.next`)

   ```bash
   # در پوشه پروژه:
   zip -r sitesaz-pro.zip . -x "node_modules/*" -x ".next/*" -x "*.log"
   ```

   یا با WinSCP/FileZilla فقط این فایل‌ها/پوشه‌ها را آپلود کنید:
   - ✅ `src/` (تمام کد)
   - ✅ `prisma/`
   - ✅ `public/`
   - ✅ `package.json`
   - ✅ `package-lock.json` (اگر هست)
   - ✅ `next.config.ts`
   - ✅ `tsconfig.json`
   - ✅ `server.js` ← **جدید، ضروری**
   - ✅ `app.js` ← **جدید، ضروری**
   - ✅ `.npmrc`
   - ✅ `.env.example`
   - ✅ `postcss.config.mjs`
   - ✅ `eslint.config.mjs`
   - ✅ `tailwind.config.ts`
   - ✅ `components.json`
   - ❌ `node_modules/` (نصب روی سرور انجام می‌شود)
   - ❌ `.next/` (build روی سرور انجام می‌شود)
   - ❌ `db/` (خودکار ساخته می‌شود)

2. در cPanel به **File Manager** بروید
3. به مسیر `/home/vibyx/home/vibyx/` بروید (یا این پوشه را بسازید)
4. فایل ZIP را آپلود کنید
5. روی فایل ZIP راست کلیک → **Extract**
6. مطمئن شوید `package.json` مستقیماً در `/home/vibyx/home/vibyx/package.json` است (نه در زیرپوشه)

### قدم ۲: تنظیم Node.js App در cPanel (اصلاح مقادیر)

به cPanel → **Software** → **Setup Node.js App** برگردید و این مقادیر را تنظیم کنید:

| فیلد | مقدار صحیح |
|------|------------|
| **Node.js version** | **`16.20.2`** یا بالاتر (هرگز 10!) - اگر 18 یا 20 هست، بهتر |
| **Application mode** | `Production` |
| **Application root** | `home/vibyx` ← بدون `/` ابتدا |
| **Application URL** | `vibyx.ir` (یا سابدامنه) |
| **Application startup file** | `server.js` ← این فایل را اضافه کردم |

### قدم ۳: تنظیم Environment Variables

در همان صفحه cPanel، بخش **Environment variables**:

روی **+ ADD VARIABLE** کلیک کنید و این‌ها را اضافه کنید:

| Variable Name | Value |
|---------------|-------|
| `NODE_ENV` | `production` |
| `DATABASE_URL` | `file:/home/vibyx/home/vibyx/db/custom.db` |
| `PORT` | `3000` (یا همان که cPanel می‌گوید) |
| `HOSTNAME` | `0.0.0.0` |

### قدم ۴: اجرای NPM Install

حالا که `package.json` در مسیر درست است:

1. در همان صفحه cPanel، روی دکمه **Run NPM Install** کلیک کنید
2. منتظر بمانید (ممکن است ۲-۵ دقیقه طول بکشد - بسته به سرعت سرور)
3. وقتی تمام شد، پیام موفقیت می‌بینید

**اگر خطا داد**:
   - روی دکمه پایین صفحه **Show NPM Install Logs** کلیک کنید
   - متن خطا را برای من بفرستید

### قدم ۵: اجرای Build (در ترمینال cPanel)

cPanel باید ترمینال داشته باشد (بخش **Terminal** در cPanel). اگر دارید:

1. باز کنید ترمینال را
2. این دستورات را اجرا کنید:
   ```bash
   cd /home/vibyx/home/vibyx
   source /home/vibyx/nodevenv/home/vibyx/10/bin/activate
   # اگر مسیر بالا کار نکرد، از نسخه 16 استفاده کنید:
   # source /home/vibyx/nodevenv/home/vibyx/16/bin/activate
   
   # نصب وابستگی‌ها (اگر از قدم ۴ نصب نشدند)
   npm install --legacy-peer-deps
   
   # build پروژه
   npm run build
   
   # پیکربندی دیتابیس
   npx prisma db push --accept-data-loss
   
   # پر کردن دیتابیس با داده اولیه
   npx prisma db seed
   ```

**اگر cPanel ترمینال ندارد**، باید از SSH استفاده کنید:
   - در cPanel به **SSH Access** بروید
   - یا با PuTTY به سرور SSH بزنید
   - دستورات بالا را اجرا کنید

### قدم ۶: راه‌اندازی دیتابیس (SQLITE - ساده‌ترین گزینه)

SQLite به تنظیم خاصی نیاز ندارد. فقط مطمئن شوید پوشه `db/` قابل نوشتن است:

```bash
mkdir -p /home/vibyx/home/vibyx/db
chmod 755 /home/vibyx/home/vibyx/db
```

سپس:
```bash
cd /home/vibyx/home/vibyx
npx prisma db push --accept-data-loss
```

### قدم ۷: شروع Application

1. در صفحه cPanel Node.js، روی **RESTART** کلیک کنید
2. روی **OPEN** (کنار Application URL) کلیک کنید
3. سایت شما باید در `https://vibyx.ir` بالا بیاید

### قدم ۸: اگر بالا نیامد - بررسی خطا

```bash
cd /home/vibyx/home/vibyx
source /home/vibyx/nodevenv/home/vibyx/16/bin/activate
node server.js
```

این دستور را در ترمینال بزنید و خطا را بخوانید.

---

## 🚨 خطاهای رایج و راه‌حل

### ❌ خطا: "package.json file is required"
**علت**: فایل در مسیر اشتباه است یا آپلود نشده
**راه‌حل**:
```bash
# در ترمینال cPanel:
ls -la /home/vibyx/home/vibyx/package.json
# اگر "No such file" گفت، یعنی فایل آپلود نشده
```
آپلود کنید `package.json` را.

### ❌ خطا: "Cannot find module 'next'"
**علت**: `npm install` اجرا نشده
**راه‌حل**:
```bash
cd /home/vibyx/home/vibyx
npm install --legacy-peer-deps
```

### ❌ خطا: "Node.js version too old"
**علت**: cPanel هنوز روی Node 10 است
**راه‌حل**:
- در صفحه Node.js App، نسخه را به `16.20.2` یا بالاتر تغییر دهید
- روی SAVE کلیک کنید
- RESTART کنید

### ❌ خطا: "Prisma can't reach database"
**علت**: مسیر دیتابیس اشتباه است
**راه‌حل**:
```bash
# در Environment variables:
DATABASE_URL=file:/home/vibyx/home/vibyx/db/custom.db
```
مطمئن شوید مسیر absolute است (با `/` شروع شود).

### ❌ خطا: "Port 3000 already in use"
cPanel خودش پورت را مدیریت می‌کند. اگر خطا داد:
```bash
PORT=3001
```
در Environment variables.

### ❌ خطا: "permission denied" برای db
```bash
chmod -R 755 /home/vibyx/home/vibyx/db
chmod -R 755 /home/vibyx/home/vibyx/node_modules
```

### ❌ صفحه سفید یا 404
1. مطمئن شوید `npm run build` اجرا شد
2. مطمئن شوید فایل `.next/` ساخته شده:
   ```bash
   ls /home/vibyx/home/vibyx/.next/
   ```

---

## 📋 چک‌لیست نهایی قبل از اجرا

- [ ] Node.js نسخه 16.20.2 یا بالاتر انتخاب شده
- [ ] Application root: `home/vibyx` (بدون اسلش اول)
- [ ] Application startup file: `server.js`
- [ ] `package.json` در `/home/vibyx/home/vibyx/package.json` قرار دارد
- [ ] Environment variable `DATABASE_URL` تنظیم شده
- [ ] `npm install` اجرا شد
- [ ] `npm run build` اجرا شد
- [ ] `npx prisma db push` اجرا شد
- [ ] `npx prisma db seed` اجرا شد
- [ ] روی RESTART کلیک شد

---

## 🆘 اگر باز هم کار نکرد

این اطلاعات را برای من بفرستید:

1. خروجی این دستور:
   ```bash
   cd /home/vibyx/home/vibyx
   ls -la
   node --version
   npm --version
   ```

2. لاگ خطا (با اجرای مستقیم):
   ```bash
   cd /home/vibyx/home/vibyx
   node server.js
   ```

3. اسکرین‌شات صفحه cPanel Node.js بعد از تغییرات

با این اطلاعات می‌توانم دقیق راهنمایی کنم.

---

## 💡 نکته مهم: چرا نسخه Node 10 کار نمی‌کند؟

Next.js 16 نیازمندی‌های دارد:
- **Node 18.17+** برای اجرای معمولی
- **Node 20+** برای عملکرد بهینه

Node 10 مربوط به سال ۲۰۱۸ است و Next.js 16 اصلاً با آن کار نمی‌کند. حتماً نسخه را ارتقا دهید.

اگر cPanel شما فقط Node 10 دارد، باید با هاستینگ تماس بگیرید و بخواهید ارتقا دهند. اکثر هاستینگ‌های ایرانی Node 18+ دارند (مثل آراز، پارس‌پک، و...).

---

## ⚡ راه سریع‌تر: استفاده از PM2 (اگر SSH دارید)

اگر SSH دارید، می‌توانید Node.js مستقل نصب کنید:

```bash
# نصب nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc

# نصب Node 20
nvm install 20
nvm use 20

# نصب PM2
npm install -g pm2

# نصب پروژه
cd /home/vibyx/home/vibyx
npm install --legacy-peer-deps
npm run build
npx prisma db push --accept-data-loss
npm run db:seed

# اجرا با PM2
pm2 start server.js --name "sitesaz-pro"
pm2 save
pm2 startup
```

این روش به Phusion Passenger cPanel نیاز ندارد و پایدارتر است.
