3x-ui3x-ui
عملیات

ربات Discord

یک ربات Discord را به 3x-ui متصل کنید تا اعلان‌های بی‌درنگ Embed، گزارش‌های دوره‌ای همراه با نسخه پشتیبان پایگاه‌داده و فرمان‌های تعاملی را در یک کانال دریافت کنید.

3x-ui یکپارچگی کاملی با Discord فراهم می‌کند: ارسال هشدارهای بی‌درنگ از طریق گذرگاه رویدادها (EventBus)، گزارش‌های دوره‌ای وضعیت سرور به‌همراه فایل پشتیبان پایگاه‌داده، و پردازش فرمان‌های تعاملی از طریق Discord Gateway.

اعلان‌های لحظه‌ای و گزارش‌های دوره‌ای از تماس‌های خروجی HTTPS به Discord REST API v10 استفاده می‌کنند. فرمان‌های تعاملی ربات نیز از طریق یک اتصال پس‌زمینه WebSocket امن به Discord Gateway برقرار می‌شوند.

راه‌اندازی

ساخت برنامه و ربات در Discord

  1. وارد Discord Developer Portal شوید.
  2. روی New Application در بالا سمت راست کلیک کنید، یک نام مشخص کنید (مثلاً 3x-ui Notifier) و تایید نمایید.
  3. در نوار کناری چپ، به تب Bot بروید.
  4. روی Reset Token (یا Add Bot) کلیک کنید و Bot Token را کپی نمایید. این توکن را محفوظ نگه دارید.
  5. در بخش Privileged Gateway Intents، گزینه Message Content Intent را فعال کنید (برای خواندن فرمان‌هایی مانند !status ضروری است).

دعوت ربات به سرور Discord

  1. در پرتال توسعه‌دهندگان، به OAuth2 → URL Generator بروید.
  2. در بخش Scopes، گزینه bot را علامت بزنید.
  3. در بخش Bot Permissions، دسترسی‌های زیر را انتخاب کنید:
    • Send Messages (ارسال پیام)
    • Embed Links (ارسال امبدها)
    • Attach Files (پیوست فایل‌ها — جهت ارسال نسخه پشتیبان پایگاه‌داده ضروری است)
    • Read Message History (خواندن تاریخچه پیام‌ها)
  4. لینک تولیدشده در پایین صفحه را کپی کرده و در مرورگر باز کنید تا ربات به سرور شما اضافه شود.

کپی کردن Channel ID

  1. در کلاینت دیسکورد، حالت توسعه‌دهنده را فعال کنید: User Settings → Advanced → Developer Mode (روشن).
  2. روی کانالی که می‌خواهید اعلان‌ها و تعامل با ربات در آن انجام شود راست‌کلیک کرده و Copy Channel ID را انتخاب کنید.
  3. مطمئن شوید ربات دسترسی مشاهده و ارسال پیام در این کانال را دارد.

