Napominator Home: Полное руководство по установке, настройке и использованию

от автора

Данное изображение продукт генерации ИИ и моих скринов.

Данное изображение продукт генерации ИИ и моих скринов.

В прошлой статье я поспешил с публикацией и лишь в общих чертах объяснил, что такое Napominator Home. Сегодня, как и обещал, публикую подробное руководство, которое охватывает все этапы: от установки до ежедневного использования.

В этой статье вы узнаете, как установить систему, настроить её компоненты и пользоваться всеми функциями.


Общая архитектура и компоненты

Прежде чем переходить к установке, давайте разберемся, из чего состоит Napominator Home и за что отвечает каждый компонент.

Веб-панель

Хранит и управляет напоминаниями. Позволяет:

  • Создавать, редактировать и удалять напоминания;

  • Регистрировать пользователей в системе;

  • Добавлять устройства для пользователей;

  • Просматривать отчеты о задачах;

  • Отслеживать геопозицию устройств;

  • Просматривать логи использования приложений.

Telegram-бот

  • Мониторит список напоминаний и в указанное время отправляет уведомления пользователям с содержимым напоминания;

  • Используется для пересылки отчетов из мобильного приложения.

Мобильное приложение (Android)

Клиентская часть, которая устанавливается на устройство и выполняет следующие функции:

  • Собирает историю использования приложений;

  • Отслеживает геолокацию и отправляет данные о местоположении в веб-панель;

  • Получает задачи с сервера, отображает их и срабатывает уведомлением в назначенное время;

  • Позволяет отправить отчет по задаче.


Принцип работы компонентов

Веб-панель

Система состоит из трёх каталогов:

/var/www/html/napominator — содержит файлы панели управления. По умолчанию использует порт 2528.

Важно: не рекомендуется пробрасывать этот порт наружу за NAT. Хотя панель оснащена проверкой сессий, оставьте её за файрволом.

/var/www/html/napominator_api — содержит файл api.php, который используется для обмена данными между мобильным приложением и веб-частью. Проверка осуществляется по API-ключу. Порт по умолчанию — 2529.

Этот порт можно опубликовать наружу, чтобы мобильное приложение имело связь не только в локальной сети.

/var/www/napominator_be — содержит файлы бэкенда, которые не должны быть доступны через веб-сервер. Здесь хранятся база данных и файлы Telegram-бота.

Telegram-бот

При установке создается системный сервис /var/www/napominator_be/napominator-bot.service, который автоматически добавляется в автозагрузку.

Команды для управления ботом:

Команда

Действие

sudo service napominator-bot stop

Остановка бота

sudo service napominator-bot start

Запуск бота

sudo service napominator-bot restart

Перезапуск бота

sudo systemctl enable napominator-bot

Включение автозапуска

sudo systemctl disable napominator-bot

Отключение автозапуска

Как работает бот:

  • Обращается к базе данных, получает свой API-ключ и часовой пояс;

  • Получает всех пользователей, у которых указан Telegram ID;

  • Загружает их напоминания и мониторит время отправки;

  • В указанное время отправляет уведомления получателям;

  • Также мониторит журнал отчетов и пересылает их содержимое по Telegram ID для задач в которых указана пересылка отчета.

Как узнать свой Telegram ID:

Напишите боту сообщение /start. Он ответит, что пользователь не авторизован, и покажет ваш Telegram ID.

Мобильное приложение (Android)

  • Получает задачи с сервера для указанного пользователя;

  • Хранит задачи в кеше, что позволяет обрабатывать напоминания даже при обрыве интернета;

  • В указанное время запускает настойчивое уведомление;

  • Поддерживает отправку файлов и текстовых сообщений в отчетах (файлы можно загрузить с камеры, из галереи или записать голосовое сообщение);

  • Поддерживает несколько файлов в одном отчете;

Обрабатывает системные задачи:

  • Отправка журналов использования — работает по расписанию или в форсированном режиме. После отправки журнал очищается;

  • Отправка геопозиции — при получении задачи запускает сбор данных о местоположении и отправляет их на сервер. Активна, пока активна задача.

Важные особенности:

  • Для экономии батареи приложение не опрашивает сервер слишком часто. В настройках можно задать интервал синхронизации (по умолчанию — 1 минута);

  • Если запущен мониторинг геопозиции, задача на него будет получена не раньше, чем через минуту после ее постановки;

  • В режиме простоя Android может увеличивать интервал синхронизации. Чтобы «разбудить» устройство, достаточно позвонить на него;

  • Приложение работает в офлайн-режиме: если отчет не удалось отправить, он становится в очередь и будет отправлен при следующей успешной синхронизации;

  • Настройки приложения защищены паролем;

  • Приложение автоматически запускается при включении телефона и работает в фоне как сервис.


