Серверная часть системы "Agura-Alarm"
Версия: 2.0.0
Стек: PHP 8.1+, JSON-хранилище с файловыми блокировками LOCK_EX, Apache/Nginx
Базовый URL (Production): https://rixmaer.ru/agura-alarm-project/api/v1
Назначение
Серверная часть обеспечивает:
-
Синхронизацию оперативных сообщений между устройствами вне зоны действия Wi-Fi (
/api/v1/messages). -
Мониторинг устройств и телеметрию (
/api/v1/devices/heartbeat,/api/v1/devices). -
Автономное хранение подписок и параметров шлюзов групп (
/api/v1/subscriptions, совместимо с/api/v1/packages). -
Централизованный реестр проверенных источников оперативной информации (
/api/v1/sources). -
Административное управление источниками через мастер-ключ (
/api/v1/admin/sources). -
Ленивое обслуживание (lazy cron, БЕЗ системного cron): сбор внешних источников (
vkCheckAndPollGroupSources()вindex.php, срабатывает наGET /messagesи других запросах при истёкшемpolling_interval_sec) и очистка устаревших данных (src/cleanup.php) выполняются только при входящих HTTP-запросах клиентов. Системный cron НЕ используется. -
Кольцевой диагностический аудит группы: лог событий до 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 запрещён).
Развертывание и документация
-
Спецификация REST API:
doc/api/REST_API_SPEC.md -
Параметры хостинга Timeweb:
doc/deployment/HOSTING_TIMEWEB.md -
Инструкция по развертыванию:
doc/deployment/SERVER_DEPLOYMENT.md -
Общая архитектура комплекса:
doc/ARCHITECTURE.md