PasarguardBotv3.1.0
شروع

پیکربندی (.env)

مرجع کامل همهٔ متغیرهای فایل .env با مقدار پیش‌فرض و توضیح

همهٔ تنظیمات سطح سرور ربات در فایل /opt/pasarguardbot/.env هستند. در نصب فقط چهار مقدار از شما پرسیده می‌شود (API_ID، API_HASH، BOT_TOKEN، ADMIN_ID) و بقیه خودکار پر می‌شوند. این صفحه همهٔ متغیرها را با پیش‌فرض و کاربردشان توضیح می‌دهد.

بیشتر تنظیمات داخل خود ربات است

وضعیت فروش، درگاه‌ها، پلن‌ها، متن‌ها، کانال‌های لاگ و … در دیتابیس ذخیره می‌شوند و از پنل مدیریت ربات تغییر می‌کنند، نه از .env. اینجا فقط تنظیمات سرور و اتصال‌ها هستند.

ویرایش .env

pasarguardbot edit-env

یا در منو گزینهٔ 5) Edit .env file. فایل با nano (یا ادیتور $EDITOR) باز می‌شود. بعد از ذخیره و خروج (Ctrl+O، Enter، Ctrl+X) می‌پرسد:

Restart the bot? (Y/n):

با Enter یا Y یک ری‌استارت کامل انجام می‌شود (ایمیج ربات pull، بعد down و up -d). تغییرات .env فقط بعد از ری‌استارت اعمال می‌شوند.

CRYPTO_KEY و WEBHOOK_SECRET دیگر در .env نیستند

این دو مقدار حالا در دیتابیس، جدول secrets (ردیف‌های crypto_key و webhook_secret) نگهداری می‌شوند. ربات آن‌ها را از .env نمی‌خواند؛ اگر در .env اضافه یا عوضشان کنید هیچ اثری ندارد.

  • Secret وب‌هوک را از phpMyAdmin (جدول secrets) بردارید؛ گزینهٔ 9 منو آدرس و محل آن را نشان می‌دهد.
  • فقط یک استثنا هست: ریستور بکاپ ربات‌های نسخهٔ 2.1.4 و قدیمی‌تر. آن را طبق ربات‌های قدیمی انجام دهید.

قالب مقادیر

  • مقادیر بولی: true / false (همچنین 1/0، yes/no، on/off).
  • برای خالی گذاشتن یک متغیر اختیاری، کل خطش را با # کامنت کنید یا بعد از = چیزی ننویسید.
  • دور مقدار فاصله نگذارید.

اجباری

متغیرتوضیح
API_IDاز my.telegram.org. در نصب با Enter مقدار عمومی 2040 ست می‌شود
API_HASHهمراه API_ID از my.telegram.org
BOT_TOKENتوکن ربات از @BotFather
ADMIN_IDآیدی عددی ادمین‌ها، با کاما جدا، بدون فاصله. مثال: 111111111,222222222
SQLALCHEMY_DATABASE_URLآدرس اتصال دیتابیس. نصب Docker خودکار می‌سازد: mysql+asyncmy://pasarguardbot:<رمز>@mariadb:3306/pasarguardbot

اضافه کردن ادمین جدید

آیدی عددی ادمین جدید را با کاما به ADMIN_ID اضافه کنید و ربات را ری‌استارت کنید. همهٔ آیدی‌های این لیست دسترسی کامل پنل مدیریت را دارند.


وب‌سرور و HTTPS

وب‌سرور داخلی (FastAPI) وب‌هوک پنل، وب‌اپ، پنل تحت وب و کال‌بک TonPays را سرو می‌کند.

متغیرپیش‌فرضتوضیح
FASTAPI_PORT6160 (نصب)پورت وب‌سرور. خالی = وب‌سرور خاموش (وب‌هوک، وب‌اپ و TonPays کار نمی‌کنند). در Docker پورت کانتینر هم از همین مقدار گرفته می‌شود. پورت‌ها
WEBAPP_URLخالیآدرس HTTPS وب‌اپ، مثل https://bot.example.com:6160/api/webapp. برای Mini App، دکمهٔ 🖥 پنل تحت وب، دستور /webapp و کال‌بک TonPays لازم است. آدرس http:// نادیده گرفته می‌شود
SSL_CERTFILEخالیمسیر fullchain.pem. اگر این و SSL_KEYFILE هر دو ست باشند، پورت 6160 مستقیم HTTPS سرو می‌کند
SSL_KEYFILEخالیمسیر privkey.pem
API_DOCS_ENABLEDfalseنمایش /docs، /redoc و /openapi.json (فقط برای توسعه؛ روی سرور اصلی روشن نکنید)

مسیر گواهی‌ها باید همان مسیری باشد که داخل کانتینر دیده می‌شود. پوشهٔ /var/lib/pasarguardbot با همان مسیر (فقط‌خواندنی) داخل کانتینر مونت شده، پس گواهی را در /var/lib/pasarguardbot/certs/<دامنه>/ بگذارید. راهنمای کامل: دامنه و SSL.


