══════════════════════════════════════════════════════════════
  پنل لایسنس «تایریار» نسخه ۲ — راهنمای نصب و ارتقا (cPanel)
══════════════════════════════════════════════════════════════

■ پیش‌نیازها
  • هاست اشتراکی با PHP نسخه 7.4 یا بالاتر (تقریباً همه هاست‌های ایران)
  • افزونه PDO + pdo_sqlite (پیش‌فرض فعال است) یا MySQL اختیاری
  • افزونه ZipArchive فقط برای قابلیت «آپدیت خود پنل» (بقیه بدون آن کار می‌کند)
  • HTTPS اختیاری ولی توصیه می‌شود

■ نصب تازه (حدود ۳ دقیقه)
  1) فایل زیپ پنل را در cPanel ← File Manager در پوشه‌ای مثل
     public_html/panel-tayeryar آپلود و Extract کنید.
  2) از مرورگر آدرس زیر را باز کنید:
         https://دامنه-شما.ir/panel-tayeryar/install.php
  3) ویزارد ۴ مرحله‌ای را کامل کنید:
       مرحله ۱: بررسی خودکار پیش‌نیازها
       مرحله ۲: دیتابیس — گزینه SQLite را بگذارید (هیچ تنظیمی نمی‌خواهد)
       مرحله ۳: انتخاب نام کاربری و رمز مدیر پنل
  4) پیام «نصب کامل شد» می‌بینید و آدرس API نمایش داده می‌شود.
  5) مهم: فایل install.php را از هاست حذف کنید (امنیتی).

■ ارتقا از نسخه ۱ به نسخه ۲ (اگر قبلاً نصب کرده‌اید — ۱ دقیقه)
  دیتابیس و لایسنس‌های قبلی دست‌نخورده می‌مانند:
  1) این ۴ فایل را روی فایل‌های قبلی در همان پوشه بازنویسی
     (Overwrite) کنید:
       admin.php ، api.php ، install.php ، includes/init.php
     (config.php و پوشه data/ را دست نزنید!)
  2) تمام. جدول‌های جدید و پوشه‌های backups/ و updates/ در اولین
     ورود به پنل خودکار ساخته می‌شوند.
  3) بعد از ورود، از پیشخوان یک «بکاپ» بگیرید تا مطمئن شوید.

■ بخش‌های پنل نسخه ۲
  📊 پیشخوان        آمار کلی، آنلاین‌های لحظه‌ای، نمودار ورودهای ۷ روز،
                    وضعیت انتشار آخرین نسخه برنامه و آخرین رویدادها
  👥 لایسنس‌ها       ساخت/تمدید/تاریخ/رمز/سقف تب/ریست دستگاه/حذف + جستجو
  💾 بکاپ و بازیابی  ساخت بکاپ، دانلود، بازگردانی (با بکاپ ایمنی خودکار
                    قبل از بازگردانی)، حذف — فایل‌ها در پوشه backups/
  ⬆️ به‌روزرسانی     دو بخش:
                    ۱) انتشار نسخه جدید ربات: زیپ برنامه + شماره نسخه +
                       توضیحات را آپلود کنید؛ همه ربات‌ها در heartbeat
                       بعدی (حداکثر ۱۰ دقیقه) دکمه نارنجی «دانلود آپدیت»
                       را می‌بینند و با اجرای دوباره RUN-TireYar.bat
                       آپدیت خودکار نصب می‌شود.
                    ۲) آپدیت خود پنل: فایل tireyar-panel-update.zip را
                       آپلود کنید؛ فایل‌های کد جایگزین می‌شوند ولی
                       config.php و دیتابیس و بکاپ‌ها محفوظ می‌مانند و
                       قبل از اعمال، از فایل‌های فعلی بکاپ گرفته می‌شود.
  📜 لاگ رویدادها    ۳۰۰ رویداد آخر با رنگ‌بندی (ورود موفق/ناموفق و…)
  🔗 اتصال برنامه    آدرس API با کلیک-کپی + راهنمای تنظیم پیامک

■ نکته مهم برای انتشار آپدیت ربات
  محتوای زیپ باید محتویاتِ پوشه TireYar باشد (tireyar.py و core/ و
  ui/ و assets/) — همان چیزی که در tireyar-app.zip داخل پوشه TireYar
  است. پوشه runtime را هرگز داخل زیپ نگذارید.

■ ساخت لایسنس برای خریدار
  1) وارد admin.php شوید.
  2) بخش «ساخت لایسنس جدید»: نام کاربری، رمز، تاریخ انقضا
     (خالی = ۳۰ روز)، سقف تب‌های همزمان و یادداشت (نام خریدار).
  3) آدرس API + نام کاربری + رمز را برای خریدار بفرستید.
  4) اولین ورود خریدار، شناسه دستگاهش را قفل می‌کند؛ جابه‌جایی سیستم
     = دکمه «ریست دستگاه».

■ عیب‌یابی
  • «خطای اتصال دیتابیس»: دسترسی پوشه data را 755 کنید.
  • «نوشتن config.php ناموفق بود»: دسترسی ریشه پوشه پنل را 755 کنید.
  • آپدیت پنل خطای ZipArchive داد: از پشتیبانی هاست بخواهید افزونه
    zip را فعال کند؛ تا آن موقع آپدیت پنل را دستی (آپلود فایل‌ها)
    انجام دهید.
  • فراموشی رمز مدیر: فایل data/installed.lock را حذف و install.php
    را دوباره اجرا کنید (مدیر جدید ساخته می‌شود؛ اگر خطای تکراری
    بودن نام کاربری داد، با phpMyAdmin ردیف مدیر قبلی را حذف کنید).
  • بکاپ‌های SQLite (.db) فقط روی هاست SQLite بازگردانی می‌شوند و
    بکاپ‌های MySQL (.sql) فقط روی MySQL.

■ امنیت
  • پوشه‌های data/ و backups/ و updates/ با htaccess بسته هستند و
    از وب مستقیم قابل دانلود نیستند.
  • دانلود بکاپ و انتشار آپدیت فقط با نشست مدیر انجام می‌شود.
  • محدودسازی تلاش ورود: ۱۰ بار در ۱۰ دقیقه برای هر IP.
══════════════════════════════════════════════════════════════
