Гид по технологиям

Установка Rocket.Chat на Ubuntu 20.04

• 6 min read • Серверы • Обновлено 24 Nov 2025
Установка Rocket.Chat на Ubuntu 20.04
Установка Rocket.Chat на Ubuntu 20.04

Логотип Rocket.Chat и подготовка сервера

Rocket.Chat — веб-приложение для чата, написанное на JavaScript с использованием фреймворка Meteor. Это платформа с открытым исходным кодом для совместной работы в реальном времени, которую можно разместить на собственном сервере. Поддерживает голосовые и видеозвонки, конференции, обмен файлами и доступна на Windows, macOS, Linux, Android и iOS.

Далее показано, как установить Rocket.Chat на сервере с Ubuntu 20.04 и подготовить его к продакшен‑использованию.

Основные требования

  • Сервер с Ubuntu 20.04.
  • Доменное имя, указывающее на IP сервера.
  • Доступ root или эквивалент с sudo.

Важно: в примерах использован домен rocket.yourdomain.com. Замените его на свой домен в конфигурациях.

Быстрый план действий

  1. Обновить пакеты и установить зависимости.
  2. Установить Node.js v12 и MongoDB 4.x с настройкой replica set.
  3. Скопировать и запустить Rocket.Chat под служебным пользователем.
  4. Создать systemd-сервис для управления процессом.
  5. Настроить Nginx как обратный прокси и проверить работу.
  6. Пройти мастер настройки в браузере и выполнить базовую безопасную конфигурацию.

Обновление системы и установка зависимостей

Перед началом обновите систему:

apt-get update -y

Установите необходимые пакеты:

apt-get install nginx gnupg2 git unzip build-essential curl software-properties-common graphicsmagick -y

После установки можно переходить к Node.js.

Установка Node.js

Rocket.Chat из версии, указанной в этом руководстве, требует Node.js 12.x. Добавим официальный репозиторий NodeSource и установим Node.js:

curl -sL https://deb.nodesource.com/setup_12.x | bash -
apt-get install nodejs -y

Проверьте версию:

node -v

Ожидаемый вывод будет примерно:

v12.19.0

Если версия отличается, убедитесь, что репозиторий добавлен корректно.

Установка и конфигурация MongoDB

Rocket.Chat использует MongoDB. Для работы в продакшене рекомендуется запускать реплика‑сет даже на одном узле, чтобы включить Oplog, необходимый для синхронизации Meteor.

Добавьте ключ и репозиторий MongoDB 4.x:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

Установите MongoDB:

apt-get install mongodb-org -y

Запустите сервис и включите автозапуск:

systemctl start mongod
systemctl enable mongod

Отредактируйте конфигурацию MongoDB, чтобы задать имя реплика‑сета:

nano /etc/mongod.conf

Добавьте блок replication:

replication:
  replSetName: "replica01"

Сохраните файл и перезапустите MongoDB:

systemctl restart mongod

Инициируйте реплика‑сет:

mongo
> rs.initiate()

Ожидаемый ответ покажет, что реплика‑сет создан и работает. Затем выйдите из оболочки MongoDB:

> exit

Примечание: даже при одном узле реплика‑сет обеспечивает доступ к Oplog, необходимому для корректной работы Meteor.

Установка Rocket.Chat

Создайте сервисного пользователя и добавьте его в группу www-data:

useradd -m -U -r -d /opt/rocket rocket --shell /bin/bash
usermod -a -G rocket www-data

Установите права на каталог:

chmod 750 /opt/rocket

Переключитесь на пользователя rocket и скачайте релиз:

su - rocket
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz

Распакуйте и переименуйте папку:

tar -xvzf rocket.chat.tgz
mv bundle Rocket.Chat

Перейдите в директорию сервера и установите зависимости Node.js:

cd Rocket.Chat/programs/server
npm install

Затем выйдите из пользователя rocket:

exit

Если npm install завершился с ошибками, проверьте логи и убедитесь, что все системные зависимости установлены (build-essential, graphicsmagick и т.д.).

Создание systemd-сервиса для Rocket.Chat

Создайте файл службы:

nano /etc/systemd/system/rocketchat.service

Вставьте конфигурацию сервиса (отредактируйте MONGO_URL и ROOT_URL под ваш домен):

