Простой способ развернуть телеграмм бота с Aiogram + Webhook на хостинг

  Рет қаралды 5,582

Rupyt

Rupyt

Күн бұрын

Расскажу самый простой и бесплатный способ развернуть на хостинге телеграмм бота, написанного на aiogram и перевести на webhook.
Бот будет работать 24/7 пожизненно. 🙂
Без использования VPS, фреймворка (django, flask, fastapi,..), pythonanywhere и heroku.
Вышел мой бумажный вариант пошаговой инструкции на хабре: habr.com/ru/articles/730310/
Краткое описание действий:
1. Через FTP поместить наш файл бота на хостинге.
2. Через SSH установить библиотеку aiogram.
3. Настроить сервис бота на хостинге.
4. Настроить сайт на переадресацию всех запросов на сервис бота.
5. Отредактировать файл запуска бота с учетом наших настроек.
0:00 - Задачи
0:40 - О "Polling"
1:16 - О "Webhooks"
1:47 - Привязка токена и URL
2:17 - Запуск локально с ngrok
3:09 - Схема работы на хостинге
3:51 - Регистрация на хостинге
4:05 - Настройка FTP, SSH
4:37 - Подключение по FTP, установка Aiogram
5:06 - Настройка сервиса бота
6:37 - Настройка сайта, Redirect
7:55 - Редактирование файла бота, запуск
9:20 - Переход с "polling" на "webhook"
9:43 - Второй способ
Пример кода "webhook" из документации:
docs.aiogram.dev/en/v2.25.1/e...
Хостинг: www.alwaysdata.com/
Код моего телеграмм бота на Git: github.com/Marat2010/SkillFac...
Пример моего бота: t.me/RuChyExch_Bot , работающий на хостинге.
Деплой телеграмм бота ( Aiogram 3 + Webhook + SSL + Nginx) на VPS/VDS:
• Деплой телеграмм бота ...
Надеюсь оцените 👍 или нет 👎. И жду ваших комментариев 🙂

