7eb57b788b2704680721a7fb8d0221e6c9e72ddd
Agent-Logs-Url: https://github.com/kr0sh512/tt-simple/sessions/34c3052e-7b55-4cb8-9fee-0ee1ba315691 Co-authored-by: kr0sh512 <46405586+kr0sh512@users.noreply.github.com>
Telegram VPN bot (Marzban + Telegram Stars)
Async Telegram bot for selling and extending Marzban VPN subscriptions.
Features
- Plans:
- 1 month = ⭐️100
- 3 months = ⭐️270
- 6 months = ⭐️500
- Marzban username format:
tg<telegram_user_id>(example:tg12345678). - New users are created with:
data_limit = 50 GBdata_limit_reset_strategy = monthproxies = {"vless": {"flow": "xtls-rprx-vision"}}inbounds = {"vless": ["VLESS TCP REALITY"]}notecontaining Telegram first name, last name, and phone (if available)
- If user has active subscription, a new purchase extends from current expiration.
- Bot sends subscription URL after successful purchase.
- Admin notifications for every creation/extension.
- Per-user price multiplier support (
price_multiplier) that affects invoice stars (final amount is always integer). /statscommand for admins:- payments count
- stars earned
- sold months
- marzban users
- traffic usage/total quota
Admin user management
/select_user <username|telegram_id>— select user for further updates and show current values./selected_user— show the currently selected user and current values./set_expire <YYYY-MM-DD or ISO datetime>— set selected user expiration (UTC)./set_traffic <GB>— set selected user monthly traffic limit in GB./set_multiplier <float>— set selected user price multiplier.
Setup
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
Fill .env and run:
export $(grep -v '^#' .env | xargs)
python bot.py
Notes
- Telegram Stars invoices use
currency="XTR"and emptyprovider_token. - Local SQLite database stores only payment statistics. User state is read from Marzban API.
Languages
Python
98%
Dockerfile
2%