Compare commits

..
3 Commits
Author SHA1 Message Date
LeoR156 9b0783581f Update README 2026-09-15 16:02:26 +05:00
LeoR156 36763e28fa Enhance README with emojis and formatting updates
Updated README.md with emojis and improved formatting.
2026-09-15 15:53:18 +05:00
LeoR156 a48841be07 Update REAME.md 2026-09-15 15:46:01 +05:00
+34 -14
View File
@@ -1,28 +1,38 @@
# Цитатный телеграмм бот с авторазвёртыванием. # Цитатный телеграмм бот с авторазвёртыванием. :robot:
## 🛠 Под капотом (Стек технологий)
Этот проект создавался в том числе для практики современных DevOps-инструментов. Здесь реализован полноценный автоматизированный пайплайн развертывания:
* **Terraform + Yandex Cloud:** Используется концепция Infrastructure as Code (IaC) для автоматического создания виртуальных машин, настройки сети и дисков в облаке.
* **Docker:** Приложение упаковано в контейнер, что решает проблему с зависимостями и позволяет легко запускать бота на любом сервере.
* **Ansible:** Автоматизирует настройку чистого сервера. Плейбук сам устанавливает Docker (если его нет), настраивает окружение и запускает контейнер.
* **GitLab CI/CD:** Готовый пайплайн (`.gitlab-ci.yml`), который прогоняет тесты, собирает Docker-образ с помощью Kaniko, пушит его в Docker Hub и автоматически запускает Ansible-плейбук для деплоя на боевой сервер.
---
### Что умеет данный бот? ### Что умеет данный бот?
* Отправлять рандомную цитату по запросу ``` /quote ```. * Отправлять рандомную цитату по запросу ``` /quote ```
* По команде ``` /stats ``` показывать, сколько цитат в базе есть на данный момент. * По команде ``` /stats ``` показывать, сколько цитат в базе есть на данный момент.
### Возможности для администратора: ### Возможности для администратора: :gear:
* Добавлять новые цитаты командой ``` /add <текст цитаты> ```. * Добавлять новые цитаты командой ``` /add <текст цитаты> ```
## Как это развернуть? ## Как это развернуть? :rocket:
### вам понадобится: ### Вам понадобится:
* Зарубежный Linux сервер на Ubuntu или Debian. * Зарубежный Linux сервер на Ubuntu или Debian.
* Токен вашего телеграмм бота. Можно получить здесь: [BotFather](t.me/BotFather). * Токен вашего телеграмм бота. Можно получить здесь: [BotFather](https://t.me/BotFather)
* У вас должен быть установлен ansible и git на wsl. Если не установлен, то установите командами ` sudo apt install ansible ` и ` sudo apt install git `. * У вас должен быть установлен ansible и git на wsl. Если не установлены, то установите командами ` sudo apt install ansible && sudo apt install git `
### Ваши действия для развертывания: ### Ваши действия для развертывания:
* Клонируйте репозиторий командой: ` git clone https://github.com/LeoR156/quote-bot `. * Клонируйте репозиторий командой: ` git clone https://github.com/LeoR156/quote-bot `
* Перейдите в папку с ботом командой ` cd quote-bot ` * Перейдите в папку с ботом командой ` cd quote-bot `
* Создайте файл ` .env ` и добавте в него данные: * Создайте файл ` .env ` и добавьте в него данные командой ` nano .env `:
``` ```
TOKEN=your_token_here # Замените на реальный токен TOKEN=your_token_here # Замените на реальный токен
ADMIN_IDS=123456789,987654321 # Напишите свой id или id того аккаунта, с которого будет осущесвляться добавление цитат. ID может быть несколько, порядок записи в примере. ADMIN_IDS=123456789,987654321 # Напишите свой id или id того аккаунта, с которого будет осуществляться добавление цитат. ID может быть несколько, порядок записи в примере.
``` ```
* Перейдите в папку ` auto-deployment ` командой ` cd auto-deployment `. * Перейдите в папку ` auto-deployment ` командой ` cd auto-deployment `
* Отредактируйте файл инвентори командой ` nano inventory.ini `. Удалите оттуда всю информацию и добавьте следующее: * Отредактируйте файл инвентори командой ` nano inventory.ini `. Удалите оттуда всю информацию и добавьте следующее ( :warning: не забудьте поменять данные на свои):
``` ```
[server_bot] [server_bot]
@@ -31,6 +41,16 @@ server ansible_host=<ваш_ip> ansible_user=<ваш_пользователь> a
[all:vars] [all:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no' ansible_ssh_common_args='-o StrictHostKeyChecking=no'
``` ```
* Запустите плейбук командой `ansible-playbook A_deploy.yml -i inventory.ini` * Запустите плейбук командой `ansible-playbook A_deploy.yml -i inventory.ini`
##### Готово, через несколько минут бот заработает. ### Готово, через несколько минут бот заработает. :white_check_mark:
***
***
***
## Диагностика, если бот не отвечает/падает:
...скоро...