PasarguardBotv3.1.0
شروع

نصب

نصب مرحله‌به‌مرحله PasarguardBot روی سرور لینوکس با اسکریپت مدیریت

این صفحه نصب ربات را از صفر تا اولین /start توضیح می‌دهد. نصب کامل حدود ۵ تا ۱۰ دقیقه طول می‌کشد.

پیش‌نیازها

موردتوضیح
سرور لینوکسUbuntu / Debian پیشنهادی است. اسکریپت روی Fedora، CentOS/RHEL، Arch، openSUSE و Alpine هم کار می‌کند (روی سیستم‌های تست‌نشده هشدار می‌دهد)
معماریamd64 یا arm64 (ایمیج‌ها فقط برای این دو ساخته می‌شوند)
دسترسیroot یا کاربری با sudo (اسکریپت خودش با sudo دوباره اجرا می‌شود)
فضای دیسکحداقل ۲ گیگابایت خالی
پورت‌های آزاد6160 تا 6163 — جزئیات در پورت‌ها
توکن رباتاز @BotFather
آیدی عددی ادمینآیدی عددی اکانت تلگرام خودتان (مثلاً با ربات‌های UserInfo)
پنل پاسارگاردآدرس و یوزر/رمز ادمین (یا API Key) پنل — بعد از نصب از داخل ربات اضافه می‌شود

Docker لازم نیست از قبل نصب باشد

اگر Docker روی سرور نباشد، اسکریپت خودش آن را نصب می‌کند (از get.docker.com یا پکیج‌منیجر سیستم).


اجرای اسکریپت

روی سرور اجرا کنید:

bash <(curl -fsSL https://raw.githubusercontent.com/AmirKenzo/PasarguardBot/main/scripts/pasarguardbot.sh)

اسکریپت این کارها را خودکار انجام می‌دهد:

  • اگر root نباشید، خودش با sudo دوباره اجرا می‌شود
  • سیستم‌عامل و پکیج‌منیجر را تشخیص می‌دهد (apt-get، dnf، yum، pacman، zypper، apk)
  • ابزارهای پایه (curl، openssl، nano، …) را نصب می‌کند
  • دستور pasarguardbot را ثبت می‌کند تا بعداً فقط با همین یک کلمه منو را باز کنید

دفعات بعد کافی است بزنید:

pasarguardbot

منوی مدیریت باز می‌شود:

PasarguardBot — manager
PasarguardBot — manager v1.3.2

Manager script : v1.3.2
Host OS        : Ubuntu 24.04 LTS

● Status: Not installed

┌────────────────────────────────────────┐
│  1) Install bot                        │
│  2) Uninstall bot                      │
│  3) Update bot                         │
│  4) View logs                          │
│  5) Edit .env file                     │
│  6) Edit docker-compose.yml            │
│  7) Full restart                       │
│  8) Service status                     │
│  9) Show webhook & URLs                │
│ 10) Update manager script              │
│ 11) Fix Docker network                 │
│ 12) Get SSL certificate (AutoSSL)      │
│  0) Exit                               │
└────────────────────────────────────────┘
Select an option: 

برای نصب، گزینهٔ 1 را بزنید. توضیح همهٔ گزینه‌ها در منوی مدیریت سرور است.


مراحل نصب

انتخاب حالت نصب

Install mode
Install mode

1) Docker (full stack — Redis/MariaDB/phpMyAdmin/bot in containers)
2) Native — temporarily disabled, use Docker for now
0) Cancel
Choice: 

گزینهٔ 1 (Docker) را بزنید. ربات، دیتابیس MariaDB، Redis و phpMyAdmin هر کدام در یک کانتینر جدا بالا می‌آیند.

نصب Native فعلاً غیرفعال است

گزینهٔ 2 در حال حاضر غیرفعال است و با انتخابش فقط پیام «Native install is temporarily disabled — please use Docker (option 1).» نمایش داده می‌شود. از Docker استفاده کنید.

انتخاب برنچ

