Администраторы Rocket.Chat регулярно сталкиваются с ситуацией: после очередного обновления сервера перестаёт работать интеграция или меняется поведение API — и приходится срочно искать, что именно изменилось в новом релизе. Отслеживание релизов Rocket.Chat через официальный репозиторий и чтение changelog перед обновлением — основной способ избежать таких сюрпризов.
В этой статье разберём, где публикуются релизы Rocket.Chat, как устроена нумерация версий, чем отличаются каналы обновлений и как безопасно обновить или откатить сервер, развёрнутый через Docker, Snap или вручную.
Где публикуются релизы Rocket.Chat
Основной источник информации о релизах — официальный репозиторий Rocket.Chat на GitHub, раздел Releases. Там для каждой версии публикуются примечания к выпуску: список новых функций, исправленных ошибок и закрытых уязвимостей. Отдельно ведётся файл CHANGELOG.md в корне репозитория, где история изменений собрана в хронологическом порядке.
Дополнительные каналы, через которые команда проекта анонсирует релизы:
- 📢 Официальный блог проекта — крупные версии с обзором ключевых нововведений.
- 🐙 GitHub Releases — теги, changelog и ссылки на артефакты сборки.
- 🐳 Docker Hub — образы rocket.chat с тегами версий для контейнерных развёртываний.
- 📦 Snap Store — каналы стабильности для установок через
snap install rocketchat-server.
Как устроена нумерация версий
Rocket.Chat использует семантическую схему версионирования вида MAJOR.MINOR.PATCH. Первое число меняется при крупных архитектурных изменениях, второе — при добавлении новых функций, третье — при исправлении ошибок и уязвимостей. Понимание этой логики помогает оценить риск обновления: патч-релизы обычно безопасны, а мажорные версии могут менять API и требовать миграций.
Отдельно стоит упомянуть теги latest и develop в Docker Hub. Первый указывает на последний стабильный релиз, второй — на сборку из ветки разработки. Использовать develop на боевом сервере не следует: такие сборки не проходят полный цикл тестирования.
Каналы обновлений: стабильный и экспериментальный
При установке через Snap обновления привязаны к каналам. Проверить текущий канал и доступные версии можно командой:
snap info rocketchat-server
Переключение канала выполняется так:
sudo snap refresh rocketchat-server --channel=6.x/stable
Точные названия каналов зависят от текущей линейки версий, поэтому перед переключением проверьте вывод snap info — там перечислены актуальные каналы. Для Docker-установок аналогом канала служит тег образа в docker-compose.yml.
⚠️ Внимание: Rocket.Chat не поддерживает обновление через пропуск мажорных версий без промежуточных шагов. Если ваш сервер сильно отстал от актуального релиза, обновляйтесь последовательно, сверяясь с официальной документацией по миграции.
Безопасное обновление сервера
Главное правило обновления Rocket.Chat — резервная копия базы данных MongoDB до начала процесса. Схема данных между версиями меняется, и откат без бэкапа может оказаться невозможным.
Типовой порядок действий для Docker-установки выглядит так:
docker compose pull
docker compose down
docker compose up -d
Перед этим убедитесь, что в docker-compose.yml указан конкретный тег версии, а не latest — иначе вы не контролируете, до какого релиза обновится сервер. После запуска проверьте логи на предмет ошибок миграции базы данных: docker compose logs -f rocketchat.
☑️ Чек-лист перед обновлением Rocket.Chat
⚠️ Внимание: никогда не обновляйте боевой сервер в день выхода мажорного релиза. Подождите хотя бы первый патч-выпуск — в нём обычно исправляют ошибки, обнаруженные сразу после релиза.
Что проверять в changelog перед обновлением
Не все пункты changelog одинаково важны. В первую очередь ищите разделы, помеченные как Breaking Changes — там перечислены изменения, которые могут сломать существующие интеграции, ботов и кастомные скрипты. Далее проверьте пункты про устаревшие (deprecated) функции: если вы их используете, запланируйте миграцию.
Отдельного внимания заслуживают записи о безопасности. Если в релизе закрыта уязвимость, обновление стоит провести в приоритетном порядке, даже если вы обычно придерживаетесь консервативной политики.
Откат на предыдущую версию
Откат Rocket.Chat — нетривиальная операция, потому что миграции базы данных необратимы. Если после обновления что-то пошло не так, единственный надёжный способ вернуться — восстановить MongoDB из бэкапа, сделанного до обновления, и запустить контейнер со старым тегом версии.
Для Snap-установок существует команда sudo snap revert rocketchat-server, которая возвращает предыдущую ревизию пакета. Однако она не откатывает изменения в базе данных — это нужно учитывать. Бэкап MongoDB перед обновлением — единственная гарантия работоспособного отката.
Почему нельзя просто запустить старую версию поверх новой базы
При обновлении Rocket.Chat выполняет миграции — скрипты, которые изменяют структуру коллекций MongoDB. Старая версия кода не знает о новой структуре и может падать с ошибками или молча портить данные. Поэтому откат кода всегда должен сопровождаться восстановлением базы из резервной копии, сделанной до обновления.
Таблица: способы установки и обновления
| Способ установки | Как обновляется | Особенности |
|---|---|---|
| Docker Compose | Смена тега образа и пересоздание контейнера | Полный контроль над версией |
| Snap | Автообновление по каналу или snap refresh | Обновляется автоматически, канал можно зафиксировать |
| Ручная установка | Скачивание архива релиза и пересборка | Больше ручных операций, выше риск ошибок |
| Rocket.Chat Cloud (SaaS) | Обновляется командой проекта | Администратор не управляет версией |
Частые проблемы после обновления
Наиболее типичные жалобы после перехода на новый релиз: неработающие интеграции из-за изменений в API, ошибки миграции базы данных в логах, проблемы с мобильными и десктопными клиентами, которые требуют минимальную версию сервера. В большинстве случаев диагностику стоит начинать с логов сервера и сопоставления ошибок с пунктами changelog.
Если клиентские приложения перестали подключаться, проверьте требования к минимальной версии сервера в документации соответствующего приложения — клиенты и сервер обновляются независимо, и несовместимость встречается регулярно.
FAQ: частые вопросы о релизах Rocket.Chat
Как узнать текущую версию своего сервера Rocket.Chat?
Авторизуйтесь под администратором и откройте раздел администрирования — версия отображается в информации о сервере. Также версию видно в логах при запуске и в ответе API-метода /api/info.
Как часто выходят новые релизы Rocket.Chat?
Минорные версии выходят регулярно, патч-релизы — по мере накопления исправлений. Точное расписание не фиксировано, поэтому надёжнее подписаться на уведомления в GitHub-репозитории.
Можно ли отключить автоматическое обновление Snap-версии?
Полностью отключить автообновление Snap сложно, но можно зафиксировать канал на конкретной линейке версий и настроить окно обновлений через snap set system refresh.hold — детали смотрите в документации snapd для вашей системы.
Где найти информацию об уязвимостях, закрытых в релизе?
Сведения о безопасности публикуются в примечаниях к релизу на GitHub и в разделе Security репозитория. Для критичных уязвимостей команда проекта выпускает отдельные анонсы.
Что делать, если после обновления сервер не запускается?
Сначала изучите логи: чаще всего причина в ошибке миграции базы данных или несовместимости версии MongoDB. Если проблему решить не удаётся, восстановите базу из бэкапа и вернитесь на предыдущий тег версии, затем изучите changelog и документацию по миграции.