From aff655e73a9ccbd5e9aeaff9048adcd9fd40d321 Mon Sep 17 00:00:00 2001 From: Gros Frumos Date: Fri, 20 Mar 2026 21:11:04 +0200 Subject: [PATCH] =?UTF-8?q?kin:=20BATON-ARCH-003=20Rate=20limiting=20/api/?= =?UTF-8?q?register=20+=20timing-safe=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 05f5f12..b2f95ce 100644 --- a/README.md +++ b/README.md @@ -116,13 +116,44 @@ OnUnitActiveSec=10min WantedBy=timers.target ``` -Активация: +Готовые файлы находятся в `deploy/`: + ```bash -systemctl daemon-reload -systemctl enable --now baton-keepalive.timer +# 1. Скопировать файлы +sudo cp deploy/baton-keepalive.service /etc/systemd/system/ +sudo cp deploy/baton-keepalive.timer /etc/systemd/system/ + +# 2. Заменить URL на реальный +sudo sed -i 's|https://your-app.example.com|https://YOUR_APP_URL|g' \ + /etc/systemd/system/baton-keepalive.service + +# 3. Включить и запустить +sudo systemctl daemon-reload +sudo systemctl enable --now baton-keepalive.timer + +# 4. Проверить systemctl list-timers baton-keepalive.timer ``` +### Keep-alive через UptimeRobot (внешний сервис, рекомендуется) + +[UptimeRobot](https://uptimerobot.com) — бесплатный сервис мониторинга, который пингует ваш `/health` снаружи каждые 5 минут. В отличие от self-ping, он работает даже если платформа убила процесс. + +**Настройка (бесплатно, без регистрации кредитной карты):** + +1. Зарегистрируйтесь на [uptimerobot.com](https://uptimerobot.com) +2. **Add New Monitor** → тип **HTTP(s)** +3. Заполните: + - **Friendly Name:** `Baton Health` + - **URL:** `https://your-app.example.com/health` + - **Monitoring Interval:** `5 minutes` +4. Сохраните. UptimeRobot начнёт пинговать каждые 5 минут и пришлёт email при падении. + +**Плюсы:** работает независимо от хостинга, бесплатно до 50 мониторов, email/Telegram-уведомления. +**Минусы:** требует публичный URL (для локальной разработки не подходит). + +> **Рекомендация:** для прода используйте UptimeRobot как внешний watchdog + self-ping (APP_URL) как запасной вариант. + ## Nginx deployment Для проксирования через nginx используйте готовый шаблон `nginx/baton.conf`.