isidea/health-notifier

A Laravel package for sending health status notifications to various channels like Telegram and email.

v1.1.0 2024-12-01 11:38 UTC

This package is auto-updated.

Last update: 2025-08-29 02:52:59 UTC


README

Health Notifier — это пакет для Laravel, который позволяет отправлять уведомления о состоянии работоспособности вашего приложения. Пакет поддерживает уведомления через несколько каналов, таких как email и Telegram.

Возможности

  • Email уведомления: Отправка уведомлений о состоянии приложения на несколько email-адресов.
  • Telegram уведомления: Отправка уведомлений в указанный Telegram-чат.

Установка

Чтобы установить Health Notifier в ваше приложение на Laravel, используйте composer:

composer require isidea/health-notifier

После установки пакета, опубликуйте конфигурацию с помощью команды:

php artisan vendor:publish --provider="Isidea\HealthNotifier\Providers\HealthNotifierServiceProvider" --tag="config"

Перейдите в файл конфигурации config/health-notifier.php и настройте необходимые параметры.

Регистрация команды отправки уведомлений

Уведомления отправляются при помощи команды SendAppHealthNofication. Зарегистрируйте ее в качестве регулярной задачи любым удобным способом.

Laravel Scheduler

Добавьте команду в ваш app/Console/Kernel.php:

protected function schedule(Schedule $schedule)
{
    $schedule->command('health-notifier:notify')->everyMinute();
}

Убедитесь, что cron работает на вашем сервере. Пример cron задания:

0 0 * * * /path-to-php/php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

Cron напрямую

0 0 * * * /path-to-php/php /path-to-your-project/artisan health-notifier:notify --no-interaction >> /dev/null 2>&1

Настройки Email уведомлений

    'email' => [

        // Включить или выключить email уведомления
        'enabled' => (bool) env('HEALTH_NOTIFIER_EMAIL_ENABLED', true),

        // адрес отправителя
        'from' => env('HEALTH_NOTIFIER_EMAIL_FROM', 'admin@example.ru'),

        // тема письма
        'subject' => env('APP_NAME') . ' App Health Notification',

        // Список email получателей
        'recipients' => env('HEALTH_NOTIFIER_EMAIL_RECIPIENTS', ['admin@example.ru']),

        // Путь к blade-markdown шаблону для email
        'markdown' => env('HEALTH_NOTIFIER_EMAIL_TEMPLATE', 'health-notifier::mail.notification'),

        // mailer из конфига laravel
        'mailer' => env('HEALTH_NOTIFIER_EMAIL_MAILER', 'smtp'),
    ],

Можно изменить/дополнить/расширить шаблон письма, который используется по-умолчанию:

php artisan vendor:publish --provider="Isidea\HealthNotifier\Providers\HealthNotifierServiceProvider" --tag="views"

Настройки Telegram уведомлений

Создайте телеграм бота

Воспользуйтесь стандартным функционалом телеграм чтобы зарегистрировать бота через @BotFather. Полученный токен укажите в конфиге в telegram.bot_token.

Получение ChatID

Установите текущее приложение в качестве обработчика вебхуков от созданного телеграм бота:

php artisan health-notifier:telegram-bot-set-weebhook

Начните диалог с ботом или пригласите его в требуемый чат. Воспользуйтесь командой /start - бот вернет ID чата. Установите полученный ID в конфиге telegram.chat_id.

Дополнительная конфигурация

    'telegram' => [

        // Включить или выключить Telegram уведомления
        'enabled' => (bool) env('HEALTH_NOTIFIER_TELEGRAM_ENABLED', false),

        // Chat ID для отправки уведомлений
        'chat_id' => env('HEALTH_NOTIFIER_TELEGRAM_CHAT_ID', 'your-telegram-chat-id'),

        // Токен Telegram-бота
        'bot_token' => env('HEALTH_NOTIFIER_TELEGRAM_BOT_TOKEN', 'your-bot-token'),

        // Путь к blade шаблону для сообщения
        'template' => env('HEALTH_NOTIFIER_TELEGRAM_TEMPLATE', 'health_notifier::telegram.notification'),
    ]

Можно изменить/дополнить/расширить шаблон сообщения, который используется по-умолчанию:

php artisan vendor:publish --provider="Isidea\HealthNotifier\Providers\HealthNotifierServiceProvider" --tag="views"