В прошлой статье я поспешил с публикацией и лишь в общих чертах объяснил, что такое 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-сервер, вы можете закомментировать строки установки пакетов в скрипте, но предварительно проверьте, что все необходимые пакеты установлены.
Пошаговая установка
-
Повысьте привилегии до root:
su -Введите пароль суперпользователя.
-
Установите wget (если не установлен):
apt install -y wget -
Скачайте скрипт установки:
wget --no-check-certificate -O napominator-install.sh "https://download.trapex.ru/downloads/napominator/napominator-install.sh" -
Сделайте скрипт исполняемым:
chmod +x napominator-install.sh -
Запустите установку:
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/