Як розмістити Telegram-бота на хостингу
На цій сторінці
Telegram-бот відповідає лише доки працює його код. Запустіть його на ноутбуці — і він замовкне, щойно ноутбук засне. Тож рано чи пізно кожному боту потрібне місце, яке завжди ввімкнене.
У цьому гайді весь шлях: створення бота через BotFather, вибір між polling і webhook, робочий приклад на Python і на JavaScript, ліміти та правила Telegram і як тримати бота онлайн 24/7.
Крок 1: створіть бота в BotFather
- У Telegram відкрийте @BotFather і надішліть
/newbot. - Дайте боту відображуване ім'я, потім username: від 5 до 32 символів, латинські літери, цифри й підкреслення, наприкінці —
bot, наприкладmy_shop_helper_bot. - BotFather надішле токен вигляду
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Хто має токен — той керує ботом, тому не зберігайте його в коді й нікому не передавайте. Якщо він витік, надішліть BotFather команду/tokenі отримайте новий.
Ще дві корисні команди BotFather: /setcommands задає список команд, який користувачі бачать, коли вводять /, а /setprivacy визначає, що бот бачить у групах. За замовчуванням режим приватності ввімкнено, тож у групі бот отримує лише адресовані йому команди та відповіді на свої повідомлення — якщо ви не зробите його адміністратором.
Polling чи webhook?
Бот отримує повідомлення від Telegram одним із двох способів — і ніколи обома одночасно:
| Long polling | Webhook | |
|---|---|---|
| Як працює | Бот постійно питає в Telegram нові повідомлення через одне відкрите з'єднання | Telegram надсилає кожне оновлення на вашу HTTPS-адресу |
| Що потрібно | Лише вихідний доступ до інтернету | Домен, дійсний сертифікат і порт 443, 80, 88 або 8443 |
| Підходить для | Майже будь-якого бота, і найпростіше в розміщенні | Дуже навантажених ботів або serverless-платформ |
Почніть із polling. Йому не потрібні домен, сертифікат і відкритий порт, і його підтримують усі бібліотеки. Якщо на токені колись було встановлено webhook, спершу викличте deleteWebhook — доки webhook активний, polling не працює.
Боти на polling працюють на хостингу ботів HytHost без домену й відкритих портів — Python або Node.js від €0.89/міс.
Тарифи хостингу ботівКрок 2a: бот на Python (python-telegram-bot)
python-telegram-bot 22 потребує Python 3.10 або новішого. Встановіть його командою pip install python-telegram-bot і створіть bot.py:
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Hi! Send me a message and I will echo it.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(update.message.text)
def main() -> None:
application = Application.builder().token(os.environ["TELEGRAM_TOKEN"]).build()
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
application.run_polling(allowed_updates=Update.ALL_TYPES)
if __name__ == "__main__":
main()
aiogram 3 — другий популярний варіант на Python, теж для Python 3.10 або новішого.
Крок 2b: бот на JavaScript (grammY)
grammY — активно підтримуваний фреймворк для Telegram на Node.js. Виконайте npm install grammy і створіть bot.js:
const { Bot } = require("grammy");
const bot = new Bot(process.env.TELEGRAM_TOKEN);
bot.command("start", (ctx) => ctx.reply("Welcome! Up and running."));
bot.on("message:text", (ctx) => ctx.reply(ctx.message.text));
process.once("SIGINT", () => bot.stop());
process.once("SIGTERM", () => bot.stop());
bot.start();
У старих туторіалах використовують Telegraf, який не мав релізів із лютого 2024 року; для нового бота grammY — надійніший вибір.
Ліміти та правила Telegram для ботів
Ліміти з FAQ Telegram про ботів:
- Приблизно одне повідомлення на секунду в одному чаті, 20 повідомлень на хвилину в групі та близько 30 повідомлень на секунду загалом.
- Файли: бот може надсилати до 50 MB і завантажувати до 20 MB.
- Опитувати Telegram може лише одна копія бота одночасно. Друга отримає Conflict: terminated by other getUpdates request — для тестів використовуйте окремий токен.
Правила: умови Telegram для розробників ботів забороняють спам, небажані повідомлення та обхід лімітів. Боту потрібна політика конфіденційності (якщо власної немає, діє стандартна від Telegram), і він має видаляти дані користувача на його запит. Автоматизація особистого акаунта замість бота — так званий юзербот — зовсім інша річ, і Telegram блокує акаунти, які використовують для флуду чи спаму.
Хостинг Telegram-ботів у HytHost
На наших тарифах хостингу ботів працюють і Telegram-боти, і Discord-боти:
- Виберіть тариф і середовище виконання — Python для python-telegram-bot або aiogram, Node.js для grammY. На вкладці Startup виберіть Python 3.10 або новіший чи актуальну версію Node.js.
- Завантажте код через файловий менеджер або SFTP разом із
requirements.txtчиpackage.json. - Покладіть токен у файл
.envабо в змінну середовища, а не в код. - Запустіть бота. З polling боту не потрібні домен і відкритий порт; якщо він впаде, панель його перезапустить.
Що дозволяють наші правила: ботів на офіційному Bot API з токеном від BotFather. Заборонено: юзерботів, що автоматизують особистий акаунт, небажані масові розсилки, збирання даних користувачів чи груп і ботів, які завантажують і поширюють медіа без прав на них. Бота, що порушує ці правила, буде заблоковано.
До тарифів входять база даних MySQL і резервні копії. Робите ще й Discord-бота? Дивіться гайд як створити Discord-бота.
Тримайте Telegram-бота онлайн 24/7 без свого ПК: хостинг ботів на Python або Node.js від €0.89/міс., перезапуски включено.
Тарифи хостингу ботівПоширені запитання
Можна безкоштовно запустити його на своєму комп'ютері, але він іде в офлайн щоразу, коли комп'ютер засинає чи перезавантажується. Безкоштовні хмарні тарифи часто призупиняють неактивні застосунки або обмежують їх використання. Для бота, який завжди онлайн, надійний варіант — невеликий платний хостинг.
Polling — майже для будь-якого бота: йому не потрібні домен, сертифікат і відкритий порт. Webhook підходить для дуже навантажених ботів або serverless-платформ і потребує HTTPS на порту 443, 80, 88 або 8443. Один токен не може використовувати обидва способи одночасно.
Надішліть /token в @BotFather і виберіть бота, щоб отримати новий токен, потім оновіть його всюди, де працює бот. Зберігайте токен у змінній середовища або у файлі .env, але ніколи в коді, яким ви ділитеся.
Дві копії бота опитують Telegram з одним і тим самим токеном — наприклад, одна на вашому ПК, інша на сервері. Зупиніть одну з них, а для тестів використовуйте окремого бота й токен.
Зовсім небагато. Типовому боту на Python або Node.js, який відповідає на команди, зазвичай вистачає 512 MB; ботам, що обробляють зображення або тримають у пам'яті багато даних, потрібно більше.
Ваш Telegram-бот онлайн 24/7
Хостинг ботів HytHost запускає вашого Telegram-бота на Python або Node.js з автоматичними перезапусками, базою даних MySQL і резервними копіями — від €0.89/міс.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursЦей гайд був корисним?