Установка системы

Установка производится на Linux-сервер. Я использовал:

  • ОС: Debian 13 (подойдет и Debian 12);

  • PHP: 8.4;

  • Веб-сервер: Apache2.

Примечание: на других дистрибутивах Linux работоспособность не гарантируется, но вы можете попробовать.

Если у вас уже установлен LAMP-сервер, вы можете закомментировать строки установки пакетов в скрипте, но предварительно проверьте, что все необходимые пакеты установлены.

Пошаговая установка

  1. Повысьте привилегии до root:

    su -

    Введите пароль суперпользователя.

  2. Установите wget (если не установлен):

    apt install -y wget

  3. Скачайте скрипт установки:

    wget --no-check-certificate -O napominator-install.sh "https://download.trapex.ru/downloads/napominator/napominator-install.sh"

  4. Сделайте скрипт исполняемым:

    chmod +x napominator-install.sh

  5. Запустите установку:

    bash napominator-install.sh

Ввод данных во время установки

Шаг 1. Доменное имя

В начале установки будет запрос на ввод доменного имени вашего сайта.

Если у вас есть домен, привязанный к IP-адресу сервера, введите его (например, napominator-test.ru).

Если домена нет, оставьте поле пустым — будет использован IP-адрес хоста.

Шаг 2. Порты

Скрипт запросит порты для фронтенда и API. Если стандартные порты (2528 и 2529) вас устраивают, просто нажмите Enter.

Окончание установки

По завершении вы увидите отчет с данными для входа:

Сайты доступны по адресам:

Основной: http://napominator-test.ru:2528

API: http://napominator-test.ru:2529

Login: admin

Password: 1234

Важно: пароль 1234 не является криптостойким. Обязательно смените его после первого входа!

Рекомендации по безопасности

Порт 2528 (веб-панель) не рекомендуется пробрасывать наружу. Пусть работает внутри сети за файрволом.

Порт 2529 (API) можно пробросить, если требуется геолокация и работа за пределами локальной сети.

Обратите внимание: при установке рекомендуется использовать доменное имя. Если вы выберете IP-адрес хоста, то в приложении придется вручную вводить внешний IP, так как локальный адрес (например, 192.168.0.10) будет недоступен извне.

