Добро пожаловать в "Топ энергетиков" — Telegram-бот, созданный для взаимодействия с пользователями и интеграции с frontend-приложением. Бот позволяет запускать Telegram Mini App, в котором пользователи могут оставлять отзывы, выставлять оценки и анализировать статистику популярных напитков. 🚀
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.sample, переименуйте в .env и добавьте свои данные.
Укажите свои значения переменных в .env.
npm installДля разработки и тестирования mini app на локальном сервере необходим HTTPS. Используйте туннелирование для порта, на котором запущен frontend:
npm install -g tunnelmoletmole 3000Скопируйте выданный HTTPS-URL и установите его в FRONTEND_URL в .env.
⚠️ Убедитесь, что ваш фронтенд запущен. Инструкция: репозиторий frontend
Перед запуском проверьте переменную NODE_ENV в .env. Она принимает два значения: development или production.
С установленным значением development после запуска бот будет работать в режиме Long Polling.
npm startПриложение будет доступно по адресу:
📍 http://localhost:2000
⚠️ Значениеproductionустанавливается непосредственно при деплое или на сервере в.env. Бот будет слушать входящие запросы через Webhook
Доступны два способа:
-
Проверьте
.envиdocker-compose.yml -
Выполните сборку и пуш:
docker compose builddocker compose up -ddocker push <your-dockerhub>-
В файле
.github/workflows/docker-deploy.ymlуже всё готово -
При пуше в
mainветку произойдёт автоматическая сборка и публикация образа в DockerHub
На прод-сервере можете использовать docker-compose-server.yml из репозитория backend. Скопируйте .env.example, переименуйте в .env и добавьте свои данные.
npm installnpm run startnpm run lintnpm cache clean --forceGet-ChildItem -Path . -Recurse -Directory -Filter "node_modules" | Remove-Item -Recurse -Force #windowsЕсли у вас есть предложения или вопросы, создавайте issue в репозитории! 🚀