Релиз Uptime Kuma 2.0 с MariaDB и современным интерфейсом

После нескольких месяцев разработки популярный инструмент мониторинга работы сервисов Uptime Kuma с открытым исходным кодом, любимый бесчисленными энтузиастами самостоятельного хостинга (более 76 тысяч звезд на GitHub), официально достиг версии 2.0, ознаменовав собой одно из самых больших обновлений проекта.

Главное изменение – поддержка Mariadb, что дает пользователям большую гибкость в хранении данных. До сих пор Uptime Kuma по умолчанию полагался на SQLite. С появлением MariaDB крупные развертывания наконец-то смогут легче масштабироваться, особенно для систем с сотнями хостов.

Еще одним важным событием в этом выпуске стала поддержка Docker без повышенных прав системы. Это позволяет контейнерам Uptime Kuma запускаться без прав root, что снижает риски безопасности в производственных средах. Нет нужды говорить, что для тех, кто использует приложение в Docker или Kubernetes, это очень приятное дополнение.

Уведомления тоже не остались без внимания. В новой версии появилась интеграция с Nextcloud Talk, Brevo и другими новыми поставщиками уведомлений. В сочетании с существующими вариантами, такими как Telegram, Discord и Slack, у пользователей теперь есть еще больше способов получать оповещения о проблемах с доступностью.

Кроме того, заметное внимание уделяется производительности и надежности. Была улучшена работа с прокси-серверами, доработано поведение кэширования, а также исправлено несколько ошибок, которые ранее приводили к непоследовательным проверкам времени работы. Веб-интерфейс тоже стал работать быстрее – особенно при загрузке больших списков.

Что касается безопасности, то в версии 2.0 исправлена уязвимость vm2, обновлены зависимости и добавлены общие меры по укреплению всего стека. Кроме того, новые шаблоны уведомлений помогают пользователям стандартизировать свои сообщения с пользовательским форматированием.

Обновление с Uptime Kuma 1.x в большинстве случаев не вызывает затруднений, но есть несколько моментов, на которые следует обратить внимание. Перед обновлением пользователям следует создать резервную копию Базы данных и конфигурационных файлов, особенно если они переходят с SQLite на MariaDB. Вот основные изменения, на которые следует обратить внимание:

  • Конечные точки бейджа для uptime и ping теперь принимают только значения длительности 24, 24h, 30d или 1y.
  • Поддержка устаревших браузеров была удалена.
  • Старая функция резервного копирования/восстановления из JSON исчезла. Единственным поддерживаемым методом резервного копирования теперь является Резервное копирование непосредственно в каталог data.
  • Устаревший DNS-кэш для HTTP-мониторов был удален. Пользователи Docker должны полагаться на встроенную службу nscd.
  • Повторные попытки по умолчанию для вновь созданных мониторов были изменены с 1 на 0, чтобы избежать путаницы.
  • Уведомления по электронной почте (SMTP) теперь используют шаблоны LiquidJS вместо пользовательского парсера regex. Переменные чувствительны к регистру, а неподдерживаемые игнорируются. В настоящее время поддерживаются следующие переменные: name, msg, status, heartbeatJSON, monitorJSON и hostnameOrUrl.

Разработчик рекомендует запустить скрипт миграции, поставляемый вместе с релизом, чтобы обеспечить совместимость с новой структурой базы данных. Пользователи Docker могут просто взять последний образ, в то время как установки в ручную могут обновиться через git, а затем выполнить npm run setup для восстановления зависимостей. В любом случае, прежде чем приступать к обновлению, обязательно ознакомьтесь с официальным руководством по миграции.

Сразу предупреждаем – миграция займет несколько минут, в зависимости от количества настроенных мониторингов.

Наконец, что не менее важно, был улучшен общий пользовательский опыт. В пользовательский интерфейс были внесены полезные изменения, интернационализация была расширена на большее количество языков, а несколько скриптов миграции упростили переход с версии 1.x.

Более подробную информацию можно найти в журнале изменений на GitHub.