Телеграм бот на Java. Деплой бота на VPS (хостинг). Настройка Traefik. Урок 21.

Описание к видео Телеграм бот на Java. Деплой бота на VPS (хостинг). Настройка Traefik. Урок 21.

В этом видео я показал процесс деплоя бота на хостинг.

0:00 начало
0:26 хостинг timeweb поднял цены в 2.5 раза — поэтому он идёт лесом
1:54 настройка хостинга beget и регистрация домена
5:30 настройка виртуальной машины
14:55 обзор нового кода
20:54 продолжение настройки виртуальной машины
26:45 обзор админки traefik
27:45 тестирование работы телеграм бота
29:27 финал

Посмотреть новый код, добавленный в данном уроке:
https://github.com/AndreyYermolenko/B...

Хостинг Beget:
https://beget.com/ru/vps

Страница управления доменами:
https://cp.beget.com/domains

Добавление нового пользователя и установка ему пароля:
$ useradd pogreb -m
$ passwd pogreb

Добавить нового пользователя в sudoerr (иначе, не будет работать команда sudo)
$ usermod -a -G sudo pogreb

Зайти под новым пользователем (ввод пароля не требуется):
$ su pogreb

Перейти в домашнюю директорию и просмотреть путь к текущей директории:
$ cd
$ pwd

Установка докера на виртуалке.
Устанавливаем служебные пакеты:
$ sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

Добавляем ключ к официальному репозиторию Docker в систему:
$ curl -fsSL https://download.docker.com/linux/ubu... | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Добавляем репозиторий Docker:
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list /dev/null
ВНИМАНИЕ: ютуб запрещает в описание к видео вставлять угловые скобки, поэтому команда выше работать не будет. Чтоб все заработало, нужно после "list.d/docker.list" поставить угловую скобку, указывающие вправо =))

Обновляем пакетный индекс APT:
$ sudo apt-get update

Получаем список доступных версий Docker CE (Community Edition):
$ apt-cache madison docker-ce

Устанавливаем конкретную версию Docker, указав её полностью. Я буду использовать версию: 5:20.10.13~3-0~ubuntu-jammy
$ sudo apt-get install docker-ce=5:20.10.13~3-0~ubuntu-jammy

Проверяем, что docker успешно установился и процесс-демон работает:
$ sudo systemctl status docker
Чтобы выйти из режима просмотра - нужно нажать Q.

Добавляем текущего пользователя в docker группу, чтобы выполнять операции с docker-командой без sudo:
$ sudo usermod -aG docker pogreb
Выход с виртуалки, чтобы изменения вступили в силу:
$ exit
$ exit

Проверка, что можно выполнять команды к докеру без sudo:
$ docker ps

Создаем ключ SSH:
$ mkdir -p ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 2048 -f github_rsa

Получаем публичный ключ и копируем его в буфер:
$ ssh-keygen -y -f ~/.ssh/github_rsa

Нужно создать конфиг на виртуалке для подключения к гиту. Команда touch создаст пустой файлик с названием config в текущей директории.
$ touch config
Для работы с файлами в данном уроке будет использован редактор VI:
$ vi config

В .ssh/config дописать:
Host gitserv
Hostname github.com
User git
IdentityFile ~/.ssh/github_rsa

Чтобы сохранить файл в редакторе VI, нужно нажать Shift + двоеточие. Внизу появится двоеточие и мигающие курсор. Нужно ввести 2 английские буквы w и q. W — означает Write, а Q — означает Quit, т.е. выйти. Таким образом, мы сохраняем изменения и закрываем файл.

Проверка соединение с github:
$ ssh gitserv

Дока с публичными ключами гитхаба:
https://docs.github.com/en/authentica...

Переходим в домашнюю директорию и клонируем нужный репозиторий со всей историей коммитов:
$ cd
$ git clone gitserv:AndreyYermolenko/BabushkinPogreb.git
Здесь вместо AndreyYermolenko укажите свой аккаунт и актуальное название репозитория, если вы его поменяли у себя, когда делали Fork.

$ cd ~/BabushkinPogreb

Утилита для генерации хеша пароля:
$ sudo apt-get install apache2-utils
Генерация хеша:
$ echo $(htpasswd -nbB admin "password")

Утилита для работы с let's encrypt:
$ sudo apt install certbot

Выпуск сертификата:
$ sudo certbot certonly --standalone -d ваш_домен

Копирование ключей:
$ mkdir /home/pogreb/certs
$ sudo cp /etc/letsencrypt/live/ваш_домен/fullchain.pem /home/pogreb/certs/fullchain.pem
$ sudo cp /etc/letsencrypt/live/ваш_домен/privkey.pem /home/pogreb/certs/privkey.pem

Запуск системы:
$ /bin/bash ~/BabushkinPogreb/scripts/deploy.sh

Админка Traefik:
https://ваш_домен:9443/dashboard/#/

Временная почта:
https://tempail.com/ru/


Группа-беседка в тг: https://t.me/enter_I7

Github с кодом проекта:
https://github.com/AndreyYermolenko/B...

Ресурсы компании РЕЛЭКС:
https://relex.ru/ru/?utm_source=youtu...
https://t.me/relexru
  / relex-group  
https://vk.com/relex_ru

#java #telegrambot #springboot #docker #deployment #vps #clouds #ssl #tls #traefik #timeweb #beget

Комментарии

Информация по комментариям в разработке