Серверная часть системы "Agura-Alarm"

Версия: 2.0.0
Стек: PHP 8.1+, JSON-хранилище с файловыми блокировками LOCK_EX, Apache/Nginx
Базовый URL (Production): https://rixmaer.ru/agura-alarm-project/api/v1


Назначение

Серверная часть обеспечивает:

  1. Синхронизацию оперативных сообщений между устройствами вне зоны действия Wi-Fi (/api/v1/messages).
  2. Мониторинг устройств и телеметрию (/api/v1/devices/heartbeat, /api/v1/devices).
  3. Автономное хранение подписок и параметров шлюзов групп (/api/v1/subscriptions, совместимо с /api/v1/packages).
  4. Централизованный реестр проверенных источников оперативной информации (/api/v1/sources).
  5. Административное управление источниками через мастер-ключ (/api/v1/admin/sources).
  6. Ленивое обслуживание (lazy cron, БЕЗ системного cron): сбор внешних источников (vkCheckAndPollGroupSources() в index.php, срабатывает на GET /messages и других запросах при истёкшем polling_interval_sec) и очистка устаревших данных (src/cleanup.php) выполняются только при входящих HTTP-запросах клиентов. Системный cron НЕ используется.
  7. Кольцевой диагностический аудит группы: лог событий до 10 КБ (/api/v1/log).

Структура папок

  • config/ — конфигурация сервера (server_config.json, закрыт от прямого веб-доступа через .htaccess).
  • data/groups/{group_code}/ — автономные данные группы: messages.json, devices.json, subscriptions.json, log.json, meta.json, .secret_hash, .admin_secret_hash.
  • data/sources/ — source_registry.json (централизованный реестр внешних каналов-источников VK / RSS).
  • data/.last_cleanup — маркер времени последнего прогона ленивой очистки.
  • data/removed_groups.log — журнал автоудаления устаревших каталогов групп (см. src/cleanup.php, ключ retention.groups_ttl_days, по умолчанию 30 дней без активности по времени последнего изменения файлов каталога).
  • src/cleanup.php — модуль очистки устаревших сообщений, неактивных устройств, ротации логов и удаления устаревших групп.
  • src/group_logger.php — модуль ротируемого логирования группы.
  • src/vk_gateway.php — HTTP-шлюз опроса сообществ ВКонтакте.
  • src/source_gateway.php — модуль файлового обмена с Python-шлюзом MAX: ленивый опрос каналов (sourceGatewayCheckAndPollSources(), вызывается из vkCheckAndPollGroupSources()), сырые записи в формате общего пула; контракт файлов — gateway/README.md.
  • index.php — основной маршрутизатор и обработчик REST API (включая ленивый опрос источников vkCheckAndPollGroupSources()).
  • public/index.php — точка входа (прокси).
  • cron_cleanup.php — НЕ используется (очистка выполняется лениво; системный cron запрещён).

Развертывание и документация