پیکربندی پنل

  1. در پنل 3x-ui، به تنظیمات پنل → ربات Discord (یا آدرس /settings#discord) بروید.
  2. در بخش عمومی:
    • گزینه فعال‌سازی اعلان‌های Discord را روشن کنید.
    • Bot Token و Channel ID خود را وارد کنید.
    • شناسه کاربری عددی دیسکورد خود را در شناسه‌های کاربری ادمین وارد نمایید (راست‌کلیک روی نام خودتان → Copy User ID؛ شناسه‌های متعدد را با کاما جدا کنید).
    • زبان مورد نظر خود برای ربات را انتخاب کنید.
  3. در بخش اعلان‌ها:
    • زمان‌بندی گزارش‌ها را تنظیم کنید (مثلاً @daily، @weekly یا عبارت crontab سفارشی).
    • در صورت تمایل، گزینه پشتیبان‌گیری پایگاه‌داده را فعال کنید تا فایل x-ui.db به‌صورت خودکار ضمیمه گزارش‌ها شود.
    • رویدادهای مورد نظر برای دریافت هشدار و آستانه‌های بار CPU/RAM را تنظیم نمایید.
  4. روی ارسال اعلان آزمایشی کلیک کنید تا از صحت ارتباط مطمئن شوید.
  5. برای اعمال تغییرات روی ذخیره کلیک نمایید.

فرمان‌های ربات

هنگام فعال بودن، ربات به فرمان‌های ارسال‌شده در کانال پیکربندی‌شده گوش می‌دهد (پشتیبانی از هر دو پیشوند ! و /). تنها کاربرانی که شناسه‌ی آن‌ها در شناسه‌های کاربری ادمین ثبت شده مجاز به اجرای فرمان‌ها هستند؛ پیام‌های سایر کاربران نادیده گرفته می‌شود و در صورت خالی بودن این فیلد، اجرای فرمان‌ها غیرفعال خواهد بود. فرمان !backup فایل پایگاه‌داده را در کانال ارسال می‌کند، بنابراین کانالی را انتخاب کنید که فقط ادمین‌ها به آن دسترسی داشته باشند:

فرمانعملکرد
!statusنمایش بار پردازشی سیستم، مصرف RAM، وضعیت هسته Xray، اتصالات و تعداد کاربران آنلاین.
!reportتولید و ارسال فوری گزارش کامل وضعیت سرور و پروکسی.
!backupارسال فوری فایل نسخه پشتیبان پایگاه‌داده (x-ui.db) و config.json.
!usage <email>بررسی مصرف ترافیک (دانلود/آپلود)، سقف حجم و تاریخ انقضای یک کلاینت خاص.
!inboundsفهرست تمام اینباندهای فعال به همراه پورت، پروتکل، ترافیک و تعداد کلاینت‌ها.
!restartراه‌اندازی مجدد ایمن هسته Xray بدون نیاز به ری‌استارت پنل تحت وب.
!helpنمایش فهرست فرمان‌های در دسترس ربات.

هشدارهای رویدادها

هشدارها به‌صورت ساختاریافته در قالب Discord Embed همراه با رنگ‌بندی تشخیصی ارسال می‌شوند:

رویدادنشانگرتوضیح
xray.crash🔴 قرمزکرش کردن هسته Xray؛ همراه با علت و زمان دقیق
outbound.down🔴 قرمزشکست در آزمون اتصال اوتباند
outbound.up🟢 سبزبرقراری مجدد اتصال اوتباند
node.down🔴 قرمزخارج از دسترس شدن یا قطع اتصال نود راه دور
node.up🟢 سبزاتصال مجدد و بازگشت سلامت نود راه دور
cpu.high🟠 نارنجیعبور میزان مصرف CPU از آستانه تعیین‌شده (discordCpu)
memory.high🟠 نارنجیعبور میزان مصرف RAM از آستانه تعیین‌شده (discordMemory)
login.attempt🟢 / 🔴تلاش برای ورود به پنل تحت وب همراه با نام کاربری، IP و وضعیت ورود

هشدارهای ورود فقط نام کاربری و آدرس IP کلاینت را گزارش می‌دهند. رمزهای عبور هرگز ذخیره یا ارسال نمی‌شوند.

راهنمای تنظیمات

پارامترمقدار پیش‌فرضتوضیح
discordBotEnablefalseکلید اصلی فعال‌سازی ربات و هشدارهای Discord.
discordBotToken(محرمانه)توکن ربات دریافتی از Discord Developer Portal.
discordChannelId(خالی)شناسه عددی (Snowflake ID) کانال مقصد در دیسکورد.
discordAdminIds(خالی)شناسه‌های عددی کاربران مجاز به اجرای فرمان‌ها (با کاما جدا شوند).
discordLangen-USزبان پیام‌ها و گزارش‌های ارسالی ربات دیسکورد.
discordRunTime@dailyزمان‌بندی Cron برای ارسال خودکار گزارش وضعیت.
discordBotBackupfalseضمیمه کردن خودکار فایل نسخه پشتیبان (x-ui.db) به گزارش‌ها.
discordEnabledEventslogin.attempt,cpu.highفهرست رویدادهای فعال برای ارسال هشدار (با کاما جدا شوند).
discordCpu80آستانه درصد مصرف پردازنده (CPU) جهت ارسال هشدار (۰ تا ۱۰۰).
discordMemory80آستانه درصد مصرف رم (RAM) جهت ارسال هشدار (۰ تا ۱۰۰).

عیب‌یابی

  • خطای invalid bot token (401): مطمئن شوید که توکن ربات را به‌طور کامل از تب Bot کپی کرده‌اید، نه Client Secret یا Application ID.
  • خطای missing permissions (403): بررسی کنید که رول ربات در کانال یا دسته‌بندی مربوطه دارای دسترسی‌های Send Messages، Embed Links و Attach Files باشد.
  • عدم پاسخگویی به فرمان‌ها: بررسی کنید که شناسه‌ی عددی شما در Admin User IDs ثبت شده باشد. همچنین مطمئن شوید گزینه Message Content Intent در پرتال دیسکورد روشن است و پنل را ری‌استارت کنید؛ دیسکورد در صورت نبود این دسترسی اتصال را قطع می‌کند.
  • خطای channel not found (404): از صحت Channel ID اطمینان حاصل کنید و بررسی کنید که ربات حتماً در سروری که کانال در آن قرار دارد عضو باشد.
  • پراکسی برای درخواست‌های خروجی: اگر سرور شما برای اتصال به دیسکورد به پروکسی نیاز دارد، در تنظیمات پنل گزینه Panel Outbound را پیکربندی کنید؛ درخواست‌های دیسکورد به‌صورت خودکار از طریق آن هدایت می‌شوند.

On this page