Если при установке вы использовали IP-адрес хоста, а не домен, то в параметрах API будет записан локальный адрес (например, http://192.168.0.10:2529/api.php). При сканировании QR-кода приложение получит этот адрес. Его нужно будет исправить вручную, указав внешний IP или домен.

По умолчанию сайт работает по HTTP (порт 80). Рекомендуется перенастроить конфигурацию на HTTPS (порт 443) с использованием SSL-сертификата.


Настройка системы

Проверка API

Откройте в браузере ссылку: http://ваш_домен:2529/api.php

Вы должны получить ответ:

{“success”:false,“error”:“API Key required in X-API-Key header”}

Это означает, что API работает. Так же в этот момент API запишет свой URL в базу.

Вход в веб-панель

Перейдите по адресу: http://ваш_домен:2528

Выберите пользователя Administrator и введите пароль 1234.

Настройка Napominator

Зайдите в раздел Настройки.

В секции API Key нажмите кнопку Generate — будет сгенерирован API-ключ.

Выберите ваш часовой пояс.

Если вы используете внешний IP вместо домена, укажите его в поле API URL (например, http://ваш_внешний_IP:2529/api.php).

Нажмите Save Napominator Settings.

В секции API URL нажмите кнопку Тест, чтобы проверить доступность API.

Настройка Telegram-бота

Если у вас ещё нет бота, создайте его через @BotFather в Telegram и получите API-токен.

Вставьте токен в поле Bot Token.

Нажмите Save Telegram Settings.

Перезапустите бота командой в консоли:

sudo service napominator-bot restart

Обновите страницу. В секции Bot Name должно отобразиться имя вашего бота.

Привязка Telegram ID к пользователю

Напишите вашему боту сообщение /start. Он ответит, что вы не авторизованы, и покажет ваш Telegram ID.

Скопируйте этот ID.

В панели перейдите в раздел Пользователи.

Нажмите Редактировать для пользователя Администратор.

Вставьте Telegram ID в соответствующее поле.

Обязательно смените пароль — нажмите кнопку смены пароля и задайте новый.

Создание нового пользователя

Нажмите кнопку Добавить в правом верхнем углу.

Заполните необходимые данные и нажмите Create User.

После создания откроется окно для добавления устройств для этого пользователя.

Установка и настройка мобильного приложения

Скачивание приложения

На устройстве откройте браузер и перейдите по адресу веб-панели (http://ваш_домен:2528).

Нажмите на ссылку APP — начнется скачивание APK-файла.

Приложение хранится на вашем сервере.

Установите приложение. Если появится предупреждение о запрете установки из неизвестных источников, разрешите установку (инструкция: Kaspersky).

Выдача разрешений

После установки перед запуском приложения необходимо выдать все необходимые разрешения:

Перейдите в Настройки → Приложения (или Apps).

Найдите приложение Напоминатор.

Провалитесь в него и включите все разрешения.

Вернитесь в настройки и найдите раздел Батарея → Запуск приложений.

Найдите Напоминатор и снимите флажок, чтобы отключить экономию батареи. В открывшемся окне разрешите использование батареи в любых режимах.

Включите геолокацию на устройстве.

В зависимости от версии Android и производителя, названия пунктов меню могут отличаться, но принцип одинаков: дать все разрешения и отключить энергосбережение.

Настройка приложения

Запустите приложение. Оно попросит установить пароль для доступа к настройкам — задайте его.

Вас встретит экран настроек. Основные пункты:

  • Сканировать QR-Код — используется для добавления устройства. Сканирует QR-код, сгенерированный в веб-панели, и автоматически заполняет API URL, API ключ и ID пользователя.

  • Перерегистрировать устройство — если устройство было удалено или данные введены вручную.

  • API настройки — ручной ввод API URL и ключа (если не используется QR).

  • Пользователь — ID пользователя в системе (не Telegram ID! Исправлю в будущем).

  • Синхронизация — частота опроса сервера (по умолчанию 1 минута).

  • Отслеживание геолокации — включение/отключение отправки геоданных.

  • Управление сервисом — запуск/остановка фонового сервиса.

Добавление устройства

В веб-панели перейдите в Пользователи, выберите нужного пользователя и нажмите кнопку Устройства.

Нажмите Добавить устройство и сгенерируйте QR-код.

В мобильном приложении нажмите Сканировать QR-Код и наведите камеру на код.

После успешного сканирования все поля (API URL, API ключ, ID пользователя) заполнятся автоматически.

Нажмите Сохранить в каждом из полей.

Выйдите из настроек и нажмите на кнопку синхронизации (стрелочка в правом верхнем углу) в приложении.


Работа с задачами и функциями

Создание напоминаний

Перейдите в раздел Задачи и создайте новую задачу с нужным расписанием.

В поле Подписчики выберите пользователей, которым нужно отправить напоминание (можно выбрать нескольких, зажав Ctrl).

В поле Пересылать отчет укажите, кому отправлять отчеты.

История использования приложений

Перейдите в раздел История использования.

Выберите пользователя и устройство.

Нажмите Задать расписание и укажите время отправки отчета.

Можно создать несколько заданий для одного устройства.

Нажмите синхронизацию на устройстве.

Отслеживание геопозиции

Перейдите в раздел Геопозиция.

Выберите пользователя и устройство.

Нажмите Отследить.

Выполните синхронизацию на устройстве для быстрой проверки.

Если устройство отобразилось на карте, остановите отслеживание и синхронизируйте приложение повторно (чтобы отключить мониторинг).

Просмотр отчетов

Перейдите в раздел Отчеты.

Выберите пользователя или установите фильтры.

Нажмите кнопку просмотра справа от отчета.

Рабочая цепочка (как всё работает вместе)

Вы устанавливаете приложение на телефон.

Приложение получает напоминания с сервера.

В указанное время приложение показывает уведомление.

При отправке отчета (текст, фото, голос) данные уходят в Telegram и на сервер.

Вы получаете уведомления в Telegram и можете просматривать отчеты в веб-панели.


Что в планах?

Возможность получения уведомлений напрямую отправленных из интерфейса;

Возможность прикреплять файлы к напоминаниям.

Упростить установку приложения.


P.S

Ссылки:

WEB-Сайт проекта: https://trapex.ru/napominator-home/

Email для связи: sa@itp-corp.ru

Прошлая статья: https://habr.com/ru/articles/1060488/

ссылка на оригинал статьи https://habr.com/ru/articles/1061398/