Select install branch
Select install branch

1) main  (recommended — latest stable)
2) dev   (testing only — may be unstable)
0) Cancel
Choice [1]: 
انتخابمعنی
Enter یا 1برنچ main — نسخهٔ پایدار (پیشنهادی برای سرور اصلی)
2برنچ dev — آخرین تغییرات، فقط برای تست؛ ممکن است ناپایدار باشد
0انصراف

برنچ انتخابی ذخیره می‌شود و در بروزرسانی‌های بعدی به‌عنوان «Last used branch» پیشنهاد داده می‌شود.

بررسی‌های خودکار

اسکریپت قبل از هر کاری این موارد را چک می‌کند:

  • نصب قبلی: اگر ربات قبلاً نصب شده باشد می‌پرسد Continue (will keep existing .env and data)? (y/N): — با y ادامه می‌دهد و .env و دیتای قبلی دست نمی‌خورد.
  • فضای دیسک: حداقل ۲۰۴۸ مگابایت.
  • Docker: اگر نصب نباشد نصبش می‌کند و تا ۳۰ ثانیه منتظر بالا آمدن سرویس Docker می‌ماند.
  • پورت‌ها: 6160، 6161، 6162، 6163. اگر یکی توسط برنامهٔ دیگری اشغال باشد می‌پرسد Continue anyway? (y/N): (پورت‌هایی که کانتینرهای خود ربات گرفته‌اند نادیده گرفته می‌شوند).

وارد کردن اطلاعات تلگرام

Telegram credentials
[*] Enter your Telegram credentials:

API_ID (from my.telegram.org) [2040]:
API_HASH [b18441a1ff607e10a989891a5462e627]:
BOT_TOKEN (from @BotFather):
ADMIN_ID (numeric Telegram user ID):
API_ID (from my.telegram.org) [2040]:اختیاری

اختیاری. با Enter مقدار عمومی Telegram Desktop (2040) ست می‌شود. پیشنهاد می‌شود API_ID شخصی خودتان را از my.telegram.org بسازید و وارد کنید.

API_HASH [b18441a1…]:اختیاری

اختیاری. همراه API_ID از my.telegram.org گرفته می‌شود. Enter = مقدار عمومی.

BOT_TOKEN (from @BotFather):اجباری

توکن ربات از @BotFather. اگر خالی بگذارید دوباره پرسیده می‌شود (This value is required).

ADMIN_ID (numeric Telegram user ID):اجباری

آیدی عددی تلگرام ادمین اصلی. بعداً می‌توانید در .env چند ادمین را با کاما جدا کنید، مثل 111111111,222222222

فاصله‌های اضافه خودکار حذف می‌شوند. اگر فایل .env از قبل وجود داشته باشد، این مرحله کامل رد می‌شود.

ساخت خودکار بقیهٔ تنظیمات

این موارد پرسیده نمی‌شوند و خودکار ساخته می‌شوند:

موردمقدار
دیتابیس MariaDBدیتابیس و یوزر pasarguardbot با رمز تصادفی ۲۴ کاراکتری؛ رمز root تصادفی ۳۲ کاراکتری
SQLALCHEMY_DATABASE_URLmysql+asyncmy://pasarguardbot:…@mariadb:3306/pasarguardbot
REDIS_URLredis://redis:6379/0
FASTAPI_PORT6160
TELETHON_SESSION_PATHsessions/KenzoSession
CRYPTO_KEY و WEBHOOK_SECRETدر دیتابیس (جدول secrets) با مقدار تصادفی ساخته می‌شوند — نه در .env

رمزهای دیتابیس یک‌بار در ترمینال چاپ می‌شوند. اگر از دستشان دادید، همیشه داخل /opt/pasarguardbot/.env هستند.

بالا آمدن سرویس‌ها

اسکریپت فایل docker-compose.yml را از برنچ انتخابی دانلود و اعتبارسنجی می‌کند، ایمیج‌ها را از ghcr.io/amirkenzo/pasarguardbot می‌کشد و کانتینرها را بالا می‌آورد (تا ۹۰ ثانیه منتظر می‌ماند).

