Руководство

Как разместить Telegram-бота?

В этом руководстве создадим бота с нуля и разместим его на EliteHost. Хватит базовых знаний — опыт с Linux или VPS не нужен.

1

Создание Telegram-бота

в Telegram @BotFather — откройте и /newbot — отправьте команду. BotFather спросит две вещи:

  • Имя бота — имя, которое видят пользователи (например: Мой бот)
  • Username — _bot должно заканчиваться на (например: mening_botim_bot)

После успешного создания BotFather token выдаёт. Выглядит так:

text
7123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw

Никому не передавайте токен

Токен — это пароль вашего бота. Не пишите его в коде и не загружайте на GitHub. На EliteHost он хранится в зашифрованном виде как переменная окружения.
2

Пишем код бота

Ниже — готовые примеры для самых популярных библиотек. Файл main.py (Python) или index.js (Node.js) — система найдёт его автоматически.

aiogram 3.xРекомендуется

main.py
# main.py
import asyncio
import logging
import os

from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode

logging.basicConfig(level=logging.INFO)

# Token muhit o'zgaruvchisidan olinadi — kodga yozmang!
TOKEN = os.getenv("BOT_TOKEN")

if not TOKEN:
    raise RuntimeError("BOT_TOKEN o'zgaruvchisi topilmadi")

dp = Dispatcher()


@dp.message(CommandStart())
async def start(message: types.Message) -> None:
    await message.answer(
        f"Salom, <b>{message.from_user.full_name}</b>! 👋\n"
        "Men EliteHost'da ishlayapman."
    )


@dp.message()
async def echo(message: types.Message) -> None:
    await message.answer(message.text or "Matn yuboring")


async def main() -> None:
    bot = Bot(TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
    await dp.start_polling(bot)


if __name__ == "__main__":
    asyncio.run(main())

pyTelegramBotAPI

main.py
# main.py
import os
import telebot

TOKEN = os.getenv("BOT_TOKEN")
bot = telebot.TeleBot(TOKEN)


@bot.message_handler(commands=["start"])
def start(message):
    bot.reply_to(message, "Salom! Men EliteHost'da ishlayapman.")


@bot.message_handler(func=lambda m: True)
def echo(message):
    bot.reply_to(message, message.text)


# infinity_polling — tarmoq uzilsa avtomatik qayta ulanadi
bot.infinity_polling(skip_pending=True)

python-telegram-bot

main.py
# main.py
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes


async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    await update.message.reply_text("Salom! Men EliteHost'da ishlayapman.")


def main() -> None:
    app = Application.builder().token(os.getenv("BOT_TOKEN")).build()
    app.add_handler(CommandHandler("start", start))
    app.run_polling()


if __name__ == "__main__":
    main()

Node.js (Telegraf)

index.js
// index.js
import { Telegraf } from 'telegraf';

const token = process.env.BOT_TOKEN;

if (!token) {
  throw new Error("BOT_TOKEN o'zgaruvchisi topilmadi");
}

const bot = new Telegraf(token);

bot.start((ctx) => ctx.reply("Salom! Men EliteHost'da ishlayapman."));
bot.on('text', (ctx) => ctx.reply(ctx.message.text));

bot.launch();

// To'g'ri to'xtatish
process.once('SIGINT', () => bot.stop('SIGINT'));
process.once('SIGTERM', () => bot.stop('SIGTERM'));
3

Подготовка файла зависимостей

Для проектов на Python requirements.txt — создайте его. В нём указываются используемые библиотеки с версиями:

requirements.txt
aiogram==3.15.0

А для Node.js — package.json:

package.json
{
  "name": "mening-botim",
  "version": "1.0.0",
  "type": "module",
  "main": "index.js",
  "dependencies": {
    "telegraf": "^4.16.3"
  }
}

Фиксируйте версию

aiogram==3.15.0 — указывайте точную версию. Иначе при обновлении библиотеки бот может неожиданно сломаться.
4

Подготовка ZIP-архива

Папка проекта должна выглядеть так:

text
mening-botim/ ├── main.py ← входной файл ├── requirements.txt ← зависимости ├── handlers/ ← дополнительные модули (необязательно) │ └── admin.py └── data/ ← файлы данных (необязательно)

Папка внутри — выделите файлы и упакуйте в ZIP (не саму папку — но система правильно поймёт оба варианта).

Не добавляйте в архив

  • · venv/, .venv/ — виртуальное окружение
  • · node_modules/ — устанавливается на сервере
  • · .env — вводите токены через панель
  • · __pycache__/, .git/
5

Загрузка на EliteHost

  1. В панели управления Новый сервер → Бот-хостинг — выберите тариф
  2. Выберите среду: Python, Node.js, Go, PHP, Java, .NET, Rust, Bun или Ruby
  3. Выберите версию (рекомендуется Python 3.12)
  4. Загрузите ZIP-файл

После загрузки Elite AutoDeploy анализирует архив и показывает результат:

Язык:Python 3.12
Фреймворк:aiogram
Файл запуска:main.py
Зависимости:requirements.txt (1 ta paket)
Нужные переменные:BOT_TOKEN
6

Ввод переменных окружения

Настройки → Переменные окружения перейдите в раздел и введите нужные значения:

text
BOT_TOKEN=7123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw ADMIN_ID=123456789 DATABASE_URL=sqlite:///data/bot.db

Эти значения в базе AES-256-GCM шифруется и расшифровывается только внутри контейнера.

7

Запуск и проверка

🚀 Запуск бота — нажмите кнопку. Система по очереди:

  1. Создаёт сервер (~30 секунд)
  2. Загружает файлы
  3. Устанавливает зависимости
  4. Запускает бота

Весь процесс живые логи отображается. По завершении отправьте боту в Telegram /start .

Бот не отвечает?

Bot Doctor — нажмите кнопку: AI проанализирует логи и назовёт причину проблемы и точное решение.

Частые ошибки

Unauthorized / 401

Причина: BOT_TOKEN неверный или отозван.

Решение: Получите токен заново у @BotFather и обновите его в разделе «Переменные окружения».

ModuleNotFoundError: No module named 'aiogram'

Причина: Библиотека не указана в requirements.txt.

Решение: Добавьте в requirements.txt и нажмите «Переустановить зависимости».

Conflict: terminated by other getUpdates request

Причина: Бот с этим же токеном запущен где-то ещё.

Решение: Остановите копию на своём компьютере или другом сервере.

Killed / MemoryError

Причина: Бот превысил лимит RAM тарифа.

Решение: Перейдите на тариф выше или перенесите большие данные в базу.

Готовы?

Разместите бота за несколько минут. От 29 000 сумов в месяц.

Тарифы бот-хостинга