# راهنمای نصب کامل از صفر (سرور لینوکسی با WHM/cPanel)

## مرحله ۱: نصب Node.js نسخه ۲۰

از طریق SSH به سرور وصل شوید و دستورات زیر را اجرا کنید:

```bash
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo yum install -y nodejs
```

برای تأیید نصب:
```bash
node -v
npm -v
```

## مرحله ۲: نصب PostgreSQL

```bash
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server postgresql15
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15
```

## مرحله ۳: ساخت دیتابیس و کاربر

```bash
sudo -u postgres psql
```

در محیط psql:
```sql
CREATE USER curtainuser WITH PASSWORD 'یک_رمز_قوی_انتخاب_کنید';
CREATE DATABASE curtaindb OWNER curtainuser;
GRANT ALL PRIVILEGES ON DATABASE curtaindb TO curtainuser;
\q
```

## مرحله ۴: تنظیم دسترسی دیتابیس

```bash
sudo nano /var/lib/pgsql/15/data/pg_hba.conf
```

خط زیر را به انتهای فایل اضافه کنید:
```
local   curtaindb   curtainuser   md5
host    curtaindb   curtainuser   127.0.0.1/32   md5
```

سپس ریستارت کنید:
```bash
sudo systemctl restart postgresql-15
```

## مرحله ۵: نصب PM2

```bash
sudo npm install -g pm2
```

## مرحله ۶: آماده‌سازی پوشه پروژه

```bash
mkdir -p ~/apps/curtain-store
cd ~/apps/curtain-store
```

فایل `project.tar.gz` را به این پوشه آپلود کنید (مثلاً با FileManager در cPanel یا با scp).
سپس استخراج کنید:
```bash
tar -xzf project.tar.gz
```

## مرحله ۷: تنظیم فایل محیطی

```bash
nano .env
```

محتوای زیر را وارد کنید:
```env
DATABASE_URL=postgres://curtainuser:یک_رمز_قوی_انتخاب_کنید@localhost:5432/curtaindb
PORT=3000
```

ذخیره: Ctrl+O سپس Enter سپس Ctrl+X

## مرحله ۸: نصب وابستگی‌ها و اجرا

```bash
npm install
npm run build
npm run db:push
pm2 start dist/index.js --name "curtain-store"
pm2 save
pm2 startup
```

## مرحله ۹: تست

در مرورگر آدرس زیر را باز کنید:
```
http://آی‌پی‌سرور:3000
```

## نکات مهم
- هرگز دستورات npm یا node را با کاربر root اجرا نکنید (به جز نصب اولیه).
- برای اتصال دامنه به پورت 3000 از Reverse Proxy در Apache/Nginx استفاده کنید.
- پورت 3000 را در فایروال (CSF) باز کنید.
