https://github.com/mrzlkvvv/nscmbotold
Telegram-бот для NSCM с автоматическим обновлением результатов экзаменов
https://github.com/mrzlkvvv/nscmbotold
golang mongodb telegram
Last synced: about 1 year ago
JSON representation
Telegram-бот для NSCM с автоматическим обновлением результатов экзаменов
- Host: GitHub
- URL: https://github.com/mrzlkvvv/nscmbotold
- Owner: mrzlkvvv
- License: mit
- Archived: true
- Created: 2023-05-05T16:43:23.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-20T10:44:10.000Z (over 1 year ago)
- Last Synced: 2025-05-18T15:13:25.499Z (about 1 year ago)
- Topics: golang, mongodb, telegram
- Language: Go
- Homepage:
- Size: 408 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NSCMBot
Telegram-бот для NSCM с автоматическим обновлением результатов экзаменов.
Доступен для использования: [NSCMBot](https://t.me/NSCMBot)
---
# Развёртывание
Также вы можете развернуть своего бота, используя этот проект.
Системные требования:
- Процессор: только 64-битный
- Оперативная память: как минимум 4 ГБ
## 0. Загрузка проекта
- используя HTTPS:
```
git clone https://github.com/KirillMerz/NSCMBot.git && cd NSCMBot/
```
- используя SSH:
```
git clone git@github.com:KirillMerz/NSCMBot.git && cd NSCMBot/
```
В дальнейших пунктах работа ведётся из корня проекта
## 1. Конфигурирование
Для конфигурирования бота используется файл ```.env```.
Его пример уже присутствует в загруженном проекте, достаточно скопировать его под нужным именем:
```
cp .env.example .env
```
Далее вам необходимо указать следующие переменные:
- ```TELEGRAM_BOT_TOKEN``` - токен телеграм-бота. Можно получить у [BotFather](https://t.me/BotFather)
- ```MONGODB_URI``` - URI базы данных MongoDB. [Документация](https://mongodb.com/docs/manual/reference/connection-string/)
Следующие параметры необходимы лишь для работы Webhook'ов и являются необязательными. Если их не указать, бот будет использовать long polling
- ```WEBHOOK_URL``` - адрес, по которому будут отправляться запросы
- ```WEBHOOK_PORT``` - порт, который будет прослушивать бот
Если вы хотите, чтобы соединение между сервером Telegram и вашим ботом было безопасным, необходимо выпустить SSL-сертификат.
Сделать это можно с помощью сервиса [Let's Encrypt](https://letsencrypt.org/getting-started/). Выпущенный сертификат (а именно файлы ```fullchain.pem``` и ```privkey.pem```) необходимо разместить в каталоге ```./data/certs/```
## 2. Сборка и запуск
Для развёртывания существуют два пути:
[использовать контейнеризацию (2.1)](https://github.com/KirillMerz/NSCMBot#21-docker-compose)
или
[развернуть всё в системе напрямую (2.2)](https://github.com/KirillMerz/NSCMBot#22-локальная-сборка).
### 2.1 Docker Compose
Нужно установить [Docker Engine](https://docs.docker.com/engine/install/) и [Docker Compose](https://docs.docker.com/compose/install/).
При первом запуске все необходимые образы будут скачаны, выполнится сборка бота:
```
docker-compose up
```
### 2.2 Локальная сборка
Нужно установить [Go](https://go.dev/dl/) и [MongoDB](https://mongodb.com/docs/manual/installation/).
При первой сборке бота Go установит необходимые зависимости, а в каталоге ```./bin/``` появится исполняемый файл ```NSCMBot```:
```
go build -o ./bin/NSCMBot ./cmd/main.go
```
Запускаться бот должен из того же каталога, в котором находится файл ```.env```:
```
./bin/NSCMBot
```