Skip to content

About

Telegram bot for selling VPN configs from a pre-loaded stock inventory | Reseller system | Full admin panel | Auto-backup

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

⚡ ConfigFlow

ربات تلگرام فروش و مدیریت کانفیگ VPN

Python Telebot SQLite License Stars

کاملاً رایگان و متن‌باز — بدون لایسنس، بدون فعال‌سازی، بدون قفل

نصب سریع • ویژگی‌ها • درگاه‌ها • پنل ادمین • English


📖 درباره ConfigFlow

ConfigFlow یک ربات تلگرام برای فروش خودکار کانفیگ VPN است. کل چرخهٔ فروش — از انتخاب سرویس تا پرداخت و تحویل کانفیگ — بدون دخالت دستی انجام می‌شود.

💡 مدل انبار موجودی

برخلاف ربات‌هایی که هنگام خرید به پنل وصل می‌شوند و کانفیگ می‌سازند، ConfigFlow از انبار تحویل می‌دهد: ادمین کانفیگ‌های از‌پیش‌ساخته را (تکی یا دسته‌ای) ثبت می‌کند و ربات از موجودی می‌فروشد.

مزیت چرا
🔒 امنیت بیشتر ربات هیچ دسترسی زنده‌ای به پنل ندارد؛ لو رفتن ربات، پنل را لو نمی‌دهد
🛡️ استقلال قطعی پنل یا مهاجرت سرور، فروش را متوقف نمی‌کند
✅ کنترل کیفیت ادمین کانفیگ را قبل از ثبت خودش تست می‌کند
📊 موجودی شفاف تعداد موجود، فروخته‌شده و منقضی همیشه معلوم است

نکتهٔ مهم: وقتی موجودی تمام شود، پرداخت مشتری رد نمی‌شود — سفارش در صف «تحویل دستی» می‌نشیند، به ادمین اطلاع می‌رود، و به‌محض ثبت کانفیگ جدید خودکار تحویل داده می‌شود.


✨ ویژگی‌ها

🛒 فروش

  • دسته‌بندی سرویس + پکیج (حجم / مدت / قیمت)
  • ۵ روش پرداخت
  • تحویل خودکار کانفیگ همراه QR Code
  • تست رایگان (یک‌بار به ازای هر نوع سرویس)
  • تمدید سرویس
  • صف سفارش و تحویل خودکار هنگام شارژ موجودی

📦 موجودی

  • ثبت تکی و دسته‌ای کانفیگ
  • حذف پیشوند/پسوند از نام سرویس‌ها هنگام ثبت دسته‌ای
  • انتخاب گروهی برای حذف یا منقضی‌کردن
  • تفکیک موجود / فروخته‌شده / منقضی
  • رزرو اتمی: دو خریدار هم‌زمان هرگز یک کانفیگ نمی‌گیرند

💰 مالی

  • کیف پول با شارژ مستقیم
  • تأیید یا رد رسید توسط ادمین با ثبت دلیل
  • محدودهٔ مبلغ مجاز برای هر درگاه
  • درگاه «امن» که فقط به کاربران تأییدشده نشان داده می‌شود

🤝 نمایندگی

  • درخواست نمایندگی از داخل ربات
  • قیمت اختصاصی برای هر نماینده: درصدی، مبلغ ثابت، یا قیمت دستی روی هر پکیج
  • تخفیف در سطح دسته‌بندی
  • نماینده قیمت خودش را می‌بیند، نه قیمت عمومی

🎁 دعوت دوستان

  • لینک اختصاصی هر کاربر
  • جایزهٔ ثبت‌نام و جایزهٔ اولین خرید
  • جایزه به‌صورت شارژ کیف پول یا پکیج
  • بنر قابل تنظیم (متن + عکس)

🔐 مدیریت

  • ۱۷ سطح دسترسی مجزا برای ادمین‌های فرعی
  • وضعیت کاربر: امن / ناامن / محدودشده
  • عضویت اجباری در چند کانال
  • گروه ادمین با تاپیک مجزا برای هر رویداد (خرید، پرداخت، بکاپ، خطا)
  • بکاپ خودکار زمان‌بندی‌شده روی تلگرام
  • پیام‌رسانی همگانی و پیام سنجاق‌شده

🏗️ معماری

main.py ──┬─ init_db()                    ساخت جداول + مهاجرت‌ها
          ├─ ترد بکاپ                     ارسال دوره‌ای دیتابیس
          ├─ ترد تاپیک‌های گروه
          ├─ ترد تبلیغ اونر
          ├─ Flask API (اختیاری، :8080)   فقط اگر ورکر فعال باشد
          └─ bot.infinity_polling()       حلقهٔ اصلی تلگرام
  • یک هندلر کال‌بک فراگیر → on_callback → _dispatch_callback (~۲۵۰ شاخه)
  • یک هندلر پیام → universal_handler روی ~۹۰ حالت (state)
  • SQLite خام با WAL؛ هر فراخوانی یک اتصال تازه
  • قفل غیرمسدودکننده per-user: کلیک دوبارهٔ سریع، رها می‌شود نه صف

