Files
gotelegram_pro/gotelegram-bot
anten-ka fc28a1a099 feat(v2.4.2): bot non-interactive install.sh actions
- install.sh: new bot_action_dispatch entry point for --action=X --json CLI invocation from the bot/scripts
- install.sh: bot_action_change_template — reuses download_template + deploy_template_to_nginx, updates config.json template_id
- install.sh: bot_action_change_lite_domain — regenerates telemt TOML with new fake-TLS mask domain, restarts telemt
- bot.py: run_bot_action() subprocess wrapper parses JSON result
- bot.py: cb_pro_confirm now performs real change-template when already in pro mode (fresh install still routes to CLI)
- bot.py: cb_lite_domain now performs real change-lite-domain when already in lite mode
- version -> 2.4.2
2026-04-10 13:19:26 +03:00
..

GoTelegram v2.2 Bot

Production-quality Telegram bot for managing MTProxy (telemt engine) on Linux servers.

Features

  • Complete CLI Feature Parity - All menu items from CLI version

    • Install (Quick/Stealth modes)
    • Status monitoring
    • Proxy link generation
    • Share with QR codes
    • Service restart
    • Logs viewing
    • Mode/template changes
    • Backup/restore
    • telemt updates
    • Website/SSL management
    • Remove installation
    • Promotional links
  • Template Browsing - Browse categories → templates → preview → install

  • V1 Migration - Detects old mtg Docker container and offers migration

  • Access Control - ALLOWED_IDS from .env

  • Async/Await - Full async support via python-telegram-bot v21+

  • Inline Keyboards - Modern UI with callback-based navigation

  • Shell Integration - Executes system commands via asyncio subprocess

  • Error Handling - Production-ready error handling

Installation

Prerequisites

  • Python 3.8+
  • Linux system with systemd
  • telemt installed and running
  • Telegram Bot Token from @BotFather

Setup

  1. Install dependencies:
pip install -r requirements.txt
  1. Create .env file:
cp config.example.env .env
# Edit .env and set your BOT_TOKEN
nano .env
  1. (Optional) Restrict access to specific users:
# Edit .env and uncomment ALLOWED_IDS
# ALLOWED_IDS=123456789,987654321

Running the Bot

python3 bot.py

For systemd service:

[Unit]
Description=GoTelegram Bot
After=network.target

[Service]
Type=simple
User=gotelegram
WorkingDirectory=/opt/gotelegram/bot
ExecStart=/usr/bin/python3 /opt/gotelegram/bot/bot.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Configuration

.env Variables

  • BOT_TOKEN - Telegram bot token (required)
  • ALLOWED_IDS - Comma-separated user IDs (optional, all users allowed if empty)

System Paths

  • GOTELEGRAM_CONFIG - /opt/gotelegram/config.json
  • TELEMT_CONFIG - /etc/telemt/config.toml
  • TELEMT_SERVICE - telemt (systemd service name)
  • WEBSITE_ROOT - /var/www/gotelegram-site
  • BACKUP_DIR - /opt/gotelegram/backups
  • TEMPLATES_CATALOG - /opt/gotelegram/templates_catalog.json

Architecture

Single File Design

All functionality in one bot.py for simplicity and ease of deployment.

Command Handlers

  • /start - Main menu
  • /help - Help text
  • /status - Quick status
  • /logs - Recent logs

Callback Handlers

Organized by feature:

  • Installation (quick/stealth modes)
  • Status monitoring
  • Backup/restore
  • SSL management
  • Updates
  • Removal

Shell Integration

Async subprocess wrapper:

code, stdout, stderr = await sh("command", "arg1", "arg2")

Callback Data Convention

  • menu_* - Menu items
  • install_mode_* - Install options
  • quick_dom_* - Domain selection
  • stealth_cat_* - Template categories
  • stealth_tpl_* - Template selection
  • stealth_confirm_* - Confirm installation
  • backup_* - Backup operations
  • ssl_* - SSL operations
  • restore_backup_* - Restore operations

Credits

  • telemt - MTProxy engine foundation
  • HTML5UP - Beautiful web templates
  • Learning Zone - Educational resources
  • Start Bootstrap - Bootstrap framework
  • Community - Your feedback and support

License

GoTelegram v2.2 - Open source community project