От localhost до сервера: деплой telegram бота за 8 минут

от автора

Вы написали бота. Он работает локально, отвечает на команды, всё выглядит отлично. Вы показываете другу — и отправляете ссылку. Друг пишет боту. Бот не отвечает.

Потому что бот работает только пока открыт ваш ноутбук.

Это момент когда большинство разработчиков застревают. Код написан, идея рабочая — но бот живёт только на вашем компьютере и умирает как только вы закрываете терминал. Гуглишь «как задеплоить телеграм бота», находишь статьи про Docker, Kubernetes, CI/CD pipelines — и закрываешь вкладку.

На самом деле всё проще.

Чтобы бот работал 24/7 нужно три вещи: дешёвый VPS за 300-500 рублей в месяц, минимальная конфигурация и systemd который не даст боту упасть и не встать. Никаких сложных конфигураций.

В этой статье я покажу как перенести готового aiogram-бота на сервер с нуля. Без лишней теории — только конкретные команды которые можно скопировать и запустить. Весь процесс занимает около восьми минут.

Поехали.

Начало

Деплоить мы будем через сервис Timeweb Cloud. Вкратце — это российская облачная платформа для бизнеса, стартапов и разработчиков. Она предоставляет комплекс инструментов для создания и масштабирования IT-инфраструктуры: от тестовых сред до высоконагруженных проектов. 

Пошаговая инструкция по созданию сервера:

1. Во-первых вам нужно пройти регистрацию на сервисе Timeweb.

2. Далее заходите во вкладку «облачные серверы». Здесь у нас есть большой спектр различные ОС. Мы выбираем Ubuntu 24.04.

3. Далее выбираем любой зарубежный регион, либо же российские сервер.

Зачем нам нужен зарубежный регион? Могут задаться вопросом некоторые читатели. Если ваш бот использует внешние API, например Groq, ChatGPT, которые заблокирован в России, то всегда выбирайте сервер за пределами России. Если ваш бот не использует API никаких ИИ и работает по скрипту, берите российский регион.

Все возможные сервера в Timeweb

Все возможные сервера в Timeweb

4. Далее у нас идёт конфигурация. Это очень важный, но простой раздел. Поскольку у вас пока только один бот, смело выбирайте минимальную конфигурацию — ваш бот не потребляет много трафика и будет использовать примерно ~6–10% ресурсов процессора. Это удобно и экономно, особенно на старте.

5.  Далее у нас идет сеть здесь мы все сохраняем и переходим к следующему пункту:

6. Далее у нас идёт блок про бекапы.

Бекапы — это резервные копии вашего проекта. Они нужны для того, чтобы не потерять данные и код, если что-то пойдёт не так:

  • сервер сломался или завис

  • база данных SQLite испортилась

  • случайно удалили файлы или внесли ошибку в код

📌 С бекапами вы всегда можете восстановить рабочую версию и продолжить работу без потерь.

Проще говоря: бекапы — это страховка вашего проекта, которая спасает время и нервы. Здесь выбирайте нас свое усмотрение (советую выбрать).

Наши любые бэкапы

Наши любые бэкапы

7. Потом мы всё оставляем и переходим к оплате. Не советую вам сразу оплачивать на месяц, возьмите сначала на сутки, потом у вас все равно будет возможность продлить.

После оплаты у нас должен загрузиться наш сервис примерно (30–60 секунд). 

Инструкция по хостингу самого бота

1. Подключение к серверу

Заходите на ваш сервис, копируйте ваш пароль (он будет справа) и заходите в консоль вашего сервера:

  1. Enter

  2. Вводите логин root

  3. Через Ctrl + Shift + V вставляйте ваш root-пароль

  4. Далее вы увидите приветственное сообщение

2. Установка зависимостей

Теперь нам требуется установить системные зависимости и рантаймы:

sudo apt update sudo apt upgradesudo apt install python3 python3-pip -ysudo apt install nodejs npm -ynpm install pm2 -g                                 

📌 Важно:

  • если появляется (Y/N) → всегда нажимайте Y

  • если консоль зависла → введите clear

3. Перенос проекта на сервер

Далее нам нужно перенести нашу папку с файлами на сервак. Есть два варианта, как можно сделать: через GitHub либо же через FileZilla, сделаем мы это через второй вариант.

Установить FileZilla можно по ссылке: https://filezilla-project.org/

4. Подключение

После того как мы установили и зашли, нам нужно внести наши данные:

  1. хост (IPv4)

  2. имя пользователя – root

  3. пароль – root-пароль

  4. порт – 22

Пароль и хост можно взять в дашборде на Timeweb.

5. Перенос файлов

После того как мы внесли наши данные, перенесите папку с проектом в FileZill’y. 

Здесь generator – мой проект.

6. Переход в папку проекта

Далее переходим в консоль Timeweb и переходим в нашу папку, выполняя команду:

cd /root/название_папки                  

Чтобы проверить, какие файлы у нас есть в папке, введите команду:

ls                  

7. Виртуальное окружение

Далее устанавливаем виртуальное окружение командами:

apt install python3-venv -ycd ~/название_папкиpython3 -m venv venvsource venv/bin/activate                  

Скачивайте строго по одному.

8. Установка зависимостей

И под конец устанавливаем зависимости, ваши зависимости записаны в requirements:

pip install aiogram python-dotenv httpx                  

Возможные другие зависимости. НО в большинстве случаев они такие.

9. Запуск бота

Запускаем файл:

pm2 start main.py                  

Дополнительные полезные команды:

1. Чтобы посмотреть версию python, выполните команду:

python --version                  

2. Чтобы посмотреть логи вашего проекта, введите команду:

pm2 logs                  

3. Чтобы перезапустить проект, выполните команду:

pm2 restart main.py                  

 Где, main.py – ваш главный файл для запуска.

Что делать, если мне нужно поменять механику в моем файле?

Иногда вам нужно изменить логику бота: добавить функцию, исправить баг, выпустить апргейд или улучшить поведение.

Разберём, как это сделать правильно.

Инструкция 

1. Подключение к серверу

Переходим в FileZilla и подключаемся к нашему серверу, как мы это делали в пункте 4 (Подключение). Теперь нам уже не нужно переносить файлы, они уже там. 

2. Открытие файла

Как только вошли, нажимаем дважды на нашу папку и потом правой кнопкой мыши на сам файл, который мы хотим подредактировать. У вас должно получится вот так:

3. Редактирование

Нажимаем на «Просмотр/Правка» и далее выбираем наш IDE.

4. Сохранение изменений

После того как что-то поправили, мы сохраняем изменения Ctrl + S и переходим в FileZilla, нам высветится сообщение об изменении → Нажимаем «Да».

5. Перезапуск бота

Переходим в консоль Timeweb и перезапускаем бота командой:

pm2 restart main.py                  

Готово! 

Чек-лист

  1. Внёс изменения

  2. Сохранил файл

  3. Перезапустил бота

  4. Проверил результат

Если вы не перезапустили бота, ничего не сохранится! 

Всё что описано в статье я прошёл сам когда деплоил конструктор Telegram-ботов с AI. Если интересно посмотреть на готовый результат — бот живёт здесь: https://t.me/GenerateYourAIBot. Там можно создать своего бота не написав ни строчки кода. Что умеет: генерирует функциональных ботов с AI или без, подключает SQLite, настраивает логирование и аналитику. 10 топовых ИИ моделей для кодинга, язык бота, способ доставки файлов. Настройка дополнительных файлом. Система «предпочтений».

ссылка на оригинал статьи https://habr.com/ru/articles/1025022/