# حزمة نشر SMM Panel

هذا المجلد يحتوي على أدوات بناء ونشر لوحة SMM Panel.

## الملفات

| الملف | الوصف |
|-------|-------|
| `build.ps1` | يُنشئ حزمة إنتاج نظيفة في مجلد `dist/` (للتشغيل على ويندوز) |
| `install.sh` | سكربت التثبيت الذي يُشغَّل على الاستضافة |
| `README.md` | هذا الملف |

## طريقة الاستخدام

### 1. بناء حزمة الإنتاج (على جهازك)

```powershell
powershell -ExecutionPolicy Bypass -File scripts\build.ps1
```

سيُنشئ:
- `dist/smm-panel/` → مجلد نظيف جاهز للرفع
- `dist/smm-panel-production.zip` → نسخة مضغوطة للرفع

**ما يحتويه المجلد النظيف:**
- `app/`, `bootstrap/`, `config/`, `database/`, `public/`, `resources/`, `routes/`, `storage/`, `vendor/`
- `artisan`, `composer.json`, `composer.lock`
- `.env.example`, `install.sh`, `install-README.md`

**ما يُستبعد (أدوات التطوير):**
- `.claude/`, `.cursor/`, `tests/`, `node_modules/`, `scripts/`
- `phpunit.xml`, `package.json`, `vite.config.js`, `tailwind.config.js`
- `AGENTS.md`, `CLAUDE.md`, `boost.json`, `README.md`
- الكاش والسجلات والجلسات

### 2. الرفع إلى الاستضافة

**cPanel:**
1. ارفع `smm-panel-production.zip` عبر File Manager إلى `public_html`
2. فك الضغط

**SSH / scp:**
```bash
scp dist/smm-panel-production.zip user@server:/var/www/
ssh user@server "cd /var/www && unzip smm-panel-production.zip -d smm-panel"
```

### 3. التثبيت على الاستضافة

```bash
cd smm-panel
chmod +x install.sh
./install.sh
```

### 4. ضبط ملف .env

حرّر `.env` وضع بياناتك:

```env
APP_NAME="SMM Panel"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com

DB_DATABASE=your_db
DB_USERNAME=your_user
DB_PASSWORD=your_pass

SESSION_DRIVER=database
QUEUE_CONNECTION=database
CACHE_STORE=database
```

### 5. إعداد Cron

في cPanel > Cron Jobs، أضف:

```
* * * * * /usr/bin/php /home/USER/smm-panel/artisan schedule:run >> /dev/null 2>&1
```

### 6. توجيه الموقع إلى public

**الطريقة الأسهل (cPanel/استضافة مشتركة):**

إذا كان المشروع في `public_html/smm-panel`، اجعل الجذر يشير إلى `public`:

- إما عبر Domain setup في cPanel (Document Root = `public_html/smm-panel/public`)
- أو استخدم ملف `.htaccess` في الجذر لإعادة التوجيه

**VPS (Nginx):**

```nginx
server {
    listen 80;
    server_name your-domain.com;
    root /var/www/smm-panel/public;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
```

## التحقق بعد التثبيت

```bash
# حالة التطبيق
php artisan about

# القائمة المجدولة
php artisan schedule:list

# صحة الكرون (عبر المتصفح)
curl https://your-domain.com/api/v2/cron/health
```

- لوحة الإدارة: `https://your-domain.com/admin`

## استكشاف الأخطاء

| المشكلة | الحل |
|---------|------|
| خطأ 500 | راجع `storage/logs/laravel.log` |
| 404 على كل الصفحات | تأكد أن الجذر يشير إلى `public/` |
| خطأ اتصال بقاعدة البيانات | راجع بيانات `DB_*` في `.env` |
| أخطاء صلاحيات | `chmod -R 775 storage bootstrap/cache` |
| Cron لا يعمل | تحقق من مسار PHP في الأمر |
| تغييرات لا تظهر | `php artisan optimize:clear` |

## ملاحظات أمنية

1. لا ترفع ملف `.env` إلى Git أبدًا
2. اجعل `APP_DEBUG=false` في الإنتاج
3. استخدم HTTPS دائمًا
4. غيّر كلمة مرور الأدمن الافتراضية فورًا