Skip to content

Deploy TG Bot, Aiogram3, webhook, VPS

Notifications You must be signed in to change notification settings

gennadiyvorgy1/Aiogram3

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Деплой телеграм бота (Aiogram3+Webhook+SSL) на VPS/VDS:

!!! Осторожно, скрипты могут затереть ваши файлы!!!
Предполагается установка на вновь созданный сервер!

Описание

Полный цикл работ по размещению бота на Aiogram3 c webhook, SSL на VPS/VDS.
Проверено на ОС серверов Timeweb, Рег.ру: Ubuntu 20.04, Ubuntu 22.04.

  1. Подключаемся к серверу ssh [email protected] и выполняем последовательно все команды.

  2. Скачиваем первый скрипт, выполним команду:

    wget https://raw.githubusercontent.com/Marat2010/Aiogram3/master/Scripts/1_start.sh
    
  3. Делаем скрипт исполняемым:

    chmod +x 1_start.sh
    
  4. Запускаем скрипт (под root-ом):

    ./1_start.sh
    
    • Установка пакетов: vsftpd, mc, python3-venv
    • Создание пользователя для проекта.
    • Установка переменных окружения: PROJECT_USER
    • Копирование скриптов в каталог пользователя
    • Смена пароля root-а
  5. Заходим под созданным пользователем:
    # su 'PROJECT_USER'
    $ cd ~

  6. Запускаем второй скрипт (под пользователем):

    Scripts/2_venv.sh
    
    • Создание проекта
    • Установка и активация вирт. окружения
    • Копирование файлов
    • Установка Aiogram 3.2.0
    • Установка переменных окружения: BOT_TOKEN, DOMAIN_IP, DOMAIN_NAME, PROJECT_NAME
    • Подготовка самоподписанных SSL сертификатов для домена и IP
    • Запуск сервиса, службы (SYSTEMD) бота

    Перезайти $ exit, # su 'PROJECT_USER', $ cd ~
    Или перезагрузиться.

  7. Запускаем третий скрипт (под пользователем):

    Scripts/3_nginx.sh
    
    • Установка пакета Nginx
    • Настройка Nginx
    • Копирование примеров страниц сайта
    • Организация веб доступа к папке проекта
    • Установка переменных окружения: EMAIL_SSL (для cron-а)
    • Запись переменных окружения в файл '.env' проекта
    • Перезапуск Nginx

    Необходимо убедится, что наш веб сервер, доступен по имени домена: http://DOMAIN_NAME
    Перезайти под root-ом: $ exit, $ exit, # ssh [email protected]
    Или перезагрузиться.

  8. Запускаем четвертый скрипт (под root-ом) :

    Scripts/4_cert.sh
    
    • Установка пакета acme-nginx.
    • Установка бесплатных сертификатов SSL (Let's Encrypt) для домена, через acme-nginx
    • Настройка автоматического обновления сертификатов
    • Перезапуск Nginx

    Всё, проверяем бота! )


Для использования самоподписанного сертификата без Nginx, необходимо в main.py установить в True:
>SELF_SSL = True

После остановить Nginx, и перезапустить службу Aiogram3_bot:

sudo systemctl stop nginx.service
sudo systemctl daemon-reload
sudo systemctl restart Aiogram3_bot.service  

Можно проверять бота! )


Полное описание на хабре .
Видео обзор на youtube .

About

Deploy TG Bot, Aiogram3, webhook, VPS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 70.0%
  • Python 26.2%
  • HTML 3.8%