Пікірлер: 55
@rupytru
@rupytru Жыл бұрын
Кого то интересует как легко и правильно разместить бота с webhook на VPS (+SSL) ? Жду комментов и 👍или 👎 под видео и этим комментом .
@bitrixsimbirbit1229
@bitrixsimbirbit1229 11 ай бұрын
Да, интересует, если сделаете будет круто
@richblessbigsmoke9781
@richblessbigsmoke9781 9 ай бұрын
да интересует
@rupytru
@rupytru 7 ай бұрын
kzbin.info/www/bejne/iJychmaJp6djfdE
@DreyTwo
@DreyTwo Жыл бұрын
Просто лучший, максимально понятно объяснил!
@eugeneponomarov7429
@eugeneponomarov7429 29 күн бұрын
Спасибо вам огромное еще раз!
@user-lt1we3wh7n
@user-lt1we3wh7n Жыл бұрын
Спасибо тебе огромное!
@knowledgedose1956
@knowledgedose1956 Жыл бұрын
спасибо. отличный контент! успехов в создании нового и интересного!
@coteyka1209
@coteyka1209 Жыл бұрын
Мега крутой туториал, теперь бот работает 24/7! Здоровья автору, и удачи в развитии канала
@user-fm1pe2lt2j
@user-fm1pe2lt2j Жыл бұрын
Спасибо большое, реально помогло, работает мой бот , а главное просто всё и бесплатно!!!
@user-ex3yi8mk3o
@user-ex3yi8mk3o Жыл бұрын
Класс, все получилось, спасибо большое. Идея топ!
@rupytru
@rupytru Жыл бұрын
Рад , что помогло. Сам долго искал простое решение) и ... нашел) главное чтобы хостинг не закрыли ))
@archibald3544
@archibald3544 Жыл бұрын
Вы не отключали сервер ngrok? И еще, у меня при запуске бота на сервисе оно у меня сразу же отрубается и даже не находит порт 8301, это я заранее его должен был в коде использовать?
@rupytru
@rupytru Жыл бұрын
Ngrok отключал, номер порта в коде надо поставить как я указывал в инструкции
@seoonlyRU
@seoonlyRU Жыл бұрын
сеоонли ставит лайк!
@sickthoughts666
@sickthoughts666 Жыл бұрын
Не подскажите, как выяснить дерикторию файла к которому путь указываете на 5:24, вроде все нормально указываю, но пишет service: 2883 Failed to start service: working directory (то, что я указываю) isn't a directory
@rupytru
@rupytru Жыл бұрын
Ваш домашний каталог должен быть /home/имя_которое_вы_давали/ , я давал имя "rupyt" , потому мой домашний каталог /home/rupyt/ , а дальше там есть каталог "www" , в ней я создал папку "bot" , и в нее положили наш файл webhook.py. Не забывайте там в настройках ниже домашний каталог(Working directory) указать /home/rupyt/www/bot/. Можно еще посмотреть , когда по SSH подключитесь, дать команду "pwd" - посмотреть текущий путь, команда "ls -al" - посмотреть список файлов.
@sickthoughts666
@sickthoughts666 Жыл бұрын
@@rupytru В общем я перезалил файлы через FileZilla и все заработало, спасибо за инфу!
@rupytru
@rupytru Жыл бұрын
@@sickthoughts666 Очень рад, что кому то помогло! ) Это вроде самый простой способ развернуть телеграмм бота 24/7, может только, я не очень доходчиво и запутанно объяснил )
@sickthoughts666
@sickthoughts666 Жыл бұрын
@@rupytru пару раз пришлось пересмотреть, конечно, но это нормально, информация оч хорошая, спасибо что поделились!
@anonfreeman2057
@anonfreeman2057 8 ай бұрын
Можно ли видео сделать для aiogram 3?
@rupytru
@rupytru 8 ай бұрын
C aiogram 3 не разбирался, не думаю что должно быть сложно, есть тоже примеры в документации: docs.aiogram.dev/en/latest/dispatcher/webhook.html
@depruss1an
@depruss1an 9 ай бұрын
А с помощью этого хостинга можно хостить больше одного бота в одном аккаунте?
@rupytru
@rupytru 9 ай бұрын
Я думаю можно. Сервисы (Service) можно сколь угодно создавать, останется только разные WEBHOOK_URL(Sites) организовать. Точно сказать не могу, не пробовал )
@depruss1an
@depruss1an 9 ай бұрын
@@rupytru да вот проблема в том, что одному аккаунту дают только один субдомен
@rupytru
@rupytru 9 ай бұрын
@@depruss1an Это верно, потому и сложно. Наверно можно , если к ним перенести свой домен и т.д...., но тогда смысла нет ))
@rupytru
@rupytru Жыл бұрын
Теперь при регистрации на alwaysdata, просит данные кредитки (. Обидно.
@sergvish6843
@sergvish6843 10 ай бұрын
хостинг поменяли? Вчера бот не работал, а теперь заработал снова. На питонэнивэа можно запустить бота с вебхуками кстати. Я для этого использовал фласк (просто пока не знаю как сделать бота без какого-либо фреймворка). Но в планах переписать его на аиограм.
@rupytru
@rupytru 8 ай бұрын
Наши кредитки не работают (может и к лучшему), но можно обратиться к ним, через форму "Contact us", указать свой email с которого пытался зарегистрироваться, имя, и сообщение написать, что мол карта не проходит. И лучше на английском написать. И они тебе на почту кинуть ссылку, чтобы ты мог активировать свою учетную запись. Я вчера еще одну учетку у них завел. И еще я заходил на сайт через VPN, выбирал страну Франция.
@AnonymouS-tk2le
@AnonymouS-tk2le Жыл бұрын
У меня ngrok даёт 502 Bad Gateway ошибку, не подскажите как его исправить
@rupytru
@rupytru Жыл бұрын
Это значит у Вас не запущено локально ничего. Т.е. ngrok пытается перенаправить запрос в ваш локальный адрес на порт, который вы указывали (у нас 3001 - "ngrok http 3001"), но ничего не находит. Что выдает, когда вы локально у себя запустили "python webhook.py" ? Должно быть как на 2:43 минуте. "Running on localhost:3001". Проверьте настройки WEBAPP_HOST и WEBAPP_PORT ...
@rupytru
@rupytru Жыл бұрын
И еще если вы на windows, то может блокировать Ваш внутренний фаервол-брандмауер.
@AnonymouS-tk2le
@AnonymouS-tk2le Жыл бұрын
Да, у меня windows, я запустил бот у себя в локалке но происходит эта ошибка
@rupytru
@rupytru Жыл бұрын
Как вариант не мучатся с ngrok, а ставить сразу на хостинг
@AnonymouS-tk2le
@AnonymouS-tk2le Жыл бұрын
На хостинге пишет permission denied
@user-cz6wn1xq8g
@user-cz6wn1xq8g Жыл бұрын
Вот бы такой же ролик, но с настройкой nginx на vds. Ни в Гугле ни в Ютубе ничего не понятно
@rupytru
@rupytru Жыл бұрын
Да это проблема. Там тоже не должно быть сложно, надо доку читать обычно, или в support обращаться, хотя они сами иногда ... ничем не могут помочь
@rupytru
@rupytru Жыл бұрын
Вот первая ссылка что нашел eternalhost.net/base/vps-vds/nginx-redirekt , может это не то , я просто с VPS и VDS никогда не работал.
@rupytru
@rupytru Жыл бұрын
Сделал на VPS на justhost.ru. На nginx, правда привязка не к домену, а к IP, + SSL. Если есть вопросы спрашивай, помогу с конфигами.
@depruss1an
@depruss1an Жыл бұрын
Была проблема: апдейты не доходили до бота, POST-запросы выдавали ошибку 502. Ошибка была в том, что в настройках сайта в поле Destination URL надо было исправить https на http, а в коде бота исправитьWEBHOOK_PATH с '/bot/' на '/bot' Спасибо ещё раз автору канала за помощь :)
@TheFjellape
@TheFjellape Жыл бұрын
Огромное спасибо за контент, задеплоил бота по первому способу + подрубил еще и базу Постгрес и все бесплатно. Правда вэбхук настроил попроще немного, что бы лишний код не хранить в файле executor.start_webhook( dispatcher=dp, webhook_path="", on_startup=on_startup, on_shutdown=on_shutdown, skip_updates=True, host='::', port=8350
@rupytru
@rupytru Жыл бұрын
Здорово, что помогло и легко получилось! )
@user-ro7tq6sl9l
@user-ro7tq6sl9l Жыл бұрын
STDERR: SyntaxError: Non-UTF-8 code starting with '\xd2' in file что длеать ето вилазит при запуске сервиса
@rupytru
@rupytru Жыл бұрын
Это связано с кодировкой , русские символы есть? Гугл говорит, что надо сохранить в котировке UTF-8. Попробуйте зайти по SSH и запустить сервис вручную набрав "python /home/rupyt/www/bot/webhook.py"
@user-ro7tq6sl9l
@user-ro7tq6sl9l Жыл бұрын
@@rupytru Спасибо большое, помогло. Только у меня в кнопках и в тексте есть смайлики, но они не отображаються. Подскажите пожалуста что можно с етим сделать, буду очень благодарен!
@rupytru
@rupytru Жыл бұрын
@@user-ro7tq6sl9l как один из вариантов, записать смайлики эмодзи - кодом типа u00.. . Например смайлик улыбка будет "Это смайлик - \U0001F600"
Как устроен Python? ► Детальный разбор
11:05
Хауди Хо™ - Просто о мире IT!
Рет қаралды 580 М.
Clown takes blame for missing candy 🍬🤣 #shorts
00:49
Yoeslan
Рет қаралды 43 МЛН
Why Is He Unhappy…?
00:26
Alan Chikin Chow
Рет қаралды 29 МЛН
Женская драка в Кызылорде
00:53
AIRAN
Рет қаралды 486 М.
EVOLUTION OF ICE CREAM 😱 #shorts
00:11
Savage Vlogs
Рет қаралды 7 МЛН
lofi hip hop radio 📚 - beats to relax/study to
Lofi Girl
Рет қаралды 19 М.
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 7 М.
Telegram web app. Онлайн магазин с корзиной + чат-бот
0:14
Автоматизация онлайн-школ, бизнеса и экспертов
Рет қаралды 46 М.
Demohub Tips // Webhooks vs. APIs: What's the Difference? | www.demohub.dev
12:40
DemoHub | Demos For Modern Data Tools
Рет қаралды 32 М.
Clown takes blame for missing candy 🍬🤣 #shorts
00:49
Yoeslan
Рет қаралды 43 МЛН