Как стать автором
Обновить

Комментарии 16

А почему вы не использовали докер? Намного же проще — упаковать бота в контейнер(ы) и запустить его на ВМ без необходимости что-либо (кроме самого докера) ставить и как-то администрировать.

Думал об этом. Но решил, что для первого туториала — это будет несколько труднее. Обязательно реализую это в следующей статье

Не сильно труднее, чем настройка самой VM. Фактически всё тоже само нужно пихнуть в dockerfile в виде команд, собрать контейнер и вот уже можно запускать на огромном кол-ве облачных сервисов.

Причем есть уже много контейнеров готовых для Telegram-ботов, бери и пользуйся

Спасибо. Пожалуй в следующей статье это и покажу

Концептуально это сложнее. Очевидно что статья для новичков ("Что такое виртуальная машина"), и ещё один уровень абстракции может человека окончательно запутать.

Очень не хочется занудствовать, но :)
Ещё один уровень абстракции в данном случае как раз позволяет не думать/не объяснять что такое виртуальная машина, как её создать, как настроить, какую выбрать ОС, какую версию питона поставить (написано ставим последнюю, а на деле 3.8.5, хотя уже есть 3.9.2) и много других. Настройка ВМ намного сложнее и выше риск, что что-то пойдет не так. Плюс это ещё и дороже будет, чем контейнер задеплоить. Короче ИМХО виртуальная машина по всем пунктам хуже контейнера для «первого погружения» в написание бота.

Например, pytelegrambotapi — это ведь тоже абстракция, которая скрывает все нюансы работы с API и ботом.
Если добавляем новый unit для systemd, то хорошо бы и о необходимости daemon-reload написать.

Спасибо. Учту

Посмотрите в сторону aiogram.

Так вроде все хорошо, но размещать токены и прочую важную информацию непосредственно в коде это не самая лучшая идея. Будет не очень хорошо, если такой код загрузить на GitHub, например, а еще и в публичный репозиторий. Лучше выносить токены в отдельный файл и добавлять этот файл в gitignore, это один из простых вариантов

Да. Это я знаю, но для туториала я решил этого не добавлять. Иначе у новичков в этой сфере появилось бы куда больше вопросы. Обязательно учту вышесказанное в следующей более продвинутой статье

API ключ от бота засвечен намеренно или я что-то не понимаю?

Это просто тестовый бот, который был удалён сразу после создания и теста

а разве после создания нового демона не нужно делать sudo systemctl daemon-reload?

UPD:
пока комментарий одобрял модератор выше уже появилось замечание про этот момент.
Извините, не удержался: deploy на virtual машину cloud провайдера

Использовал как руководство, спасибо! В целом, всё получилось, замечание небольшое, вот тут:

[Service]
EnvironmentFile=/etc/environment
ExecStart=/home/НазваниеБота/venv/bin/python main.py
ExecReload=/home/НазваниеБота/venv/bin/python main.py
WorkingDirectory=/home/НазваниеБота/

Не "НазваниеБота" наверное правильнее, а название папки, где бот лежит, и вообще адрес до папки, потом /venv/bin/python НазаниеФайла.py

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории