# Amazon Job Dashboard — Live Server Deployment Guide

## লাইভ সার্ভারে রান করার সম্পূর্ণ নির্দেশিকা

---

## ধাপ ১: VPS কিনুন

সবচেয়ে সস্তা ও ভালো options:

| Provider | Price | Link |
|---|---|---|
| Hostinger VPS | $4-6/মাস | hostinger.com/vps-hosting |
| DigitalOcean | $6/মাস | digitalocean.com |
| Vultr | $6/মাস | vultr.com |

**Minimum Spec:** Ubuntu 22.04, 2 CPU, 2GB RAM, 20GB SSD

---

## ধাপ ২: VPS-এ Software Install

SSH দিয়ে ঢুকুন:
```bash
ssh root@YOUR_SERVER_IP
```

### Node.js 20:
```bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
```

### MongoDB:
```bash
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
```

### PM2 (process manager):
```bash
sudo npm install -g pm2
```

### Playwright dependencies:
```bash
sudo apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 \
  libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 \
  libxrandr2 libgbm1 libasound2 libpango-1.0-0 libcairo2 xvfb
```

### Xvfb (virtual display — Playwright visible browser-এর জন্য):
```bash
# Xvfb service তৈরি
cat > /etc/systemd/system/xvfb.service << 'EOF'
[Unit]
Description=X Virtual Frame Buffer
After=network.target

[Service]
ExecStart=/usr/bin/Xvfb :99 -screen 0 1280x800x24
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable xvfb
sudo systemctl start xvfb
```

---

## ধাপ ৩: Project Upload

### Option A: SCP (Windows PowerShell থেকে):
```powershell
scp -r "C:\Users\Bd\Desktop\amazon-job-dashboard" root@YOUR_SERVER_IP:/var/www/
```

### Option B: GitHub (recommended):
```bash
# Local-এ (Windows)
cd C:\Users\Bd\Desktop\amazon-job-dashboard
git init
git add .
git commit -m "initial"
git remote add origin https://github.com/YOUR_USERNAME/amazon-dashboard.git
git push -u origin main

# VPS-এ
git clone https://github.com/YOUR_USERNAME/amazon-dashboard.git /var/www/amazon-job-dashboard
```

---

## ধাপ ৪: Project Setup (VPS-এ)

```bash
cd /var/www/amazon-job-dashboard

# Install dependencies
npm install

# Playwright Chromium install
npx playwright install chromium
npx playwright install-deps chromium

# .env.local তৈরি
cat > .env.local << 'EOF'
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=workwatch
EOF

# Build
npm run build
```

---

## ধাপ ৫: PM2 দিয়ে চালু করুন

```bash
cat > /var/www/amazon-job-dashboard/ecosystem.config.js << 'EOF'
module.exports = {
  apps: [{
    name: 'amazon-dashboard',
    script: 'node_modules/.bin/next',
    args: 'start',
    cwd: '/var/www/amazon-job-dashboard',
    env: {
      NODE_ENV: 'production',
      PORT: 3000,
      DISPLAY: ':99',
    },
    instances: 1,
    autorestart: true,
    max_memory_restart: '1G',
  }]
}
EOF

pm2 start ecosystem.config.js
pm2 save
pm2 startup
```

---

## ধাপ ৬: Nginx + Domain (Optional)

```bash
sudo apt install nginx -y

cat > /etc/nginx/sites-available/dashboard << 'EOF'
server {
    listen 80;
    server_name YOUR_DOMAIN.com;
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_read_timeout 90s;
    }
}
EOF

sudo ln -s /etc/nginx/sites-available/dashboard /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx

# Free SSL
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d YOUR_DOMAIN.com
```

---

## ধাপ ৭: চেক করুন

```bash
pm2 status          # Running দেখালে OK
pm2 logs amazon-dashboard  # Logs দেখুন
```

Browser: `http://YOUR_SERVER_IP:3000`

---

## Useful Commands

```bash
pm2 restart amazon-dashboard   # Restart
pm2 stop amazon-dashboard      # Stop
pm2 logs amazon-dashboard      # Live logs
sudo systemctl status mongod   # MongoDB status
```
