chat-bots-2025-fall:docker_deploj_na_vps
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| chat-bots-2025-fall:docker_deploj_na_vps [2026/03/02 12:34] – removed - external edit (Unknown date) 127.0.0.1 | chat-bots-2025-fall:docker_deploj_na_vps [2026/03/02 12:34] (current) – ↷ Links adapted because of a move operation olegsklyarov | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Docker деплой на VPS ====== | ||
| + | |||
| + | |||
| + | ===== Базовая настройка безопасности VPS ===== | ||
| + | |||
| + | ==== Легенда ==== | ||
| + | |||
| + | * ☁️ — команда запускается на VPS | ||
| + | * 💻 — команда запускается на локальном компьютере | ||
| + | |||
| + | ==== Шаги ==== | ||
| + | |||
| + | ⚠️ Ниже даны команды для ОС [[https:// | ||
| + | |||
| + | === Обновить систему полностью === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ apt update && apt upgrade -y && apt autoremove -y | ||
| + | </ | ||
| + | |||
| + | === Создать нового пользователя === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ adduser oleg | ||
| + | Создайте надежный пароль, | ||
| + | ☁️ (root) $ usermod -aG sudo oleg | ||
| + | </ | ||
| + | |||
| + | === Установить свой SSH-ключ === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (oleg) $ mkdir -p / | ||
| + | ☁️ (oleg) $ chmod 700 / | ||
| + | </ | ||
| + | |||
| + | С локального компьютера: | ||
| + | <code bash> | ||
| + | 💻 $ ssh-keygen -t rsa -b 4096 -C " | ||
| + | # При создании: | ||
| + | # - укажите имя файла (например: | ||
| + | 💻 $ ssh-copy-id -i ~/ | ||
| + | </ | ||
| + | |||
| + | === Запретить SSH-логин под root === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ sed -i ' | ||
| + | </ | ||
| + | |||
| + | === Запретить логин по паролю === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ sed -i ' | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Изменить SSH порт === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ sed -i ' | ||
| + | </ | ||
| + | |||
| + | === Настроить firewall UFW === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ apt install -y ufw | ||
| + | ☁️ (root) $ ufw default deny incoming | ||
| + | ☁️ (root) $ ufw default allow outgoing | ||
| + | ☁️ (root) $ ufw allow < | ||
| + | ☁️ (root) $ ufw limit < | ||
| + | # открываем порт для подключения к БД при помощи '' | ||
| + | ☁️ (root) $ ufw allow < | ||
| + | ☁️ (root) $ ufw --force enable | ||
| + | </ | ||
| + | |||
| + | === Перезапустить SSH === | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ systemctl restart sshd | ||
| + | </ | ||
| + | |||
| + | === Проверить, | ||
| + | |||
| + | |||
| + | Очень важно — **НЕ закрывать** текущую SSH-сессию, | ||
| + | |||
| + | С локального компьютера: | ||
| + | <code bash> | ||
| + | 💻 $ ssh -p < | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Установка Docker ===== | ||
| + | |||
| + | <code bash> | ||
| + | ☁️ (root) $ curl -fSL https:// | ||
| + | ☁️ (root) $ sh ./ | ||
| + | ☁️ (root) $ apt install docker-compose-plugin | ||
| + | ☁️ (root) $ usermod -aG docker oleg | ||
| + | ☁️ (root) $ su - oleg | ||
| + | |||
| + | # проверка, | ||
| + | ☁️ (oleg) $ groups | ||
| + | |||
| + | # теперь можно запускать docker без root | ||
| + | ☁️ (oleg) $ docker ps | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Д/З ===== | ||
| + | |||
| + | |||
| + | |||
| + | ==== Практика (для зачета) ==== | ||
| + | |||
| + | === Обязательная часть === | ||
| + | |||
| + | - Выполнить докеризацию Pizza Bot | ||
| + | - Удалить docker-compose.yml файл полностью | ||
| + | - Написать Dockerfile для создания Docker-образа (docker image) чат-бота Pizza Bot | ||
| + | - Если нет учетной записи на https:// | ||
| + | - Создать новый Docker Hub репозиторий (**публичный**) для публикации образа своего бота | ||
| + | - Авторизовать локальной Docker с учеткой Docker Hub, чтобы можно было делать '' | ||
| + | - Дополнить Makefile командами Docker: | ||
| + | - Создать Volume и Network | ||
| + | - Запустить / остановить контейнер БД postgres | ||
| + | - Билд + пуш образа чат-бота в Docker Hub | ||
| + | - Запустить / остановить контейнер с чат-ботом | ||
| + | - Выполнить билд и пуш своего Pizza Bot на Docker Hub | ||
| + | |||
| + | === Рекомендуемая часть === | ||
| + | |||
| + | - Арендовать VPS (или VDS). Есть бесплатные тестовые варианты (см. ниже)! | ||
| + | - Получить IP адрес и рутовый доступ по SSH | ||
| + | - Выполнить базовую настройку безопасности VPS | ||
| + | - Установить docker на VPS | ||
| + | - Выполнить деплой своего бота и postgres на VPS | ||
| + | |||
| + | P.S. Если студент против регистрации на сайте хостинга с предоставлением личного номера сотового или из-за необходимости оплаты услуг хостинга, | ||
| + | ==== Бесплатные VPS ==== | ||
| + | |||
| + | (я не пробовл, | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | VPS за 75 ₽ / мес от FirstByte (тариф MSK-KVM-SSD-START), | ||
| + | |||
| + | |||
| + | |||
| + | === Процесс сдачи === | ||
| + | |||
| + | - (студент): | ||
| + | - '' | ||
| + | - Ссылка на гит с исходным кодом бота | ||
| + | - Ссылка на публичный Docker Hub репозиторий, | ||
| + | - (рекомендуемая часть) Креды для подключения к PostgreSQL на вашем VPS: IP сервера, | ||
| + | - (преподаватель) проверяет Dockerfile, Makefile в гитхаю, | ||
| + | - (преподаватель) отправляет с ТГ личку студенту сообщение " | ||
| + | - (студент) заходит [[chat-bots-2025-fall: | ||
| + | |||
| + | |||