ظاهر و دکمه‌ها

متغیرپیش‌فرضتوضیح
ADMIN_ID_TAGخالییوزرنیم (بدون @) برای دکمهٔ 📢 وضعیت بروزرسانی که وقتی «وضعیت ربات» خاموش است به کاربران نشان داده می‌شود (لینک https://t.me/<ADMIN_ID_TAG>)
BOT_TAGخالیمتنی که در پیام اطلاعات سرویس، قبل از عبارت (Subscription) و لینک ساب نمایش داده می‌شود
DISABLE_UPTIME_BUTTONStrueوقتی true است دکمهٔ 🔋 وضعیت سرویس ها در منوی اصلی نمایش داده نمی‌شود. برای نمایش، false کنید
LINK_UPTIME_BUTTONShttps://t.me/لینکی که دکمهٔ 🔋 وضعیت سرویس ها باز می‌کند (مثلاً صفحهٔ وضعیت سرورها)
TUTORIAL_HELP_LINKShttps://t.me/یک لینک تکی برای دکمهٔ قدیمی «🔰 لیست تمام آموزش ها». دکمه‌های راهنما حالا از داخل ربات (📚 راهنما → ⚙️ تنظیمات راهنما) مدیریت می‌شوند
CHANNEL_ID_TAGخالیدر .env.example هست ولی نسخهٔ فعلی ربات از آن استفاده نمی‌کند

لاگ در تلگرام

متغیرپیش‌فرضتوضیح
LOG_CHANNELخالیآیدی عددی کانال/گروه (مثل -1001234567890) به‌عنوان مقصد پشتیبان لاگ‌ها: هر نوع لاگی که در 📝 مدیریت لاگ‌ها مقصد نداشته باشد، اینجا فرستاده می‌شود

بکاپ به LOG_CHANNEL نمی‌رود

فایل بکاپ فقط به مقصد 🗄 بکاپ ربات در 📝 مدیریت لاگ‌ها ارسال می‌شود. روش پیشنهادی این است که همهٔ مقصدها را از داخل ربات تنظیم کنید: مدیریت لاگ‌ها.


شبکه‌های تست ارز دیجیتال

متغیرپیش‌فرضتوضیح
TRX_TESTNET_MODEخالی (Mainnet)برای تست درگاه ترون/USDT‌-TRC20: nile یا shasta
TON_TESTNET_MODEخالی (Mainnet)برای تست درگاه TON: testnet

روی ربات فروش واقعی این دو را خالی بگذارید؛ در حالت تست، پرداخت‌های واقعی شناسایی نمی‌شوند.


یکپارچه‌سازی

متغیرپیش‌فرضتوضیح
GITHUB_TOKENخالیتوکن شخصی GitHub برای گرفتن ریلیزهای برنامه‌ها در 🈸 آپدیت برنامه ها / دانلود راهنما. بدون آن هم کار می‌کند؛ برای بالا بردن محدودیت API یا ریپوهای خصوصی

Redis

متغیرپیش‌فرضتوضیح
REDIS_URLredis://localhost:6161نصب Docker می‌نویسد: redis://redis:6379/0
REDIS_NAMESPACE_PREFIXpasarguardbot:mainbotپیشوند کلیدها؛ اگر چند ربات از یک Redis استفاده می‌کنند برای هر کدام متفاوت بگذارید. خالی = از هش توکن ربات ساخته می‌شود
REDIS_RETRY_INTERVAL_SECONDS10.0فاصلهٔ تلاش دوباره برای اتصال
REDIS_SOCKET_CONNECT_TIMEOUT2.0تایم‌اوت اتصال (ثانیه)
REDIS_SOCKET_TIMEOUT0.0تایم‌اوت خواندن؛ 0 یعنی خاموش (لازم برای صف پیام). تغییرش ندهید
REDIS_HEALTH_CHECK_INTERVAL30فاصلهٔ چک سلامت اتصال (ثانیه)
STATE_TTL_SECONDS86400عمر وضعیت مکالمه (مرحلهٔ فعلی کاربر در ربات)
LOCK_TTL_SECONDS300عمر قفل‌های داخلی (جلوگیری از کلیک/پرداخت تکراری)
CALLBACK_TTL_SECONDS3600عمر داده‌های دکمه‌های شیشه‌ای

دیتابیس (Pool اتصال)

فقط برای MariaDB/MySQL/PostgreSQL (نه SQLite).

متغیرپیش‌فرضتوضیح
SQLALCHEMY_POOL_SIZE20تعداد اتصال ثابت
SQLALCHEMY_MAX_OVERFLOW30اتصال اضافه در اوج بار
SQLALCHEMY_POOL_TIMEOUT30ثانیه انتظار برای اتصال آزاد

صف ارسال پیام

ارسال پیام با محدودیت سرعت (برای پیام‌های ورود وب‌اپ و اعلان کارت دستی از وب‌اپ).

متغیرپیش‌فرضتوضیح
SEND_QUEUE_ENABLEDfalseروشن کردن صف
SEND_QUEUE_DELAY_SEC1.0فاصله بین دو ارسال (ثانیه)
SEND_QUEUE_MAX_LEN10000حداکثر طول صف

لاگ فایل

متغیرپیش‌فرضتوضیح
LOG_LEVELINFODEBUG، INFO، WARNING، ERROR
LOG_DIR./logsپوشهٔ لاگ؛ در Docker روی /opt/pasarguardbot/logs سرور مونت است
LOG_TO_FILEtrueنوشتن app.log و error.log
LOG_USE_RICHfalseخروجی رنگی کنسول
LOG_FORMAT%(asctime)s | %(levelname)-8s | %(message)sقالب خطوط لاگ (فرمت استاندارد Python logging)
LOG_MIDDLEWARE_DEBUGfalseلاگ جزئیات هر آپدیت تلگرام (فقط عیب‌یابی)
LOG_HANDLER_EVENTSfalseلاگ ورود به هندلرها در سطح DEBUG
LOG_APP_MAX_BYTES5242880 (۵ مگ)حجم هر فایل app.log قبل از چرخش
LOG_APP_BACKUP_COUNT5تعداد فایل‌های قدیمی app.log
LOG_ERROR_MAX_BYTES2097152 (۲ مگ)حجم هر فایل error.log
LOG_ERROR_BACKUP_COUNT3تعداد فایل‌های قدیمی error.log

غیرفعال کردن ماژول‌ها

متغیرپیش‌فرضتوضیح
DISABLED_TELEGRAM_MODULESخالینام ماژول‌های تلگرامی که نباید بارگذاری شوند، با کاما (مثل admin.migration). نام‌ها همان نام پوشه/فایل زیر admin، user یا business هستند. فقط اگر دقیقاً می‌دانید چه می‌کنید

مقادیری که نصاب می‌نویسد

این‌ها را اسکریپت نصب می‌سازد؛ معمولاً دست نزنید.

متغیرمقدارتوضیح
MARIADB_ROOT_PASSWORDتصادفی ۳۲ کاراکتریرمز root دیتابیس (ورود phpMyAdmin با یوزر root)
MARIADB_DATABASEpasarguardbotنام دیتابیس
MARIADB_USERpasarguardbotیوزر دیتابیس
MARIADB_PASSWORDتصادفی ۲۴ کاراکتریرمز یوزر؛ همان رمزی که در SQLALCHEMY_DATABASE_URL است
PASARGUARDBOT_IMAGE_TAGlatest یا devتگ ایمیج ربات: برنچ main ← latest، برنچ‌های دیگر ← نام برنچ. در هر آپدیت طبق برنچ انتخابی بازنویسی می‌شود
PASARGUARDBOT_CONFIG_DIR/opt/pasarguardbotمسیر نصب، برای مونت‌های docker-compose
TELETHON_SESSION_PATHsessions/KenzoSessionفایل سشن تلگرام ربات (پیش‌فرض کد: KenzoSession)

رمز دیتابیس را فقط در .env عوض نکنید

MariaDB رمزها را فقط در اولین راه‌اندازی از MARIADB_* می‌خواند. اگر بعداً فقط .env را عوض کنید، رمز واقعی دیتابیس تغییر نمی‌کند و ربات دیگر وصل نمی‌شود.


نمونهٔ .env بعد از نصب

API_ID=2040
API_HASH=b18441a1ff607e10a989891a5462e627
BOT_TOKEN=1234567890:AAAA...
ADMIN_ID=111111111,222222222

SQLALCHEMY_DATABASE_URL=mysql+asyncmy://pasarguardbot:xxxxxxxx@mariadb:3306/pasarguardbot
FASTAPI_PORT=6160

# بعد از گرفتن SSL:
WEBAPP_URL=https://bot.example.com:6160/api/webapp
SSL_CERTFILE=/var/lib/pasarguardbot/certs/bot.example.com/fullchain.pem
SSL_KEYFILE=/var/lib/pasarguardbot/certs/bot.example.com/privkey.pem

REDIS_URL=redis://redis:6379/0
REDIS_NAMESPACE_PREFIX=pasarguardbot:mainbot
TELETHON_SESSION_PATH=sessions/KenzoSession
LOG_DIR=./logs
LOG_TO_FILE=true
LOG_LEVEL=INFO

MARIADB_ROOT_PASSWORD=...
MARIADB_DATABASE=pasarguardbot
MARIADB_USER=pasarguardbot
MARIADB_PASSWORD=...
PASARGUARDBOT_IMAGE_TAG=latest
PASARGUARDBOT_CONFIG_DIR=/opt/pasarguardbot

فایل کامل با کامنت‌ها در ریپو: .env.example

On this page