mikrotik-bot/instructions/mt_fetch_script.md

40 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Настройка fetch-скрипта на MikroTik для уведомлений в Telegram-бот (локальная сеть)
**Внимание!** Все примеры рассчитаны на работу внутри одной локальной сети. Внешний доступ, HTTPS и туннели не требуются.
## 1. Создание скрипта на MikroTik
1. Откройте WinBox/WebFig или подключитесь по SSH к вашему MikroTik.
2. Перейдите в меню System → Scripts (или /system script в CLI).
3. Создайте новый скрипт, например:
- Name: notify-telegram
- Source:
```
/tool fetch url="http://10.10.10.2:8000/event?type=wifi_connect&mac=$mac&ip=$ip" http-method=get
```
- Замените 10.10.10.2 на внутренний адрес сервера с ботом.
## 2. Привязка скрипта к событию
### DHCP lease (новое подключение по DHCP)
- В разделе IP → DHCP Server → Leases найдите поле "Lease Script" и добавьте:
```
:if ($leaseBound = true) do={/system script run notify-telegram}
```
- Это вызовет скрипт при каждом новом lease (подключении устройства).
### Wi-Fi connect (CAPsMAN)
- Для CAPsMAN можно использовать Scheduler или Event Handler, если требуется.
## 3. Проверка работы
- Подключите новое устройство к Wi-Fi.
- Проверьте логи MikroTik: появилось ли выполнение скрипта и fetch-запрос.
- Проверьте, что бот получил уведомление (или что сервер принял запрос — можно смотреть логи Flask/FastAPI).
## 4. Безопасность
- Если сеть полностью изолирована — дополнительных мер не требуется.
- Для production можно добавить секрет в URL (например, ?secret=...)
---
## Пример для нескольких событий
- Можно добавить параметры (например, тип события, имя устройства, VLAN и т.д.)
- Скрипт можно вызывать и вручную для теста: `/system script run notify-telegram`