PasarguardBotv3.1.0
پنل ادمینمنوی پنل‌ها

اطلاع‌رسانی حجم و زمان

حالت وب‌هوک یا ربات برای هشدار کم‌حجم و انقضای کانفیگ، و تنظیم Webhook در پنل پاسارگارد.

ربات می‌تواند وقتی حجم کاربر کم شد یا زمان سرویس رو به اتمام است، به کاربر پیام بدهد. برای هر پنل دو حالت دارید:

حالتبرچسب دکمهمعنی
ربات (پیش‌فرض)📡 اطلاع‌رسانی (🤖)خود ربات هر دقیقه لیست کاربران را از پنل می‌گیرد و بررسی می‌کند
وب‌هوک (پیشنهادی)📡 اطلاع‌رسانی (🔔)خود پنل فقط برای همان کاربری که اتفاقی برایش افتاده، رویداد را به ربات می‌فرستد

پیشنهاد

حالت وب‌هوک را فعال کنید. سبک‌تر و دقیق‌تر است و فشار اضافه‌ای روی پنل نمی‌آورد.

مرتبط با منوی پنل‌ها و مرجع تنظیمات پنل.


حالت ربات (پیش‌فرض)

در این حالت ربات هر ۶۰ ثانیه به API پنل درخواست می‌زند، کاربران را می‌خواند و حجم و زمانشان را بررسی می‌کند.

چرا پیشنهاد نمی‌شود:

  • روی پنل‌های شلوغ، هر دقیقه تعداد زیادی درخواست به پنل فرستاده می‌شود
  • بار CPU و API پنل بالا می‌رود
  • این بررسی فقط برای پنل‌هایی اجرا می‌شود که وب‌هوکشان روشن نیست

اگر همهٔ پنل‌ها روی وب‌هوک باشند، این بررسی دوره‌ای برای آن‌ها کلاً انجام نمی‌شود.


حالت وب‌هوک (پیشنهادی)

پنل پاسارگارد وقتی رویدادی رخ دهد (مثلاً رسیدن به درصد مصرف یا تعداد روز باقی‌مانده)، همان کاربر را برای ربات می‌فرستد. دیگر لازم نیست ربات همهٔ کاربران را مرتب بررسی کند.

مزیت‌ها:

  • بهینه‌تر و سبک‌تر
  • فشار خیلی کمتر روی پنل
  • هشدار نزدیک‌تر به لحظهٔ واقعی رویداد

رویدادهایی که ربات استفاده می‌کند

رویداد پاسارگاردکاری که ربات انجام می‌دهد
reached_usage_percentپیام کم‌حجم با درصد مصرف و حجم باقی‌مانده
reached_days_leftپیام تعداد روز باقی‌مانده تا انقضا
user_limitedپیام تمام شدن حجم. اگر سرویس تست باشد، از پنل و ربات حذف می‌شود
user_expiredپیام انقضا (به همراه مهلت حذف، اگر حذف خودکار منقضی‌ها روشن باشد). اگر سرویس تست باشد، بلافاصله حذف می‌شود
user_created، user_updated، user_deleted، user_enabled، user_disabledفقط در لاگ سرور ثبت می‌شوند و پیامی به کاربر فرستاده نمی‌شود

ربات فقط به رویدادهای پنلی پاسخ می‌دهد که اطلاع‌رسانی‌اش روی 🔔 باشد، و فقط برای سرویس‌هایی که در خود ربات ثبت شده‌اند.


فعال‌سازی در ربات

  1. وارد پنل مدیریت شوید.
  2. 📚 منوی پنل ها → 📉 وضعیت پنل ها را باز کنید و پنل را انتخاب کنید.
  3. دکمهٔ 📡 اطلاع‌رسانی را بزنید تا به حالت وب‌هوک برود:
    • 📡 اطلاع‌رسانی (🤖) یعنی حالت ربات
    • 📡 اطلاع‌رسانی (🔔) یعنی حالت وب‌هوک
  4. پیام تایید این است: ✅ وضعیت اطلاع‌رسانی به وب‌هوک 🔔 تغییر یافت!

اگر پنل در ربات هنوز روی 🤖 باشد، رویدادهای وب‌هوک آن پنل نادیده گرفته می‌شوند و بررسی دوره‌ای ربات برای آن پنل ادامه پیدا می‌کند.


تنظیم در پنل پاسارگارد

مسیر داخل پنل: Settings → Webhook

برای دیدن تمام‌صفحه روی تصویر کلیک کنید:

تنظیمات Webhook در پاسارگارد

۱. گرفتن URL و Secret

آدرس (URL): روی سرور ربات دستور زیر را بزنید (یا در منوی pasarguardbot گزینهٔ 9) Show webhook & URLs را انتخاب کنید):

pasarguardbot urls
Webhook & URLs
[*] Webhook (set in Pasarguard panel):
URL:     http://SERVER_IP:6160/api/webhook
Header:  x-webhook-secret: <from DB table secrets, name=webhook_secret>
Note:   crypto_key / webhook_secret are stored in DB (not .env)

[*] phpMyAdmin:
URL:  http://SERVER_IP:6163

همان URL را در پنل می‌گذارید. اگر دامنه دارید، به‌جای IP دامنه را بنویسید.

سکرت (Secret): این دستور مقدار سکرت را چاپ نمی‌کند. سکرت هنگام نصب به‌صورت تصادفی ساخته می‌شود و در دیتابیس ذخیره است، نه در .env. برای خواندنش:

phpMyAdmin را باز کنید

آدرس phpMyAdmin همان است که در خروجی بالا آمده (پورت 6163). با کاربر root و رمز MARIADB_ROOT_PASSWORD از فایل .env وارد شوید.

