PasarguardBotv3.1.0
شروع

پورت‌ها

پورت‌های سرویس‌ها، چیزهایی که روی هر پورت سرو می‌شود و توصیه‌های فایروال

نصب Docker چهار پورت را روی سرور می‌گیرد. اسکریپت نصب قبل از شروع آزاد بودنشان را چک می‌کند.

پورتسرویسگوش می‌دهد رویاز اینترنت در دسترس؟
6160ربات (وب‌سرور FastAPI)همهٔ اینترفیس‌هابله، باید باشد
6161Redisفقط 127.0.0.1خیر
6162MariaDBفقط 127.0.0.1خیر
6163phpMyAdminهمهٔ اینترفیس‌هابله، بهتر است محدودش کنید

Redis و MariaDB فقط روی localhost باز هستند و از بیرون سرور قابل دسترسی نیستند. کانتینرها از طریق شبکهٔ داخلی Docker به هم وصل می‌شوند (redis:6379 و mariadb:3306).


روی پورت 6160 چه چیزی سرو می‌شود؟

مسیرکاربردچه کسی صدا می‌زند
/api/webhookوب‌هوک رویدادهای پنل پاسارگارد (هشدار حجم/زمان)سرور پنل پاسارگارد
/api/payments/tonpays/callbackتأیید آنی پرداخت TonPaysسرور TonPays
/webappصفحهٔ وب‌اپ (Mini App) و پنل تحت وبکاربر / ادمین در تلگرام یا مرورگر
/api/webappAPI وب‌اپ کاربر (آدرس پیشنهادی WEBAPP_URL هم همین است)وب‌اپ
/api/panelAPI پنل تحت وب ادمینپنل تحت وب

پس پورت 6160 باید از اینترنت (و مخصوصاً از سرور پنل پاسارگارد) در دسترس باشد. اگر SSL را مستقیم روی ربات فعال کرده باشید، همین پورت فقط HTTPS جواب می‌دهد. دامنه و SSL


تغییر پورت وب‌سرور

پورت از متغیر FASTAPI_PORT در .env خوانده می‌شود و docker-compose هم پورت کانتینر را از همین مقدار می‌گیرد:

pasarguardbot edit-env
# FASTAPI_PORT=8443

بعد ری‌استارت را تأیید کنید. یادتان باشد این‌ها را هم عوض کنید:

  • آدرس وب‌هوک در پنل پاسارگارد
  • WEBAPP_URL (اگر پورت در آن آمده)
  • قوانین فایروال

اگر FASTAPI_PORT را خالی بگذارید، وب‌سرور ربات کلاً خاموش می‌شود (وب‌هوک، وب‌اپ و TonPays کار نمی‌کنند، ولی خود ربات تلگرام کار می‌کند).

پورت‌های 6161، 6162 و 6163 در فایل docker-compose ثابت هستند. تغییرشان با 6) Edit docker-compose.yml ممکن است، ولی آپدیت بعدی فایل را دوباره از گیت‌هاب می‌گیرد و تغییر شما از بین می‌رود.


پورت اشغال است

اگر هنگام نصب ببینید:

[!] Port 6160 appears to be in use.
Continue anyway? (y/N):

یعنی برنامهٔ دیگری روی آن پورت است. پیدا کردنش:

ss -ltnp | grep -E ':(6160|6161|6162|6163)\s'

آن برنامه را متوقف کنید یا (برای 6160) پورت ربات را عوض کنید. اگر با y ادامه دهید، کانتینری که پورتش اشغال است بالا نمی‌آید.


فایروال

حداقل‌های لازم:

پورتپیشنهاد
22 (SSH)باز (یا هر پورتی که SSH روی آن است)
6160باز (برای پنل پاسارگارد، تلگرام و کاربران وب‌اپ)
80فقط هنگام گرفتن/تمدید SSL با AutoSSL باید باز باشد
6163فقط برای آی‌پی خودتان یا بسته

نمونه با ufw:

ufw allow 22/tcp
ufw allow 6160/tcp
ufw allow 80/tcp
ufw enable

Docker قوانین ufw را دور می‌زند

پورت‌هایی که Docker منتشر می‌کند (6160 و 6163) مستقیم در iptables باز می‌شوند و ufw deny 6163 جلویشان را نمی‌گیرد. برای محدود کردن phpMyAdmin از زنجیرهٔ DOCKER-USER استفاده کنید:

# فقط آی‌پی 203.0.113.10 به phpMyAdmin دسترسی داشته باشد
iptables -I DOCKER-USER -p tcp -m conntrack --ctorigdstport 6163 ! -s 203.0.113.10 -j DROP

این قانون با ریبوت پاک می‌شود؛ برای ماندگاری از iptables-persistent (netfilter-persistent save) استفاده کنید.

راه ساده‌تر برای phpMyAdmin: بستن کامل 6163 با قانون بالا (بدون آی‌پی مجاز) و دسترسی از طریق تونل SSH:

ssh -L 6163:127.0.0.1:6163 root@SERVER_IP
# سپس در مرورگر خودتان: http://127.0.0.1:6163

On this page