Go to file
2025-03-25 17:33:36 +03:00
.gitea/workflows refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
.idea Added charge feature 2025-03-25 17:33:36 +03:00
locales Added charge feature 2025-03-25 17:33:36 +03:00
src Added charge feature 2025-03-25 17:33:36 +03:00
.dockerignore refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
.env.example Refactoring and jsdoc 2025-03-05 14:32:35 +03:00
.gitignore refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
docker-compose.yml refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
Dockerfile refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
eslint.config.js refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
package.json refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
README.md Added batteries notifications 2025-03-11 17:38:11 +03:00
tsconfig.json refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00
yarn.lock refactor: optimize feature initialization and improve code readability 2025-03-04 18:13:58 +03:00

Telegram бот для мониторинга морозильных камер

Node.js TypeScript Docker InfluxDB Gitea GitHub

Описание

Бот для Telegram, предназначенный для мониторинга температуры в морозильных камерах с использованием сенсоров. Поддерживает уведомления, графики и управление через административный интерфейс.

Требования

  • Node.js 18 или выше
  • Yarn
  • InfluxDB

Установка и запуск

Локальная разработка

  1. Клонируйте репозиторий
  2. Установите зависимости:
yarn install
  1. Скопируйте файл .env.example в .env и настройте переменные окружения:
cp .env.example .env
  1. Запустите проект:
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

Использование готового образа

  1. Создайте файл .env с необходимыми переменными окружения
  2. Запустите контейнер:
docker-compose up -d

Сборка собственного образа

  1. Соберите образ:
docker build -t freezers-tg-bot .
  1. Запустите контейнер:
docker run -d --env-file .env freezers-tg-bot

Переменные окружения

  • BOT_TOKEN - Токен Telegram бота
  • BOT_ADMINS - JSON массив ID администраторов
  • INFLUX_TOKEN - Токен доступа к InfluxDB
  • INFLUX_ORG - Организация в InfluxDB
  • INFLUX_BUCKET - Bucket в InfluxDB
  • INFLUX_URL - URL сервера InfluxDB
  • EXPRESS_ENABLE - Включить Express сервер (true/false)
  • EXPRESS_PORT - Порт для Express сервера
  • LOG_LEVEL - Уровень логирования
  • IS_DEBUG - Режим отладки (true/false)

Автор

GitHub Telegram

Разработчик: lanakod (Максим Малахов)