کاملاً رایگان و متنباز — بدون لایسنس، بدون فعالسازی، بدون قفل
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| متغیر | توضیح | مثال |
|---|---|---|
BOT_TOKEN |
توکن از @BotFather | 123456:ABC... |
ADMIN_IDS |
آیدی عددی ادمینها، جدا با کاما | 111,222 |
DB_NAME |
نام فایل دیتابیس | configflow.db |
| متغیر | توضیح | پیشفرض |
|---|---|---|
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 بین دو سرور استفاده کنید.
معماری «ورکر ایران» برای وقتی است که پنل داخل ایران و ربات خارج از ایران باشد: چون سرور خارج معمولاً به داخل دسترسی ندارد ولی داخل به بیرون دارد، جهت ارتباط برعکس میشود و ورکر از داخل ایران 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-<نام> -fpyTelegramBotAPI · qrcode · pillow · python-dotenv · flask · requests
فقط شش مورد — عمداً کم نگه داشته شده تا نصب روی هر سروری بیدردسر باشد. worker.py حتی همینها را هم لازم ندارد و با کتابخانهٔ استاندارد پایتون کار میکند.
- تلگرام: @Emad_Habibnia
- گیتهاب: Emadhabibnia1385/ConfigFlow
منتشرشده تحت MIT License — آزادانه استفاده، تغییر و توزیع کنید.