.gitea/workflows | ||
.idea | ||
locales | ||
src | ||
.dockerignore | ||
.env.example | ||
.gitignore | ||
docker-compose.yml | ||
Dockerfile | ||
eslint.config.js | ||
package.json | ||
README.md | ||
tsconfig.json | ||
yarn.lock |
Telegram бот для мониторинга морозильных камер
Описание
Бот для Telegram, предназначенный для мониторинга температуры в морозильных камерах с использованием сенсоров. Поддерживает уведомления, графики и управление через административный интерфейс.
Требования
- Node.js 18 или выше
- Yarn
- InfluxDB
Установка и запуск
Локальная разработка
- Клонируйте репозиторий
- Установите зависимости:
yarn install
- Скопируйте файл .env.example в .env и настройте переменные окружения:
cp .env.example .env
- Запустите проект:
yarn start
Сборка проекта
Для сборки проекта выполните:
yarn build
Docker развертывание
Docker volumes
При запуске в Docker, в директории /app
создаются следующие папки:
/app/data
- содержит файлы данных:sensors.sqlite
- база данных SQLite с информацией о сенсорахrefs.csv
- файл с референсными значениями для сенсоров (при отключенном использовании внешних референсных значений)static/
- директория со статическими файлами, включая refs.csv при отключенном использовании внешних референсных значений- Логи работы приложения
/app/sessions
- хранит сессии пользователей
Рекомендуется подключить эти директории как volumes для сохранения данных между перезапусками контейнера.
docker run -d \
--env-file .env \
-v ./data:/app/data \
-v ./sessions:/app/sessions \
freezers-tg-bot
Использование готового образа
- Создайте файл .env с необходимыми переменными окружения
- Запустите контейнер:
docker-compose up -d
Сборка собственного образа
- Соберите образ:
docker build -t freezers-tg-bot .
- Запустите контейнер:
docker run -d --env-file .env freezers-tg-bot
Переменные окружения
BOT_TOKEN
- Токен Telegram ботаBOT_ADMINS
- JSON массив ID администраторовINFLUX_TOKEN
- Токен доступа к InfluxDBINFLUX_ORG
- Организация в InfluxDBINFLUX_BUCKET
- Bucket в InfluxDBINFLUX_URL
- URL сервера InfluxDBEXPRESS_ENABLE
- Включить Express сервер (true/false)EXPRESS_PORT
- Порт для Express сервераLOG_LEVEL
- Уровень логированияIS_DEBUG
- Режим отладки (true/false)
Автор
Разработчик: lanakod (Максим Малахов)