Как запустить Telegram-бота на Python

Разберём запуск бота на aiogram, python-telegram-bot или любой другой библиотеке на Coding-сервере Nouply: от выбора версии Python до проверки, что бот работает 24/7.

1. Выберите версию Python

В панели доступны Python 2.7 и 3.7–3.12. Для новых ботов берите 3.11 или 3.12.

  1. Откройте сервер в панели → вкладка «Запуск»
  2. В поле «Docker Image» выберите нужную версию Python
  3. Перезапустите сервер, чтобы версия применилась

2. Загрузите код

Перетащите файлы бота в файловый менеджер панели или загрузите их по SFTP. Главный файл и requirements.txt должны лежать в корне, а не во вложенной папке.

/home/container
├── bot.py
├── requirements.txt
└── .env

3. Укажите главный файл и зависимости

Во вкладке «Запуск» есть переменные, которые читаются при каждом запуске:

ПеременнаяЧто указать
App py fileИмя главного файла, например bot.py (по умолчанию app.py)
Requirements filerequirements.txt — пакеты из него ставятся автоматически при старте
Additional Python packagesДополнительные пакеты через пробел, если нет requirements.txt
# requirements.txt
aiogram==3.13.1
python-dotenv==1.0.1

4. Храните токен отдельно от кода

Не вписывайте токен бота прямо в bot.py: его легко случайно отправить в GitHub или скриншот. Положите его в файл .env и читайте через python-dotenv.

import os
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv("BOT_TOKEN")

Если токен всё же утёк — перевыпустите его у @BotFather командой /revoke. Старый сразу перестанет работать.

5. Запустите и проверьте

Нажмите «Start» и откройте консоль: сначала установятся пакеты, затем запустится бот. Напишите ему в Telegram — если ответил, всё готово. Сервер работает круглосуточно, компьютер можно выключать.

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

Ошибка в консолиЧто делать
ModuleNotFoundError: No module named …Добавьте пакет в requirements.txt и перезапустите сервер
can't open file '/home/container/app.py'В «App py file» указано не то имя файла
Conflict: terminated by other getUpdates requestБот с этим токеном запущен где-то ещё, например у вас на ПК. Остановите вторую копию
SyntaxError на f-строках или matchСлишком старая версия Python — выберите 3.10+ в «Docker Image»