نصب ربات «فروش پنل v15» + مینی‌اپ روی cPanel
=============================================

این نسخه به‌جای پولینگ و سرور داخلی، با «وبهوک + Passenger (WSGI)» کار می‌کند:
  • ربات و مینی‌اپ هر دو از همان دامنه سرو می‌شوند (نیازی به پورت یا هاست جدا نیست)
  • کارهای پس‌زمینه (بررسی انقضا، حذف سرویس منقضی، بکاپ) با Cron Job اجرا می‌شوند
  • وضعیت مراحل کاربران داخل دیتابیس نگه‌داری می‌شود (با ری‌استارت پروسه‌ها پاک نمی‌شود)

پیش‌نیاز: هاست cPanel با گزینهٔ «Setup Python App» (پایتون ۳.۸ به بالا) + SSL فعال (AutoSSL) روی دامنه.

مراحل
-----
۱) cPanel ← Setup Python App ← Create Application
   • Python version: ۳.۱۰ یا ۳.۱۱ (هر چه بالاتر)
   • Application root: panelbot        (بیرون از public_html)
   • Application URL: دامنه یا ساب‌دامنهٔ مینی‌اپ (ریشهٔ دامنه؛ نه داخل پوشه)
   • Application startup file: passenger_wsgi.py
   • Application Entry point: application
   سپس Create.

۲) File Manager ← پوشهٔ panelbot: فایل پیش‌فرض passenger_wsgi.py را پاک کنید، zip را آپلود و Extract کنید
   (فایل‌ها باید مستقیم داخل panelbot باشند، نه داخل یک پوشهٔ دیگر).

۳) برگردید به صفحهٔ Setup Python App ← همان اپ:
   • Configuration files: requirements.txt را اضافه کنید ← Run Pip Install
   • Environment variables:  BOT_TOKEN = توکن ربات
                             OWNER_ID  = آیدی عددی مالک
     (یا به‌جای متغیرها: local_config.example.py را به local_config.py تغییر نام بدهید و مقدارها را پر کنید)
   • Save و بعد Restart

۴) در مرورگر باز کنید:   https://دامنه‌شما/setup
   توکن ربات را وارد کنید ← وبهوک تلگرام و آدرس مینی‌اپ (لینک خود همین دامنه) خودکار ثبت می‌شود.
   اگر «خطای آخر تلگرام» خالی بود یعنی درست است.

۵) Cron Job:  cPanel ← Cron Jobs ← هر ۱ دقیقه (* * * * *) با این دستور:
      /home/نام_کاربری/virtualenv/panelbot/3.11/bin/python /home/نام_کاربری/panelbot/cron.py >/dev/null 2>&1
   (مسیر دقیق پایتون بالای صفحهٔ Setup Python App، کنار «Enter to the virtual environment» نوشته شده؛ نسخه‌اش ممکن است 3.10 و... باشد.)
   اگر کرون پایتون را نمی‌پذیرفت، جایگزین:  curl -fsS "آدرس_کرون" >/dev/null
   (آدرس کرون در صفحهٔ /setup بعد از ثبت نمایش داده می‌شود.)

نکته‌ها
-------
• ربات قبلی را (پایدروید / هاست / هر جای دیگر) خاموش کنید؛ وقتی وبهوک فعال است پولینگ هم‌زمان کار نمی‌کند.
• اگر دیتابیس قبلی دارید، فایل vpn_bot.db را قبل از اولین اجرا داخل پوشهٔ panelbot بگذارید.
• دیتابیس و لاگ‌ها: panelbot/vpn_bot.db و panelbot/logs/app.log (بیرون از public_html؛ قابل دانلود از وب نیست).
• بعد از هر تغییر در فایل‌ها، اپ را از Setup Python App یک‌بار Restart کنید.
• لینک مینی‌اپ را می‌شود بعداً از پنل مدیریت ربات هم عوض کرد؛ پیش‌فرض همان دامنهٔ هاست است.
• اگر هاست محدودیت CPU/پروسه شدید دارد، متغیر BOT_THREADS (پیش‌فرض ۸) را کمتر کنید.

فایل‌ها
-------
passenger_wsgi.py   ورودی وب (مینی‌اپ، API، وبهوک، /setup)
bot_core.py         کد اصلی ربات (همان main.py نسخهٔ v15، با تغییرات سازگاری با cPanel)
cron.py             کارهای دوره‌ای
requirements.txt    وابستگی‌ها
local_config.example.py   نمونهٔ تنظیم توکن (اختیاری)
