Команда sudo snap install rocketchat-server — самый быстрый способ развернуть собственный сервер Rocket.Chat на Ubuntu, но именно с ней чаще всего связаны проблемы: служба не стартует после установки, веб-интерфейс недоступен по адресу http://localhost:3000, а логи snap не дают понятного ответа. Причина обычно кроется не в самом пакете, а в занятом порте, нехватке памяти или конфликте с уже установленной версией MongoDB.
Ниже разберём, как работает snap-пакет Rocket.Chat, чем он отличается от Docker-развёртывания, как проверить состояние службы и что делать при типичных сбоях. Материал ориентирован на серверные дистрибутивы Linux с поддержкой snapd — в первую очередь Ubuntu Server.
Что такое snap-пакет Rocket.Chat и когда его использовать
Snap — это формат самодостаточных пакетов от Canonical, в который вместе с приложением упаковываются все зависимости. В случае с Rocket.Chat пакет rocketchat-server включает сам сервер и базу данных MongoDB, поэтому отдельно устанавливать СУБД не требуется. Это главное преимущество способа: одна команда — и у вас готовый корпоративный мессенджер.
Такой вариант подходит для небольших команд, тестовых стендов и серверов, где не хочется вручную управлять зависимостями. Для крупных production-систем с особыми требованиями к масштабированию чаще выбирают Docker или установку из исходников, потому что snap-окружение изолировано и менее гибко настраивается.
Подготовка системы перед установкой
Перед установкой убедитесь, что в системе работает snapd. На Ubuntu он предустановлен, на других дистрибутивах его нужно поставить отдельно и активировать службу. Проверить наличие можно командой snap version — если утилита отвечает номером версии, всё готово.
Также проверьте, не занят ли порт 3000, который Rocket.Chat использует по умолчанию. Если на нём уже висит другой сервис, сервер не запустится или будет недоступен. Посмотреть занятые порты можно так:
sudo ss -tlnp | grep 3000
- 🔹 Убедитесь, что snapd установлен и служба активна:
systemctl status snapd - 🔹 Проверьте свободность порта 3000 и отсутствие старых установок Rocket.Chat
- 🔹 Убедитесь в наличии свободной оперативной памяти — связка Node.js + MongoDB требовательна к ресурсам
- 🔹 Обновите систему перед установкой:
sudo apt update && sudo apt upgrade
Установка Rocket.Chat через Snap: пошаговая инструкция
Сама установка сводится к одной команде, но важно дождаться полной инициализации службы — первый запуск может занять несколько минут, пока MongoDB создаёт свои файлы данных. Не прерывайте процесс и не перезагружайте сервер сразу после установки.
sudo snap install rocketchat-server
После завершения проверьте статус службы командой sudo snap services rocketchat-server. Вы должны увидеть активные сервисы rocketchat-server и rocketchat-mongo. Затем откройте в браузере http://адрес-сервера:3000 и пройдите мастер первоначальной настройки: создание учётной записи администратора, указание имени организации и регистрация сервера.
☑️ Проверка после установки Rocket.Chat
Настройка после установки
Первое, что стоит сделать после входа в админ-панель, — указать корректный Site URL в разделе настроек. От этого адреса зависят ссылки в приглашениях, уведомлениях и работа мобильных приложений. Если сервер будет доступен извне, настройте обратный прокси (например, Nginx или Caddy) с TLS-сертификатом, потому что snap-версия по умолчанию работает по HTTP на порту 3000.
Для изменения порта или других параметров окружения snap-пакета используются переменные через snap set или override-файлы systemd-службы. Точный синтаксис зависит от версии пакета, поэтому сверяйтесь с официальной документацией Rocket.Chat для вашего релиза.
Как настроить HTTPS через обратный прокси
Установите Nginx, создайте server-блок с proxy_pass на http://127.0.0.1:3000, выпустите сертификат через certbot (Let's Encrypt) и укажите в настройках Rocket.Chat адрес https://ваш-домен как Site URL. После этого перезапустите службу snap.
⚠️ Внимание: не редактируйте файлы внутри каталога /snap/rocketchat-server/ вручную — при следующем автоматическом обновлении пакета все правки будут перезаписаны. Используйте только поддерживаемые механизмы настройки.
Автоматические обновления и управление версиями
Одна из особенностей snap — пакет обновляется автоматически без участия администратора, что одновременно и плюс, и источник рисков: неожиданное обновление может совпасть с рабочей нагрузкой. Управлять этим поведением можно через настройки snapd.
| Задача | Команда |
|---|---|
| Проверить статус служб | sudo snap services rocketchat-server |
| Перезапустить сервер | sudo snap restart rocketchat-server |
| Посмотреть логи | sudo snap logs rocketchat-server |
| Обновить вручную | sudo snap refresh rocketchat-server |
| Откатиться на прошлую ревизию | sudo snap revert rocketchat-server |
Расписание обновлений можно сместить на ночное время через параметр refresh.timer в настройках snapd. Перед крупными обновлениями имеет смысл делать резервную копию базы данных.
Типичные ошибки и их решение
Чаще всего пользователи сталкиваются с ситуацией, когда после установки страница по адресу http://localhost:3000 не открывается. Начните диагностику с логов: sudo snap logs rocketchat-server -f покажет вывод в реальном времени. Если служба постоянно перезапускается, вероятные причины — нехватка оперативной памяти или повреждённые файлы MongoDB после некорректного завершения работы.
- 🔧 Служба не стартует — проверьте свободную память (
free -h) и логи на предмет ошибок MongoDB - 🔧 Порт 3000 занят — найдите конфликтующий процесс через
sudo ss -tlnpи остановите его либо смените порт Rocket.Chat - 🔧 Медленная работа — проверьте дисковые операции и объём swap; MongoDB чувствительна к медленным дискам
- 🔧 Ошибки после автообновления — попробуйте
sudo snap revert rocketchat-serverи дождитесь исправления в следующей ревизии
⚠️ Внимание: не удаляйте snap-пакет командойsnap removeбез предварительного бэкапа — вместе с пакетом будут удалены данные базы MongoDB, если они не сохранены отдельно. Сначала выполнитеsudo snap saveили экспортируйте базу штатными средствами.
Резервное копирование и перенос данных
Все данные snap-установки хранятся в каталоге /var/snap/rocketchat-server/, включая файлы базы MongoDB и загруженные вложения. Для резервного копирования остановите службу и скопируйте этот каталог, либо используйте встроенный механизм снапшотов snapd. Второй вариант удобнее, поскольку учитывает метаданные пакета.
При переносе на другой сервер установите там тот же snap-пакет, остановите службы и разверните сохранённые данные. Учтите, что версии пакета на старом и новом сервере желательно выровнять, чтобы избежать конфликтов форматов базы. После переноса не забудьте обновить Site URL в настройках, если изменился адрес сервера.
Часто задаваемые вопросы
Чем snap-установка Rocket.Chat отличается от Docker?
Snap проще в установке и обновляется автоматически, но менее гибок в настройке и привязан к snapd. Docker даёт больше контроля над версиями, сетями и ресурсами, что важно для крупных развёртываний.
Как отключить автоматические обновления snap-пакета?
Полностью отключить автообновления snapd штатными средствами нельзя, но можно задать окно обновлений через sudo snap set system refresh.timer=... или временно отложить их командой sudo snap set system refresh.hold=... с указанием даты.
Где смотреть логи Rocket.Chat при snap-установке?
Используйте sudo snap logs rocketchat-server для просмотра и добавьте флаг -f для слежения в реальном времени. Логи MongoDB доступны через sudo snap logs rocketchat-server.rocketchat-mongo.
Можно ли изменить порт 3000 на другой?
Да, порт задаётся через переменные окружения службы. Конкретный способ зависит от версии пакета — сверьтесь с официальной документацией Rocket.Chat, так как механизм настройки snap-окружения периодически меняется.
Что делать, если после обновления сервер перестал запускаться?
Сначала посмотрите логи, затем попробуйте откат: sudo snap revert rocketchat-server. Если откат помог, дождитесь следующей ревизии пакета и обновляйтесь только после резервного копирования данных.