جدول secrets

دیتابیس pasarguardbot را باز کنید، سپس جدول secrets را.

ردیف webhook_secret

مقدار ستون value در ردیفی که name آن برابر webhook_secret است را کپی کنید. یک رشتهٔ ۶۴ کاراکتری است.

جزئیات بیشتر: نصب و منوی مدیریت سرور.

۲. General Settings

گزینهپیشنهادتوضیح
Enable Webhooksروشن (ON)بدون این، هیچ رویدادی فرستاده نمی‌شود
Timeout (seconds)مثلاً 180مهلت پاسخ ربات (۱ تا ۳۰۰)
Retry Attemptsمثلاً 3تعداد تلاش مجدد اگر ارسال شکست بخورد
Proxy URLمعمولاً خالیفقط اگر پنل برای رسیدن به ربات پروکسی لازم دارد

۳. Webhook Endpoints

  1. Add Webhook را بزنید.
  2. در فیلد URL آدرس ربات را بگذارید، مثلاً:
http://YOUR_SERVER_IP:6160/api/webhook

یا با دامنه:

https://bot.example.com/api/webhook
  1. در فیلد Secret دقیقاً مقدار webhook_secret را بگذارید که از جدول secrets برداشتید. پنل آن را در هدر x-webhook-secret می‌فرستد و ربات درخواست با سکرت اشتباه را رد می‌کند.
  2. برای یک ربات معمولاً یک Endpoint کافی است. Endpoint اشتباه را حذف کنید.

پورت و مسیر

پورت پیش‌فرض ربات 6160 است (متغیر FASTAPI_PORT) و مسیر باید دقیقاً /api/webhook باشد. پورت‌هایی مثل 8001 یا 8180 مربوط به ربات‌های دیگرند. برای PasarguardBot از خروجی pasarguardbot urls استفاده کنید.

۴. Days Left Notifications

مشخص می‌کند چند روز مانده به انقضا، پنل رویداد بفرستد.

  1. روی + بزنید و عدد روز را وارد کنید.
  2. نمونهٔ رایج: 7، 2 و 1.
  3. مقادیر اضافه را می‌توانید حذف کنید.

بدون حداقل یک عدد، هشدار «روز باقی‌مانده» از وب‌هوک نمی‌آید.

۵. Usage Percentage Notifications

آستانهٔ درصد مصرف حجم را تعیین می‌کند.

  1. روی + بزنید و درصد را وارد کنید (مثلاً 90).
  2. وقتی مصرف به آن درصد برسد، پنل رویداد می‌فرستد و ربات پیام کم‌حجم می‌دهد.
  3. در صورت نیاز چند آستانه بگذارید (مثلاً 80 و 90).

بدون حداقل یک درصد، هشدار کم‌حجم از وب‌هوک کار نمی‌کند.

تمدید حجم را هم تنظیم کنید

اگر از هشدار درصدی استفاده می‌کنید، 📊 تمدید حجم همان پنل را روی باقی+ریست بگذارید تا بعد از تمدید، درصد مصرف از صفر حساب شود.

۶. ذخیره

پایین صفحه Save را بزنید. بدون Save تنظیمات اعمال نمی‌شود.


ترتیب درست

  1. با pasarguardbot urls آدرس وب‌هوک را بگیرید و webhook_secret را از جدول secrets بخوانید
  2. در پنل: Settings → Webhook و Enable Webhooks = ON
  3. یک Endpoint با همان URL و Secret اضافه کنید
  4. Days Left (مثلاً ۱، ۲ و ۷) و Usage Percentage (مثلاً ۹۰) را تنظیم کنید
  5. Save
  6. در ربات، اطلاع‌رسانی همان پنل را روی 🔔 بگذارید
  7. پورت 6160 سرور ربات باید از سرور پنل در دسترس باشد

عیب‌یابی

مشکلبررسی
هیچ پیامی نمی‌آیدEnable Webhooks روشن است؟ Save زده‌اید؟
پنل به ربات نمی‌رسدIP یا دامنه و پورت 6160 درست است؟ فایروال باز است؟
سکرت اشتباه (خطای 403)Secret باید دقیقاً مقدار ردیف webhook_secret در جدول secrets باشد، بدون فاصلهٔ اضافه
ربات رویداد را نادیده می‌گیرددکمهٔ اطلاع‌رسانی همان پنل روی 🔔 است؟
فقط هشدار حجم یا فقط زمان می‌آیدآستانه‌های Usage Percentage یا Days Left خالی نمانده باشد

بعد از ریستور بکاپ‌های قدیمی

اگر از بکاپ نسخه‌های قدیمی ربات (v2.1.4 یا قبل‌تر) ریستور کرده‌اید، این بخش را بخوانید. بعد از هر ریستور، مقدار webhook_secret را دوباره از جدول بخوانید و با Secret داخل پنل مقایسه کنید.


نکات

  • پیش‌فرض ربات حالت 🤖 است. برای هر پنل جداگانه باید به 🔔 عوضش کنید.
  • اگر چند پنل پاسارگارد دارید، وب‌هوک را در هر پنل جداگانه تنظیم کنید (همان Endpoint ربات را در همه بگذارید).
  • تا وقتی حتی یک پنل در ربات روی 🤖 باشد، بررسی دوره‌ای برای همان پنل‌ها هر دقیقه انجام می‌شود.
  • حذف سرویس‌های پولیِ منقضی‌شده (اگر روشن باشد) در هر دو حالت انجام می‌شود.
  • متن پیام‌های اطلاع‌رسانی را در متن‌ها و دکمه‌ها می‌توانید عوض کنید.

On this page