جریان خرید

انتخاب دسته → پکیج → روش پرداخت
      ↓
پرداخت (کیف پول | کارت | ارز | درگاه)
      ↓
complete_payment()  ← قفل اتمی: فقط یک مسیر برنده است
      ↓
reserve_first_config()  ← رزرو اتمی از انبار
      ↓
      ├── موفق → تحویل کانفیگ + QR + ثبت خرید
      └── ناموفق/خالی → صف تحویل دستی + اطلاع به ادمین

💳 درگاه‌های پرداخت

# درگاه نوع تأیید
۱ کیف پول موجودی داخلی آنی
۲ کارت به کارت رسید دستی ادمین
۳ ارز دیجیتال واریز مستقیم (TRX / TON / USDT / USDC / LTC) ادمین
۴ TetraPay درگاه API خودکار
۵ SwapWallet درگاه API (کارت + کریپتو) خودکار
۶ TronsPay درگاه API (ریالی) خودکار

هر درگاه جدا فعال/غیرفعال می‌شود، نام نمایشی دلخواه می‌گیرد، و می‌تواند محدودهٔ مبلغ داشته باشد. درگاه‌های API علاوه بر دکمهٔ «بررسی پرداخت»، یک ترد بررسی خودکار هم دارند که تا ۶۰ دقیقه پرداخت را دنبال می‌کند.


⚙️ پنل ادمین

بخش کارها
🧩 نوع و پکیج ساخت دسته‌بندی، پکیج (حجم/مدت/قیمت)، ترتیب نمایش، توضیحات، فعال/غیرفعال
📚 کانفیگ‌ها ثبت تکی/دسته‌ای، جستجو، ویرایش، حذف و انقضای گروهی، لینک استعلام
👥 کاربران مشاهده، تغییر موجودی، وضعیت امن/ناامن، محدودسازی، ثبت کانفیگ دستی
👮 ادمین‌ها افزودن ادمین با انتخاب دقیق ۱۷ دسترسی
🤝 نمایندگان تأیید/رد درخواست، قیمت‌گذاری اختصاصی
📣 همگانی فوروارد به همه یا فقط مشتریان
⚙️ تنظیمات درگاه‌ها، کانال اجباری، تست رایگان، دعوت دوستان، وضعیت ربات، گروه لاگ
💾 بکاپ بکاپ فوری یا زمان‌بندی‌شده روی تلگرام

دسترسی‌های ادمین فرعی

دسترسی کامل · نوع و پکیج · ثبت کانفیگ · دیدن کانفیگ‌ها · حذف/انقضا · فوروارد همگانی · فوروارد مشتریان · مشاهدهٔ کاربران · نمایندگی · ثبت کانفیگ برای کاربر · مدیریت موجودی · امن/ناامن · مدیریت کامل کاربران · تنظیمات · تأیید پرداخت · تأیید تمدید · مدیریت پنل 3x-ui


🚀 نصب سریع

نصب خودکار (پیشنهادی)

