Skip to content

Обслуживание

Экран «Обслуживание» собирает эксплуатационные рычаги: режим техработ, бэкап по кнопке, хост-операции. Здесь же — про health-эндпоинты для внешнего мониторинга.

Режим техработ

Во время техработ бот отвечает заглушкой всем, кроме админов: на сообщения — текстом, на нажатия кнопок — алертом (алерт обрезается до 200 символов — лимит Telegram). Админы продолжают работать с ботом в полном объёме, кабинет тоже доступен.

ПараметрПо умолчаниюЧто это
MAINTENANCE_MODEвыклБот отвечает заглушкой всем, кроме админов
MAINTENANCE_MESSAGE«Ведутся технические работы, зайдите позже 🙏»Текст заглушки

Включается тремя путями:

  1. Вручную из кабинета — тумблер на этом экране.
  2. Вручную из бота — тумблер «Техработы» в админ-меню бота.
  3. Автоматически — watchdog панели: если панель Remnawave не отвечает 3 проверки подряд (проверка каждые 2 минуты), техрежим включается сам и в отчётный топик «alerts» уходит алерт. Когда панель оживает, watchdog снимает техрежим — но только тот, который включил сам: вручную включённый режим автоматика никогда не трогает. Управляется параметром AUTO_MAINTENANCE_ENABLED (включён по умолчанию). Подробности — в Watchdog панели.

Зачем авто-режим включён из коробки

Лежащая панель означает, что новые подписки не провижнятся. Авто-техрежим перестаёт продавать то, что нельзя выдать, и сам откатывается при восстановлении.

Бэкапы

Кнопка «Бэкап сейчас» ставит воркеру задачу: pg_dump базы → зашифрованный zip в каталоге ./backups. Тот же механизм работает по расписанию (BACKUP_ENABLED + время BACKUP_TIME по МСК, раз в день), хранятся последние BACKUP_KEEP_LAST архивов. Если в отчётной группе включён топик «backups», архив доставляется прямо туда.

Полное описание настройки и восстановления — Бэкапы.

Миграция с другого бота

Перенос базы из shopbot, Bedolaga, RemnaShop или 3x-ui вынесен на отдельный экран кабинета — см. Миграция.

Хост-операции

Кнопки «Обновление», «Рестарт панели», «Рестарт бота», «Перезагрузка сервера» записывают действие в журнал аудита и возвращают статус scheduled. Фактическое исполнение на хосте подключается на этапе деплоя (systemd / compose) — из процесса приложения такие операции не выполняются, поэтому ответ честный: «запланировано», а не «сделано».

Health-эндпоинты

Два публичных эндпоинта веб-приложения — для docker healthcheck и внешнего аптайм-мониторинга.

GET /health — быстрая проверка: база и Redis. HTTP 200, если оба живы, иначе 503:

json
{ "status": "ok", "database": true, "redis": true }

GET /health/deep — полная проверка всех движущихся частей:

json
{
  "status": "ok",
  "database": true,
  "redis": true,
  "worker": true,
  "panel": true
}
ПолеКак проверяетсяРоняет ли статус
databaseSELECT 1Да
redisPINGДа
workerHeartbeat в Redis: воркер штампует метку раз в минуту, свежесть — не старше 180 секундДа
panelЗапрос версии панели RemnawaveНет — информационно

HTTP 503 возвращается, когда лежит критичный компонент (база, Redis или воркер). Падение панели deep не роняет — это штатная ситуация, которую закрывает авто-техрежим. Молча упавший воркер иначе не видно снаружи (веб продолжает отвечать), а без него останавливаются бэкапы, автопродление и напоминания — поэтому на внешний мониторинг ставьте именно /health/deep.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов