Skip to content

Telegram-bot (Telegram-бот для мини-приложения "Топ энергетиков")

Notifications You must be signed in to change notification settings

dimi-try/energy-bot

Repository files navigation

🤖 Telegram-бот "Топ энергетиков"

Добро пожаловать в "Топ энергетиков" — Telegram-бот, созданный для взаимодействия с пользователями и интеграции с frontend-приложением. Бот позволяет запускать Telegram Mini App, в котором пользователи могут оставлять отзывы, выставлять оценки и анализировать статистику популярных напитков. 🚀

🛠 Используемые технологии

Technologies

📂 Структура проекта

energy-bot/
│
├── .github/
│   └── workflows/
│       └── docker-deploy.yml   # CI/CD: деплой Docker-контейнера
│
├── src/
│   └── index.js                # Основной файл бота
│
├── .dockerignore               # Исключения для сборки контейнера
├── .env.sample                 # Пример файла с переменными окружения
├── .gitignore                  # Игнорируемые файлы
├── docker-compose.yml          # Конфигурация Docker
├── Dockerfile                  # Docker-сборка
├── package.json                # Зависимости и скрипты
└── README.md                   # Документация проекта

🔧 Установка проекта

📋 Настройка .env

Скопируйте .env.sample, переименуйте в .env и добавьте свои данные.

Укажите свои значения переменных в .env.

📥 Установка зависимостей

npm install

🌐 Тестирование Telegram Mini App локально

Для разработки и тестирования mini app на локальном сервере необходим HTTPS. Используйте туннелирование для порта, на котором запущен frontend:

1️⃣ Установка Tunnelmole

npm install -g tunnelmole

2️⃣ Запуск туннеля (например, для порта 3000):

tmole 3000

Скопируйте выданный HTTPS-URL и установите его в FRONTEND_URL в .env.

⚠️ Убедитесь, что ваш фронтенд запущен. Инструкция: репозиторий frontend


🚀 Запуск проекта

Перед запуском проверьте переменную NODE_ENV в .env. Она принимает два значения: development или production.

С установленным значением development после запуска бот будет работать в режиме Long Polling.

npm start

Приложение будет доступно по адресу:
📍 http://localhost:2000

⚠️ Значение production устанавливается непосредственно при деплое или на сервере в .env. Бот будет слушать входящие запросы через Webhook


🌍 Деплой

Доступны два способа:

Вариант 1: Docker Compose вручную

  1. Проверьте .env и docker-compose.yml

  2. Выполните сборку и пуш:

docker compose build
docker compose up -d
docker push <your-dockerhub>

Вариант 2: Автоматически через GitHub Actions

  1. В файле .github/workflows/docker-deploy.yml уже всё готово

  2. При пуше в main ветку произойдёт автоматическая сборка и публикация образа в DockerHub

На прод-сервере можете использовать docker-compose-server.yml из репозитория backend. Скопируйте .env.example, переименуйте в .env и добавьте свои данные.


🔧 Полезные команды

📌 Установка зависимостей
npm install
🚀 Запуск в продакшене
npm run start
🛠 Линтинг кода
npm run lint
🧹 Очистка кэша
npm cache clean --force
🗑 Очистка node_modules
Get-ChildItem -Path . -Recurse -Directory -Filter "node_modules" | Remove-Item -Recurse -Force #windows

💡 Обратная связь

Если у вас есть предложения или вопросы, создавайте issue в репозитории! 🚀

About

Telegram-bot (Telegram-бот для мини-приложения "Топ энергетиков")

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •