ntfy — Легковесные Push-уведомления
ntfy — Легковесные Push-уведомления — простое для понимания руководство на основе официальной документации
Когда-нибудь мечтали, чтобы телефон завибрировал в тот самый момент, когда скрипт завершился — и без установки единого приложения? В этом и есть повседневная магия ntfy: он превращает любую тему в pub-sub канал, в который можно пинговать простым HTTP-запросом.
Для пользователей Hermes Agent ntfy — это самый простой способ носить своего ИИ-агента в кармане. Никакого SDK, демона или Node.js — просто имя темы и бесплатное мобильное приложение ntfy. Вот как это подключить.
Почему ntfy идеально подходит Hermes
Hermes — это лёгкая автоматизация. ntfy полностью соответствует этой философии:
- Ноль зависимостей — адаптер использует
httpx, который уже встроен в Hermes. - Работает с любым HTTP-клиентом — curl, Python, даже умные часы.
- Можно хостить у себя — запустите собственный сервер ntfy для приватных тем или используйте бесплатный публичный
ntfy.sh.
Вы подписываетесь на тему на телефоне, отправляете сообщение в эту тему из Hermes и получаете ответ в виде уведомления. Это push-уведомления без лишнего балласта.
Быстрый старт: мастер настройки
Самый быстрый путь — интерактивная настройка:
hermes gateway setup
Выберите ntfy в меню, введите имя темы (например, hermes-myname-2026) — и готово. Мастер запишет конфигурацию в ~/.hermes/.env.
Ручная настройка через переменные окружения
Предпочитаете редактировать файлы? Добавьте это в ~/.hermes/.env:
NTFY_TOPIC=hermes-myname-2026
NTFY_ALLOWED_USERS=hermes-myname-2026
NTFY_HOME_CHANNEL=hermes-myname-2026
Это минимум. Вот что означает каждая переменная:
| Переменная | Обязательная | Назначение |
|---|---|---|
NTFY_TOPIC |
Да | Тема для подписки (входящие сообщения) |
NTFY_SERVER_URL |
Нет | По умолчанию https://ntfy.sh; укажите свой сервер для приватности |
NTFY_TOKEN |
Нет | Bearer-токен (tk_xyz) или user:pass для аутентификации |
NTFY_PUBLISH_TOPIC |
Нет | Отдельная тема для ответов (по умолчанию — NTFY_TOPIC) |
NTFY_MARKDOWN |
Нет | Установите true, чтобы отправлять ответы с X-Markdown: true |
NTFY_ALLOWED_USERS |
Рекомендуется | Разделённые запятыми имена тем, которые считаются ID пользователей |
NTFY_ALLOW_ALL_USERS |
Нет | Разрешить всех издателей — безопасно только для приватных тем |
NTFY_HOME_CHANNEL |
Нет | Тема по умолчанию для cron / уведомлений |
NTFY_HOME_CHANNEL_NAME |
Нет | Человекочитаемая подпись для домашнего канала |
Модель идентификации: прочтите перед развёртыванием
Вот в чём загвоздка с ntfy: здесь нет настоящих учётных записей. Поле title в сообщении контролируется издателем — кто угодно может его подделать. Поэтому Hermes не использует title для авторизации.
Вместо этого само имя темы является идентификатором. Каждое сообщение в теме считается исходящим от одного и того же логического пользователя. NTFY_ALLOWED_USERS обычно — это просто само имя темы: список из одного элемента.
Последствия для безопасности: любой, кто знает вашу тему, может общаться с вашим агентом. Чтобы превратить это в настоящую границу доверия:
- Захостите ntfy у себя и ограничьте тему с помощью Access Control.
- Только авторизованные клиенты смогут публиковать или подписываться.
Практический совет для повседневного использования
Установите NTFY_MARKDOWN=true, если хотите, чтобы форматированные ответы (жирный текст, списки, блоки кода) красиво отображались в приложении ntfy. Так длинные ответы агента гораздо легче сканировать на экране телефона.
Заключение
ntfy даёт Hermes простейший push-канал: подпишитесь на телефоне, настройте три переменные окружения — и всё работает. Никакого облачного аккаунта, никаких дополнительных сервисов, никакой кривой обучения.
Финальный совет: начните с уникальной темы вроде hermes-<вашеимя>-<год> — на публичном сервере она практически гарантированно не пересечётся с другими. А когда доверитесь процессу, захостите ntfy у себя и добавьте контроль доступа для по-настоящему приватного канала. Теперь ваш агент — всего в одном уведомлении от вас.
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/messaging/ntfy