bash <(curl -Ls https://raw.githubusercontent.com/Emadhabibnia1385/ConfigFlow/main/install.sh)

نصاب همه‌چیز را می‌سازد: مسیر /opt/configflow-<نام>، محیط مجازی، سرویس systemd و آپدیت خودکار. چند ربات می‌توانند کنار هم روی یک سرور نصب شوند.

⚠️ آپدیت خودکار هر دقیقه اجرا می‌شود و با git reset --hard origin/main هر تغییر محلی را دور می‌ریزد. اگر کد را دستی ویرایش می‌کنید، اول از منوی نصاب خاموشش کنید.

نصب دستی

git clone https://github.com/Emadhabibnia1385/ConfigFlow.git
cd ConfigFlow
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp env.example .env      # BOT_TOKEN و ADMIN_IDS را پر کنید
python3 main.py

🔧 متغیرهای محیطی

.env — ربات

متغیر توضیح مثال
BOT_TOKEN توکن از @BotFather 123456:ABC...
ADMIN_IDS آیدی عددی ادمین‌ها، جدا با کاما 111,222
DB_NAME نام فایل دیتابیس configflow.db

config.env — ورکر ایران (اختیاری)

متغیر توضیح پیش‌فرض
BOT_API_URL آدرس API روی سرور خارج —
WORKER_API_KEY کلید مشترک (حداقل ۱۶ کاراکتر) —
PANEL_IP / PANEL_PORT آدرس پنل 3x-ui 127.0.0.1 / 2053
PANEL_USERNAME / PANEL_PASSWORD ورود پنل —
INBOUND_ID شناسهٔ اینباند 1
PROTOCOL vless / vmess / trojan vless
POLL_INTERVAL فاصلهٔ بررسی job (ثانیه) 10

🔐 اگر BOT_API_URL را روی http:// بگذارید، کلید مشترک و لینک کانفیگ هر مشتری بدون رمز جابه‌جا می‌شوند. از https:// یا تونل SSH/WireGuard بین دو سرور استفاده کنید.


🧪 ورکر 3x-ui — وضعیت: زیرساخت آماده، هنوز به فروش وصل نیست

معماری «ورکر ایران» برای وقتی است که پنل داخل ایران و ربات خارج از ایران باشد: چون سرور خارج معمولاً به داخل دسترسی ندارد ولی داخل به بیرون دارد، جهت ارتباط برعکس می‌شود و ورکر از داخل ایران poll می‌کند.

ربات ──ثبت job──▶ جدول xui_jobs
                       ▲   │
   api.py (:8080)      │   │ GET /jobs/pending
        ▲              │   ▼
        └── نتیجه ── worker.py (در ایران) ──▶ 3x-ui: ساخت کلاینت + لینک VLESS

اجزای این مسیر ساخته شده‌اند — جدول‌ها، api.py، worker.py، و صفحهٔ «مدیریت پنل‌های 3x-ui» در پنل ادمین. ولی هیچ مسیر خریدی هنوز job نمی‌سازد، یعنی صف همیشه خالی است. فعلاً همهٔ فروش از مدل انبار انجام می‌شود.


📁 ساختار پروژه

ConfigFlow/
├── main.py              نقطهٔ ورود: دیتابیس، تردها، polling
├── api.py               Flask API برای ورکر ایران (:8080)
├── worker.py            ورکر سمت ایران (فقط کتابخانهٔ استاندارد)
├── install.sh           نصاب، systemd و آپدیت خودکار
│
└── bot/
    ├── config.py        متغیرهای محیطی، ۱۷ دسترسی، ارزها
    ├── bot_instance.py  نمونهٔ ربات، USER_STATE
    ├── db.py            ۲۰ جدول + تمام CRUD + مهاجرت‌ها
    ├── helpers.py       state، احراز ادمین، فرمت اعداد و قیمت
    ├── payments.py      قیمت‌گذاری، انتخاب درگاه، تأیید ادمین
    ├── group_manager.py گروه ادمین و تاپیک‌های لاگ
    │
    ├── gateways/
    │   ├── base.py               دسترسی و محدودهٔ مبلغ درگاه‌ها
    │   ├── crypto.py             قیمت لحظه‌ای ارزها
    │   ├── tetrapay.py           ساخت و تأیید سفارش
    │   ├── swapwallet_crypto.py  فاکتور کارت + کریپتو
    │   └── tronpays_rial.py      فاکتور ریالی
    │
    ├── ui/
    │   ├── helpers.py       send_or_edit، عضویت اجباری کانال
    │   ├── keyboards.py     منوی اصلی و پنل ادمین
    │   ├── menus.py         پروفایل، کانفیگ‌های من، پشتیبانی
    │   └── notifications.py تحویل کانفیگ، QR، اطلاع‌رسانی، دعوت دوستان
    │
    ├── admin/
    │   ├── renderers.py  صفحات پنل ادمین
    │   └── backup.py     بکاپ دستی و زمان‌بندی‌شده
    │
    └── handlers/
        ├── start.py      دستور /start و لینک دعوت
        ├── callbacks.py  on_callback → _dispatch_callback
        └── messages.py   universal_handler (ورودی‌های متنی)

🖥️ اجرا

python3 main.py     # ربات (سرور خارج)
python3 worker.py   # ورکر (سرور ایران)
python3 api.py      # API به‌صورت مستقل — main.py خودش هم می‌تواند بالا بیاورد

با systemd پس از نصب خودکار:

systemctl status configflow-<نام>
journalctl -u configflow-<نام> -f

🔌 وابستگی‌ها

pyTelegramBotAPI · qrcode · pillow · python-dotenv · flask · requests

فقط شش مورد — عمداً کم نگه داشته شده تا نصب روی هر سروری بی‌دردسر باشد. worker.py حتی همین‌ها را هم لازم ندارد و با کتابخانهٔ استاندارد پایتون کار می‌کند.


🤝 پشتیبانی


📄 لایسنس

منتشرشده تحت MIT License — آزادانه استفاده، تغییر و توزیع کنید.

About

Telegram bot for selling VPN configs from a pre-loaded stock inventory | Reseller system | Full admin panel | Auto-backup

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages