Acktide

Архитектура

Уведомления без Google Services

Приложение держит соединение с вашим сервером напрямую. Не нужны ни Firebase, ни сторонний мессенджер, ни прокси, ни VPN до чужого облака.

Как приходит уведомление

Обычный путь push-уведомления на Android идёт через инфраструктуру Google: приложение регистрируется в FCM, сервер отдаёт сообщение Google, Google будит телефон. Это удобно ровно до того момента, когда на устройстве нет сервисов Google, когда доступ к ним закрыт или когда вы не хотите, чтобы содержимое и факт вашей аварии проходили через постороннюю инфраструктуру.

Acktide идёт другим путём. Android-приложение поднимает foreground service и держит WebSocket-соединение прямо с вашей установкой. Сервер, который принял алерт из Alertmanager, сам доставляет его на устройство. Между вами и телефоном нет посредника.

FCM остаётся доступным как дополнение: если у вас есть конфигурация Firebase и вы хотите её использовать, она включается настройкой. Продукт этого не требует.

Что это меняет на практике

Прошивки без GMS

Устройства без сервисов Google продолжают получать алерты. Проверено на AOSP-эмуляторе без Google Services, включая доставку при выключенном экране и восстановление накопленных событий после перезапуска.

Закрытый контур

Вся цепочка от правила Prometheus до уведомления на телефоне остаётся внутри вашего периметра. Наружу не уходят ни тексты алертов, ни токены устройств.

Меньше деталей, которые ломаются

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

Чего это не отменяет

Прямое соединение решает проблему зависимости, но не отменяет физику Android.

  • Телефону нужен доступ к вашему серверу. Если Acktide опубликован только внутри сети, снаружи потребуется VPN — это ваше решение, а не требование продукта.
  • Производители агрессивно ограничивают фоновые приложения. Автозапуск, косвенный запуск и работа в фоне разрешаются в настройках телефона; в приложении есть диагностика разрешений и соединения.
  • После принудительной остановки приложения его нужно открыть снова — это поведение системы, а не продукта.
  • Поведение конкретной прошивки под нагрузкой проверяется на конкретном телефоне. Тест на эмуляторе не доказывает, что произойдёт на вашем устройстве через шесть часов со включённым энергосбережением.