در اولین اجرا، ربات خودش جدول‌های دیتابیس را می‌سازد (alembic upgrade head).

اولین بالا آمدن MariaDB ممکن است چند دقیقه طول بکشد. اگر ربات بلافاصله جواب نداد، یکی دو دقیقه صبر کنید.

خلاصهٔ نصب و لاگ زنده

در پایان مسیرها، ایمیج، برنچ، پورت‌ها و آدرس وب‌هوک چاپ می‌شود و بعد لاگ زندهٔ ربات نمایش داده می‌شود:

Tailing live logs so you can confirm it came up healthy — press Ctrl+C to stop.

وقتی در لاگ دیدید ربات بالا آمده، Ctrl+C بزنید و بعد Enter تا به منو برگردید.


اولین ورود به ربات

  1. در تلگرام ربات خودتان را باز کنید و /start بزنید.
  2. چون آیدی شما در ADMIN_ID است، دکمهٔ ⚙️ پنل مدیریت را می‌بینید (یا دستور /panel).
  3. از 📚 منوی پنل ها پنل پاسارگارد را اضافه کنید — منوی پنل‌ها.
  4. از 🗞 ساخت پلن پلن فروش بسازید — ساخت پلن.
  5. از ⚙️ تنظیمات ربات گزینهٔ وضعیت فروش را روشن کنید (پیش‌فرض خاموش است).
  6. از 💳 تنظیمات درگاه حداقل یک روش پرداخت (کارت یا ارز) تنظیم و از ⚙️ تنظیمات ربات دکمه‌اش را روشن کنید — تنظیمات درگاه.
  7. کانال‌های لاگ را ست کنید تا رسیدها و بکاپ‌ها جایی ارسال شوند — مدیریت لاگ‌ها.

مسیر کامل راه‌اندازی در چک‌لیست راه‌اندازی آمده است.


آدرس وب‌هوک و phpMyAdmin

هر وقت لازم شد، از منو گزینهٔ 9) Show webhook & URLs (یا دستور pasarguardbot urls) را بزنید:

Webhook & URLs
[*] Webhook (set in Pasarguard panel):
URL:     http://YOUR_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://YOUR_IP:6163

[!] Replace the IP with your domain if you use one.
  • خود مقدار Secret چاپ نمی‌شود؛ آن را از phpMyAdmin بردارید: دیتابیس pasarguardbot ← جدول secrets ← ردیفی که name آن webhook_secret است، ستون value (یک رشتهٔ ۶۴ کاراکتری).
  • آدرس و هدر وب‌هوک را در پنل پاسارگارد ست کنید تا اطلاع‌رسانی حجم/زمان دقیق کار کند: اطلاع‌رسانی حجم و زمان
  • این خروجی همیشه با http:// چاپ می‌شود؛ اگر SSL دارید خودتان https:// و دامنه را جایگزین کنید.

دامنه، SSL و وب‌اپ

برای وب‌اپ (Mini App)، دکمهٔ 🖥 پنل تحت وب و درگاه TonPays حتماً به آدرس HTTPS نیاز دارید (تلگرام آدرس http را برای Mini App قبول نمی‌کند). راهنمای کامل: دامنه و SSL.


ساختار فایل‌ها روی سرور

.env — تنظیمات اصلی (دسترسی 600)
docker-compose.yml
pasarguardbot.sh — اسکریپت مدیریت
fix-docker-netplan.sh
.install_mode / .install_branch
کانتینرایمیجپورت
pasarguardbotghcr.io/amirkenzo/pasarguardbot6160 (همهٔ اینترفیس‌ها)
pasarguardbot-mariadbmariadb:12127.0.0.1:6162
pasarguardbot-redisredis:8-alpine127.0.0.1:6161
pasarguardbot-phpmyadminphpmyadmin:5-apache6163 (همهٔ اینترفیس‌ها)

مراحل بعدی

On this page