Обслуживание
Экран «Обслуживание» собирает эксплуатационные рычаги: режим техработ, бэкап по кнопке, хост-операции. Здесь же — про health-эндпоинты для внешнего мониторинга.
Режим техработ
Во время техработ бот отвечает заглушкой всем, кроме админов: на сообщения — текстом, на нажатия кнопок — алертом (алерт обрезается до 200 символов — лимит Telegram). Админы продолжают работать с ботом в полном объёме, кабинет тоже доступен.
| Параметр | По умолчанию | Что это |
|---|---|---|
MAINTENANCE_MODE | выкл | Бот отвечает заглушкой всем, кроме админов |
MAINTENANCE_MESSAGE | «Ведутся технические работы, зайдите позже 🙏» | Текст заглушки |
Включается тремя путями:
- Вручную из кабинета — тумблер на этом экране.
- Вручную из бота — тумблер «Техработы» в админ-меню бота.
- Автоматически — 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:
{ "status": "ok", "database": true, "redis": true }GET /health/deep — полная проверка всех движущихся частей:
{
"status": "ok",
"database": true,
"redis": true,
"worker": true,
"panel": true
}| Поле | Как проверяется | Роняет ли статус |
|---|---|---|
database | SELECT 1 | Да |
redis | PING | Да |
worker | Heartbeat в Redis: воркер штампует метку раз в минуту, свежесть — не старше 180 секунд | Да |
panel | Запрос версии панели Remnawave | Нет — информационно |
HTTP 503 возвращается, когда лежит критичный компонент (база, Redis или воркер). Падение панели deep не роняет — это штатная ситуация, которую закрывает авто-техрежим. Молча упавший воркер иначе не видно снаружи (веб продолжает отвечать), а без него останавливаются бэкапы, автопродление и напоминания — поэтому на внешний мониторинг ставьте именно /health/deep.