[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target

[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://rocket.yourdomain.com PORT=3000
ExecStart=/usr/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

Перезагрузите демона systemd и запустите сервис:

systemctl daemon-reload
systemctl start rocketchat
systemctl enable rocketchat

Проверьте статус:

systemctl status rocketchat

Ожидаемый вывод покажет активный процесс Node.js и информацию о подключении к MongoDB.

Конфигурация Nginx как обратного прокси

Создайте виртуальный хост для Nginx:

nano /etc/nginx/sites-available/rocketchat.conf

Вставьте конфигурацию (обновите server_name на свой домен):

upstream myrocketchat {
  server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name rocket.yourdomain.com;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://myrocketchat/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Активируйте сайт и проверьте конфигурацию:

ln -s /etc/nginx/sites-available/rocketchat.conf /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
systemctl status nginx

Совет: для HTTPS используйте Certbot/Let’s Encrypt. После установки сертификата измените ROOT_URL в systemd‑службе на https://yourdomain и обновите блок proxy_set_header X-Forward-Proto на https.

Доступ к интерфейсу и первичная настройка

Откройте в браузере http://rocket.yourdomain.com и пройдите мастер настройки: создайте администратора, укажите данные организации и базовые параметры сервера.

Мастер настройки Rocket.Chat

Заполните имя администратора, почту и пароль. Далее укажите информацию об организации, тип сервера и примите условия.

Информация об организации

Настройка сервера включает выбор языка, имени сайта и типа развёртывания.

Информация о сервере

Подтвердите регистрацию сервера и завершите установку.

Регистрация сервера

После этого вы попадёте в интерфейс рабочего пространства Rocket.Chat.

Панель управления Rocket.Chat

Критерии приёмки

  • Сервис rocketchat активен и запущен: systemctl status rocketchat показывает Active: active (running).
  • Nginx принимает HTTP(S) запросы к домену и проксирует их на порт 3000.
  • MongoDB запущен и реплика‑сет инициирован (rs.status даёт ответ).
  • Веб‑мастер Rocket.Chat доступен и позволяет создать администратора.

Риски и меры по снижению

  • Открытый HTTP без HTTPS — риск перехвата. Решение: сразу настроить Let’s Encrypt и перенаправление на HTTPS.
  • Неполноценный бэкап MongoDB — потеря данных. Решение: настроить регулярные бэкапы (mongodump/Snapshot).
  • Работа с одним узлом реплика‑сета — возможные ограничения; для отказоустойчивости добавьте дополнительные узлы.

Безопасность и жёсткая конфигурация

  1. Настройте HTTPS (Certbot). Обновите ROOT_URL в systemd на https://yourdomain.
  2. Ограничьте доступ к MongoDB с помощью iptables или bind_ip в /etc/mongod.conf.
  3. Создайте учётную запись MongoDB с паролем и используйте MONGO_URL с аутентификацией (mongodb://user:pass@localhost:27017/rocketchat). Не храните пароли в открытом виде — используйте systemd EnvironmentFile или секретный менеджер.
  4. Регулярно обновляйте систему и зависимости Node.js.
  5. Ограничьте права файлов и пользователя rocket (chmod 750 для /opt/rocket).
  6. Настройте брандмауэр UFW: разрешите 80, 443 и SSH.

Резервные копии и обновления

  • Бэкап MongoDB: используйте mongodump для экспорта данных, или снимки диска при использовании облачных томов.
  • Обновление Rocket.Chat: скачайте новый релиз, остановите service, замените bundle, выполните npm install в programs/server и перезапустите сервис. Всегда тестируйте обновления в staging перед продакшеном.

Отладка и распространённые ошибки

  • Rocket.Chat не запускается: проверьте логи systemd (journalctl -u rocketchat) и логи приложения в /var/log/syslog.
  • Ошибки с Oplog: убедитесь, что MongoDB запущен как реплика‑сет и в MONGO_URL указано правильное имя базы и опции.
  • 502 Bad Gateway от Nginx: проверьте, что процесс слушает порт 3000 (ss -ltnp | grep 3000) и что upstream в конфигурации указывает на 127.0.0.1:3000.

Пример команд для отладки:

journalctl -u rocketchat -f
tail -n 200 /var/log/nginx/error.log
ss -ltnp | grep 3000
mongo --eval "rs.status()"

Роли и чеклисты (кто что делает)

  • Системный администратор:
    • Установить и обновить пакеты, настроить бэкапы, брандмауэр и сертификаты.
  • Девопс/инженер приложений:
    • Настроить systemd, переменные окружения, деплой релизов, обеспечить CI/CD для обновлений.
  • Администратор Rocket.Chat (контент/пользователи):
    • Создать пользователей, политики паролей, интеграции, мониторить логи приложений.

Когда этот подход не подходит

  • Если вы хотите минимизировать администрирование, рассмотрите SaaS версии Rocket.Chat или облачные альтернативы.
  • Для очень большого масштаба (десятки тысяч активных пользователей) потребуется кластеризация MongoDB, балансировщики нагрузки и выделенные микросервисы.

Советы по миграции с другого сервера

  • Сделайте полную дамп‑копию MongoDB на исходном сервере: mongodump –archive=backup.archive
  • Перенесите бэкап на новый сервер и восстановите mongorestore –archive=backup.archive
  • Синхронизируйте файлы, если есть кастомные интеграции или плагины.
  • Проверьте версии Rocket.Chat и MongoDB — несоответствие версий может потребовать промежуточного шага обновления.

Краткая справка (глоссарий)

  • Rocket.Chat — self-hosted платформа для командного чата.
  • Oplog — журналы операций MongoDB, необходимые для синхронизации Meteor.
  • Replica set — комбинация MongoDB узлов для отказоустойчивости и Oplog.

Чеклист перед переводом в продакшен

  • Домен и DNS указывают на сервер.
  • HTTPS настроен (Let’s Encrypt).
  • MongoDB защищён и создаются бэкапы.
  • Сервис rocketchat настроен и автозапускается.
  • Логи и мониторинг настроены (журналы, метрики).

Заключение

Вы успешно установили Rocket.Chat на Ubuntu 20.04, настроили MongoDB с реплика‑сетом, создали systemd‑сервис и настроили Nginx как обратный прокси. Далее рекомендуется настроить HTTPS, бэкапы и регулярно обновлять компоненты.

Важно: перед переходом в крупный продакшен протестируйте обновления и резервное восстановление на стенде.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро